継続的インテグレーション vs デリバリー vs deployment
3つの用語は梯子を成す: 各段が前の段より多く本番までの道のりを自動化する。CI/CDの「CD」は意図的に曖昧だ。
人々は「CI/CD」を一語のように言うが、それはコストと保証が異なる3つの明確なプラクティスを隠している。それぞれがどこで終わるかを知れば、pipelineが実際に何をするのかについての誤解を防げる。
継続的インテグレーション
CIは「検証済み」で止まる。あらゆる変更が共有branchへ頻繁にmergeされ、自動でbuild・テストされる。成果物はコードベースが健全だという信頼であり - リリースではない。
継続的デリバリー
継続的デリバリーはCIを拡張し、合格したあらゆる変更が自動でパッケージ化され、本番のgate直前までdeploy可能だと証明される。本番への最終pushは、意図的な、しばしばワンクリックの、人間の判断だ。
継続的deployment
継続的deploymentは人間のgateを取り除く: pipelineを通過したあらゆる変更が自動で本番へ直行する。手動のチェックポイントがないため、強力なテスト、良好な可観測性、速いrollbackが要求される。
どこで止めるかを選ぶ
- CI単独は、どのチームも持つべきベースラインだ。
- 継続的デリバリーは、頻繁なリリースを望むが人間の「go」が欲しいチームに向く。
- 継続的deploymentは、テストへの高い信頼と即時rollbackを持つ成熟したチームに向く。
重要なポイント
- CIは「テスト済みで健全」で終わり、リリースではない。
- 継続的デリバリーは、手動の最終pushを伴いソフトウェアを常にリリース可能に保つ。
- 継続的deploymentは、合格したあらゆる変更を自動で本番へ出荷する。
- 適切なレベルは、テストへの信頼度とrollbackの速さに依存する。
関連ガイド
What Is CI/CD? A Plain-English IntroductionCI/CD is the practice of automatically building, testing, and shipping code on every change. Learn what conti…
What Is Fan-Out / Fan-In in CI Pipelines?Fan-out splits work into many parallel jobs; fan-in collects their results into one. Learn this core pipeline…
Fail-Fast vs Continue-on-Error: Controlling How CI StopsFail-fast stops the pipeline at the first failure; continue-on-error lets it press on. Learn what each does,…