主流發布與部署工具#

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 免費,私人倉庫採付費

大型微服務專案常會同時使用多種工具(不同子系統各有合適選擇)。重點是制訂統一的標準,讓不同工具各司其職卻不互相打架。