generated at
継続的デリバリー
略 : CD

定期的にリリースするという概念
Jez HumbleDavid Farley により生み出された概念で、Agile 2006 で初めて示された
似た概念に継続的デプロイメントがあるが、継続的デプロイメントと異なり、継続的デリバリーではリリースプロセスにおいて多少なりとも人が介在する
そのため、リリースサイクルは 1, 2 週間単位だったり、月や四半期という単位になりがち
少なくとも 1 つのステージでは手動プルを行う (『進化的アーキテクチャ ―― 絶え間ない変化を支える』 より)

すべての開発者がトランクの小さなバッチを操作 (あるいは短寿命のブランチで作業してすぐにトランクにマージ) しており、トランクがいつもリリースできる状態に保たれており、ボタンを押すだけでオンデマンドでリリースできるようになっているとき、そのチームは継続的デリバリーを実践している

5 つの基本原則 (『Lean と DevOps の科学 Accelerate』 より)
品質の概念を最初から組み込む
W. Edwards Deming も言うように、品質向上のために検査を使うのではなく、最初から品質の概念を組み込む
作業はバッチ処理で進める
大きな変更ではなく、小さな単位で変更する
反復作業は自動化し、人間は問題解決にあたる
リグレッションテストやソフトウェアのデプロイなどの時間のかかる反復作業を自動化すること
徹底した改善努力を継続的に行う
全員が責任を担う
実現のための 3 つの基盤 (『Lean と DevOps の科学 Accelerate』 より)
バージョン管理で収集した情報のみで、完全に自動化した方法でソフトウェアをビルド/テスト/デプロイする
ブランチは 1 日未満の寿命で、トランクへの統合を頻繁に行う
バージョン管理システムでコミットするたびに、単体テスト承認テストが自動で実行されるように
テスターは、CI で生じる最新のビルドに対して継続的に探索型テスト (nobuoka 探索的テストと同義かな) を行うべき

参考文献