継続的デリバリー
本文は、以下の書籍を参考にしました。
継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化
- 作者: David Farley,Jez Humble,和智右桂,高木正弘
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2012/03/14
- メディア: 大型本
- 購入: 19人 クリック: 432回
- この商品を含むブログ (28件) を見る
継続的デリバリーで大切なことは、
- 「我々が最も価値を置くのは、価値のあるソフトウェアを早いうちから継続的にデリバリーすることを通じて顧客を満足させること」
- 「好きなときに、好きなバージョンのソフトウェアをデリバリーできる」
品質の高いソフトウェア製品を届け続けるためのリリース手順(デプロイパイプライン)の一例を以下に示します。
-------------------------------------------------------------------------------
- 開発チームの誰かが変更をコミットする。
- 継続的インテグレーションサーバ(以下CIサーバ)が変更検知し、ビルドを行う。(コミットステージ)
- 成功したら、オブジェクトとレポートおよびメタデータが成果物リポジトリに格納される。
- CIサーバがコミットステージで生成されたオブジェクトを取得し、結合テスト環境にデプロイする。
- CIサーバが受け入れテスト(WebAPIテスト、UIテスト)を実行する。その際、コミットステージで生成された オブジェクト を再利用する。
- 成功したら、リリース候補に受け入れテストを通過したというフラグが立てられる。
- テスターは、受け入れテストを通ったビルドの一覧を入手することができ、ボタン1つで自動プロセスを実行して、手動テスト環境にデプロイできる。
- テスターが、手動テストを実施する。(テスターがテストするのはLook&Feeling、見た目と使い勝手)
- 手動テストがうまくいったら、テスターがリリース候補のステータスを更新し、手動テストを通過したことを示す。
- CIサーバが、受け入れテストや手動テストを通過した最新のリリースを成果物リポジトリから取得し(どちらを取得するかは設定による)、そのオブジェクトをステージング環境にデプロイする。
- キャパシティテスト ( 性能/負荷テスト)をリリース候補に対して実行する。
- 成功したら、リリース候補のステータスを「キャパシティテスト完了」に更新する。
- このパターンは、パイプラインでの必要に応じていくつものステージで繰り返される。
- リリース候補が関連するステージを全て通過したら、「リリース準備完了」となり、適切な承認を受けた上で、誰でもリリースできるようになる。通常、この承認行為は、QAと運用担当者が一緒になって行う。
- リリースプロセスの最後に、リリース候補のステータスは「リリース済」となる。