Skip to content
Latchkey

ソフトウェアデリバリーライフサイクルとは?

ソフトウェアデリバリーライフサイクルとは、変更がアイデアから本番で動作しモニタリングされるまでに通過する、すべてのステージの集合です。

ソフトウェアデリバリーライフサイクルは、あらゆる変更がたどる道のりを描きます。誰かが何を作るかを決め、それがbuildされテストされ、その後releaseされ運用されます。CI/CDはこの道のりの後半の反復的なステージを自動化し、それらが素早く信頼できる形で行われるようにします。

各ステージ

  • 計画: 何をなぜ作るかを決めます。
  • 開発: コードとそのテストを書きます。
  • build: ソースを実行可能なartifactに変えます。
  • テスト: 振る舞いを自動的に検証します。
  • releaseとdeploy: artifactをユーザーへ出荷します。
  • 運用とモニタリング: それを動かし、問題を見張ります。

CI/CDはどう組み込まれるか

CI/CDはbuild、テスト、release、deployのステージ、すなわち反復的で機械の精度から最も恩恵を受ける部分を自動化します。それらを自動化することで、ライフサイクルはより速く回ります。変更はcommitから本番へ数分で到達でき、モニタリングからのフィードバックはまっすぐ計画へ戻っていきます。

実例

チームが機能を計画し、開発者がテスト付きでそれを書き、CIがbuildして検証し、deployment pipelineがそれを本番へ昇格させ、モニタリングが正しく振る舞うことを確認します。発見された問題は次の計画サイクルに反映され、ループが閉じます。

なぜ直線ではなくループなのか

ライフサイクルは継続的です。ソフトウェアを運用するとデータとフィードバックが生まれ、それが次の計画のラウンドを形作ります。これをループとして捉えることは、デリバリーが決して本当に"終わる"ことはなく、常に改善し、修正し、次の変更を出荷し続けていることを強調します。

なぜ重要か

ライフサイクル全体を見渡すことで、ボトルネックを見つけやすくなります。deployが遅ければ自動化し、フィードバックが遅ければモニタリングを改善します。目標は品質を犠牲にせずループを短くすることであり、それこそが成熟したCI/CDが可能にするものです。

重要なポイント

  • デリバリーライフサイクルは、計画、開発、build、テスト、release、運用にまたがります。
  • CI/CDは反復的な中間のステージを自動化します。
  • これは継続的なループであり、フィードバックが次の変更を形作ります。

関連ガイド