継続的デリバリー
A 社では,開発者が変更を共有リポジトリに統合すると,自動的にビルドとテストが行われ,テストに合格した変更はステージング環境に配置される。本番環境へのリリースは,事業部門が決めた日に担当者がボタン操作で実行している。この運用の説明として,適切なものはどれか。
- ア変更を常にリリース可能な状態に保ち,本番環境への展開は人の判断で実行する継続的デリバリーである。
- イテストに合格した変更を,人の承認を介さずに自動的に本番環境へリリースする継続的デプロイである。
- ウ変更を頻繁に統合して自動ビルドとテストを行うだけの,継続的インテグレーションにとどまる運用である。
- エ本番環境を 2 系統用意し,新版を待機系に配置した後に利用者の接続先を切り替えるブルーグリーンデプロイメントである。
正解と解説を見る
正解 ア
この問題の基礎知識
- 継続的インテグレーション(CI)は,変更を頻繁に共有リポジトリへ統合し,そのたびに自動でビルドとテストを行う手法である。
- 継続的デリバリーは,CI に加えて変更を常にリリース可能な状態に保つ手法で,本番環境へのリリースは人の判断で実行する。
- 継続的デプロイは,パイプラインを通過した変更を人の承認を介さずに自動で本番環境へリリースする手法である。
- ブルーグリーンデプロイメントは本番環境の切替え方法であり,CI・継続的デリバリー・継続的デプロイのような自動化の範囲の区別とは観点が異なる。
ア変更を常にリリース可能な状態に保ち,本番環境への展開は人の判断で実行する継続的デリバリーである。正解
継続的デリバリーでは,継続的インテグレーションの後に変更をテスト環境やステージング環境に展開し,本番環境へのリリースはスケジュールに基づき人がボタン操作などで実行する。A 社の運用はこれに当たる。
イテストに合格した変更を,人の承認を介さずに自動的に本番環境へリリースする継続的デプロイである。
継続的デプロイでは,パイプラインを通過した変更が自動的に本番環境にリリースされ,すぐに顧客が利用できるようになる。A 社は本番リリースを担当者の操作で行っているので該当しない。
ウ変更を頻繁に統合して自動ビルドとテストを行うだけの,継続的インテグレーションにとどまる運用である。
継続的インテグレーションは変更の統合と自動ビルド・テストまでを指す。A 社はテストに合格した変更をステージング環境に自動配置しており,その後の段階である継続的デリバリーまで実施している。
エ本番環境を 2 系統用意し,新版を待機系に配置した後に利用者の接続先を切り替えるブルーグリーンデプロイメントである。
ブルーグリーンデプロイメントは,稼働系と待機系の 2 系統の本番環境を切り替えてリリースする手法である。問題文には本番環境を 2 系統用意して切り替えるという記述はない。
検証用の出典出典照合済み
NIST SP 800-204C DevSecOps for a Microservices-based Application with Service Mesh / IPA 応用情報技術者試験(レベル 3)シラバス照合の根拠(4 件)
- ア(正解): 継続的デリバリーは CI の後に変更をテスト環境やステージング環境に展開する段階である
Continuous delivery is the stage after continuous integration where code changes are deployed to a testing and/or staging environment after the build stage.
NIST SP 800-204C · Section 3.1 (CI/CD Pipelines)(新しいタブで開きます) - ア(正解): 継続的デリバリーでは本番リリースはスケジュールに基づき,ボタン操作で実行する(A 社の運用と一致)
This means that on top of automated testing, there is a scheduled release process, though the application can be deployed at any time by clicking a button.
NIST SP 800-204C · Section 3.1 (CI/CD Pipelines)(新しいタブで開きます) - イ(誤り): 継続的デプロイではリリースが自動的に行われ,変更はすぐに顧客が利用できる。A 社は担当者の操作でリリースしている
Continuous deployment is similar to continuous delivery except that the releases happen automatically [17], and changes to code are available to customers immediately after they are made.
NIST SP 800-204C · Section 3.1 (CI/CD Pipelines)(新しいタブで開きます) - ウ(誤り): CI は変更の頻繁な統合と自動ビルド・テストを指す。A 社はその後のステージングへの展開まで行っているので CI にとどまらない
Continuous integration involves developers frequently merging code changes into a central repository where automated builds and tests run.
NIST SP 800-204C · Section 3.1 (CI/CD Pipelines)(新しいタブで開きます)
A 社はテスト合格後にステージングへ自動展開し,本番リリースは事業部門が決めた日に担当者のボタン操作で行うので,NIST SP 800-204C の継続的デリバリーの説明に一致する。エのブルーグリーンデプロイメントは本番環境を 2 系統用意して切り替える手法で,問題文にそうした構成の記述が無いため,状況の説明としては論理的に排除される(定義を述べた読める一次資料は見つけていないが,正解の判定には影響しない)。