主流發布與部署工具#
Ansible#
- 應用部署、組態管理、持續交付
- 主要用作基礎設施即程式碼(Infrastructure as Code, IaC)
- 協助配置目標基礎設施、部署應用
- DevOps 與 SRE 也常拿來自建內部工具
- 開源
Jenkins#
- IT 自動化與 CI/CD 工具
- 開源
- 廣泛被 DevOps 與 SRE 用於建置、部署與自動化手動工作
- 各式外掛串接多平台
AWS CodeDeploy#
- AWS 自家工具
- 自動化應用部署
- 隨 AWS 訂閱附帶(部署不另收費)
- 易於建置管線、提供應用健康監控與快速回滾
Azure DevOps#
- 微軟產品,整合自動化部署、專案管理與發布管理
- 與 Microsoft 生態系整合佳
- DevOps 端到端方案,SRE 也能用來追蹤 production 變更
GitLab#
- 強大的開源工具,建立在 git 之上
- 內建 CI/CD 管線
- 開發者可一站完成監控、測試、部署
- 也能做自動化建構
Terraform#
- 基礎設施即程式碼工具
- 在地端與雲端皆可佈建與管理基礎設施
- 採宣告式語言、易擴充
- 不開源;小型專案可用免費版
GitHub Actions#
- 與 GitHub 倉庫深度整合的 CI/CD 工具
- 工作流(workflow)驅動,可組多個 job
- 可與 Jenkins 並用、互補
- 部署應用至多雲環境
- 公開倉庫使用標準 runner 免費,私人倉庫採付費
大型微服務專案常會同時使用多種工具(不同子系統各有合適選擇)。重點是制訂統一的標準,讓不同工具各司其職卻不互相打架。