コンテンツへスキップ
LatchkeyLatchkey home

継続的インテグレーション 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 Continuous integration vs delivery vs deployment?
People say "CI/CD" as one word, but it hides three distinct practices with different costs and guarantees. Knowing where each ends prevents miscommunication about what your pipeline actually does.
Continuous integration?
CI stops at "verified". Every change is merged to a shared branch frequently and automatically built and tested. The output is confidence that the codebase is healthy - not a release.
Continuous delivery?
Continuous delivery extends CI so that every passing change is automatically packaged and proven deployable, right up to the production gate. The final push to production is a deliberate, often one-click, human decision.
Continuous deployment?
Continuous deployment removes the human gate: every change that passes the pipeline goes straight to production automatically. It demands strong tests, good observability, and fast rollback, because there is no manual checkpoint.

関連ガイド