【技術メモ】継続的デリバリー
★メモ★継続的デリバリー
「継続的デリバリー」について、整理してみる。
参考サイト①
Continuous Deliveryとは。
端的に言えば、
- Iterative Development(繰り返し型の開発)
- Continuous Integration(継続的インテグレーション)
- Continuous Delivery(継続的デプロイ)
を積み重ねていくことで、価値を創出していく全体の流れである。
Jez Humble氏の言葉たち。
上記の結論の根拠として。
Continuous Deliveryとは
リリースのスケジュールをIT部門が握るのではなく、ビジネス部門が握るということ。
Continuous Deliveryを実装するということは
常にソフトウェアが本番環境にリリース可能であるということ。
すなわち、
- どのビルドもボタン一発で、
- 完全に自動化されたリリースプロセスを通じて、
- 秒とか分の時間で、
- 利用者にリリース可能である、
ということ。
ビジネス上の利点は
- ビジネスプランをより素早く評価できる
- 現実の利用者のフィードバックを受けて修正を行うことが可能になる
- ビックバンリリースと比較して、絶対的にリスクが少ない
IT面での利点は
- プロジェクトの進捗が明快にわかる。完了の定義が明確だから。
- 完了の定義:「本番で動作するソフトウェア」
- 個々のリリースのリスクを減らせる。小さい増分を日常的にリリースするため。
8原則と4プラクティス
参考サイト②
一部意訳します。
継続的デリバリの8つの原則
- デプロイは、信頼性が高く、繰り返し可能とする
- 全てを自動化する
- 苦痛なことは何度もやる、改善して自動化したくなるから
- 全てをソースコード管理システムで管理する
- ソフトウェアがユーザーの手に渡り正しく動作して初めて出来上がり
- 品質のメトリクスをはっきりさせる
- リリースプロセスの責任はすべての関係者にある
- システムは常に進化し、必要ならいつでも簡単に変更できる
継続的デリバリに関する4つのプラクティス
- バイナリは一度だけビルドする
- すべての環境へのデプロイに、完全に同一のメカニズムを使う
- デプロイ後にスモークテストを実施する
- 問題が起こったら、最初からやり直す