かんばんガイド · リーンの基礎
継続的デリバリー:原則、パイプライン、メリット
継続的デリバリーとは、コードを常にリリース可能な状態に保ち、新しい変更をいつでも迅速かつ安全にユーザーへリリースできるようにするソフトウェアのプラクティスです。小さく継続的なフローというかんばんの理想を、技術的に実現します。
要点
- 継続的デリバリーは、ソフトウェアを常にリリース可能な状態に保ちます。
- デプロイメントパイプラインは、ビルド、テスト、リリースを自動化します。
- バッチ単位のリリースをなくすことで、かんばんを補完します。
起源
このプラクティスは、Jez HumbleとDavid Farleyが2010年の著書『Continuous Delivery(継続的デリバリー)』で詳しく解説しました。アジャイルの原則、特に1つ目の「価値のあるソフトウェアを早く継続的に提供する」に基づいています。
CI、継続的デリバリー、継続的デプロイメントの比較
| プラクティス | 意味 |
|---|---|
| 継続的インテグレーション(CI) | 開発者が小さな変更を頻繁にマージし、マージのたびに自動でビルドとテストが行われる |
| 継続的デリバリー(CD) | パイプラインを通過したすべての変更はリリース可能。リリースはビジネス上の判断 |
| 継続的デプロイメント | パイプラインを通過したすべての変更が自動的にリリースされる |
デプロイメントパイプライン
- コミットステージ: コードをビルドし、高速な自動テストを実行する。
- 受け入れステージ: 自動化された機能テストと結合テスト。
- 追加のテスト: 性能テスト、セキュリティテスト、探索的テスト。
- リリース: 本番環境にデプロイする。多くの場合フィーチャーフラグや段階的なロールアウトを使う。
- 監視: 実際の利用状況やエラーを監視し、必要に応じて素早くロールバックする。
メリット
- より小さく、リスクの低いリリース。
- 実際のユーザーからのより速いフィードバック。
- 短縮される リードタイム を、アイデアから顧客に届くまで短縮します。
- リリース日のストレスが減る。
- 自動化による品質の向上。
継続的デリバリーとかんばん
かんばんは仕掛り作業を制限してアイテムを小さく保ち、継続的デリバリーは最後のバッチリリースの工程をなくします。両者を組み合わせることで、各アイテムは完了するとすぐに顧客へ流れていきます。参考: DevOps.
このトピックの無料テンプレート
よくある質問
継続的デリバリーはソフトウェア専用ですか?
この用語はソフトウェアに由来しますが、作業を小さなインクリメントで常にリリース可能な状態に保つという原則は、コンテンツ、ドキュメント、その他のデジタルプロダクトにも当てはまります。
継続的デリバリーを行うには継続的デプロイメントが必要ですか?
いいえ。継続的デリバリーはいつでもリリースできることを意味し、継続的デプロイメントは実際に自動でリリースすることを意味します。
継続的デリバリーとは何ですか?
継続的デリバリーとは、コードを常にリリース可能な状態に保ち、どの変更もいつでも安全かつ迅速に本番環境へデプロイできるようにするソフトウェアのプラクティスです。
継続的デリバリーと継続的デプロイメントの違いは何ですか?
継続的デリバリーでは、すべての変更がリリース可能な状態ですが、いつデプロイするかは人が決めます。継続的デプロイメントでは、パイプラインを通過したすべての変更が自動的にリリースされます。
継続的インテグレーションと継続的デリバリーの違いは何ですか?
継続的インテグレーションとは、コードの変更を頻繁にマージしてテストすることです。継続的デリバリーはそれを拡張し、統合されたコードを常に本番環境にデプロイできる状態にします。
継続的デリバリーにおけるデプロイメントパイプラインとは何ですか?
ビルド、テスト、テスト環境へのデプロイなど、すべての変更がリリースまでに通過する自動化された一連のステージです。
『Continuous Delivery』という本を書いたのは誰ですか?
Jez HumbleとDavid Farleyで、2010年の著書『Continuous Delivery』です。
継続的デリバリーのメリットは何ですか?
より小さくリスクの低いリリース、ユーザーからのより速いフィードバック、手作業によるミスの減少、ストレスの少ないリリース日です。
継続的デリバリーにはどのようなツールが使われますか?
チームは通常、バージョン管理、CI/CDサーバー、自動テストのフレームワーク、Infrastructure as Codeのツールを組み合わせます。具体的な製品よりも、自動化と規律のほうが重要です。
継続的デリバリーはかんばんとどう関係していますか?
どちらも小さなバッチを顧客へ安定して流すことを目指します。かんばんボードで短い サイクルタイム は、完了したアイテムをいつでもリリースできるパイプラインと自然に組み合わさります。
継続的デリバリーにおけるフィーチャーフラグとは?
再デプロイせずに機能をオン・オフできるコード内のスイッチで、機能をすべてのユーザーに公開する前に、コードを安全にリリースできるようにします。