@kyanny's blog

My thoughts, my life. Views/opinions are my own.

Continuous Deployment と Continuous Delivery の違い

  • Continuous Deployment とは、自動化されたテストをパスしたら自動的にプロダクション環境へデプロイされ、エンドユーザーに対してリリースされる状態を指す。
  • Continuous Delivery とは、Continuous Deployment とほぼ同様だがプロダクション環境へのデプロイ(==エンドユーザーへのリリース)をするかしないかの判断は誰かに委ねられていて、ビジネス上の都合で「機能は完成してるけどいまはまだリリースしない」という決定ができる状態を指す。つまり Continuous Deployment に制限を加えたものが Continuous Delivery だといえる。

Codeship を使い始める前に、「五日間の Continuous Delivery 入門コース」的なメールマガジンを購読したが、Continuous Deployment と Continuous Delivery の違いについてはっきり言及していなかったので気になって調べたら、勘違いしていた。

こういう用語は言ったもん勝ちなところもありそうだし、人によって解釈がぶれそうだけど、デベロッパーの立場ではとにかくすべてのプロセスを自動化しておけばよさそう。自動化プロセスを構築してしまえば、途中で一旦止めてマニュアル操作(実際は数ある自動化プロセスの一つを実行する CI サーバのジョブ実行ボタンを押すだけ)に切り替えるのは難しくない。