# 2021 年 11 月 - capistrano - 可以做任何部署(拉 code) - 早期 devops 工具 - 可以寫 ruby 判斷 - ansible - 執行指令的工具 - 預期機器上有 python - CI 持續整合 - 寫測試 - unit test - method level - feature test - RSpec (BTD) - 連 db - 一個功能的完整測試 - integration test - service 跟 service 的串連(call api staging 環境) - 要有 CD 才做得到 - QA - CD 持續部署 - 把東西丟到可以跑的環境 - ex: docker build - ex: capistrano - immutable infrastructure - 每次都是新的環境 - https://www.hashicorp.com/ - Nomad (開一台中間溝通用的機器) 有支援 docker - 全部加起來類似 k8s - Waypoint 類似 heroku - https://www.packer.io/docs - Packer 把機器需要的東西先安裝好 - 容器化 - github action - 支援 windows、mac os - open source 免費 - container registries - https://containrrr.dev/watchtower/ - 控管所有 docker 所以只要一個 - 只能抓 latest - 自動更新 image - https://doc.traefik.io/traefik/providers/docker/ - 統合 app - 拿 sso 憑證 - load balancer - https://docs.docker.com/compose/networking/ - rails db migrate 會 lock 所以不會有競爭的問題 - lable 可寫在 docker image 或 docker-compose 裡,通常寫在 docker-compose - production - nomad - ECS + Terraform - k8s - cron job