【ソフトウェア開発】本番環境でユーザーに気づかれずにテストする!「ダークローンチ」|情報処理問題1000本ノック
アジャイル開発やDevOps、CI/CDの文脈で非常に重要視されるリリース戦略。「ダークローンチ」の定義と、カナリアリリースや機能フラグ(Feature Flag)との関係性を攻略しましょう。
1. 【 問題 】:ソフトウェア工程・システム開発(DevOps・デプロイ戦略)
【 問題 】 システムのリリース手法に関する記述です。新機能や新システムを本番環境にデプロイするが、機能フラグ(Feature Flag)やUIの制御などを用いてエンドユーザーには非表示(または機能無効)にしておき、バックエンドの挙動や負荷への耐久性を本番環境上で安全に検証・テストする手法は、次のうちどれか。
(ア)カナリアリリース(Canary Release)
(イ)ブルーグリーンデプロイメント(Blue-Green Deployment)
(ウ)ダークローンチ(Dark Launch)
(エ)シャドーIT(Shadow IT)
2. 正解:
正解:(ウ)ダークローンチ(Dark Launch)
3. 解説:「『デプロイ(配置)』と『リリース(公開)』を分離する!」
ダークローンチは、本番環境のリアルなトラフィックやデータを使って新機能を稼働させ、パフォーマンス測定やエラー検出を行う手法です。
一般ユーザーには見えず影響がない(暗闇の中で動かす=Dark)ため、仮に裏側で不具合が発生してもユーザー体験を損なうことがありません。
| 手法名 | ユーザーへの露出・切り替え方法 | 主な目的・特徴 |
|---|---|---|
| (ウ)ダークローンチ | 本番に配置するがユーザーには「見せない(0%)」か特定のテストユーザーのみに表示。 | 本番環境の負荷・裏側の挙動をユーザーリスクゼロで検証する。 |
| (ア)カナリアリリース | 全ユーザーの数%(一部)だけに先行公開し、徐々に割合を増やしていく。 | 新バージョンの不具合発生時の影響範囲(障害範囲)を最小限にする。 |
| (イ)ブルーグリーンデプロイメント | 旧環境(Blue)と新環境(Green)を並行して用意し、ルーター等で一気に切り替える。 | ダウンタイム(停止時間)ゼロで即座に切り替え・切り戻し(ロールバック)を行う。 |
1. 理解のコツ:
・「フィーチャーフラグ(Feature Flag)」という技術とセットでよく使われます。
・スイッチ(Flag)を「OFF」にしたまま本番環境にプログラムコードを配置(デプロイ)しておき、裏でテストを実施。準備や動作確認が完璧に終わったら、スイッチを「ON」にして一瞬でユーザーに公開します。
2. 試験対策の視点: アジャイル開発やDevOps、システム移行(基幹システムの置換など)で注目されるテーマです。
問題文に「本番環境にデプロイ」「ユーザーから隠す/見えない」「裏側で負荷や挙動を検証」「機能フラグ(Feature Flag)」といったキーワードが出たら、迷わずダークローンチを選択しましょう!
4. まとめ
本番環境にコードを配置しつつ、ユーザーには非表示の状態で裏側の挙動やパフォーマンスを検証するリリース手法。これがダークローンチです。カナリアリリースやブルーグリーンデプロイメントとの違いも含めてマスターしておきましょう!