【だーくろーんち】

ダークローンチ とは?

最終更新:
💡 本番の裏側で新しい処理を試し、表には今の結果を出す

新しい処理を本番環境で動かし、利用者にはその結果を見せずに動作や負荷を確かめる手法。既存の処理を利用者向けに保ちながら、候補の結果や実行時間を観測します。

📌 このページのポイント
ダークローンチ:表と裏を分ける利用者の要求既存の処理画面表へ返すのは、既存の結果新しい処理裏で動かす入力を渡す記録観測裏の負荷・副作用も確認し、止められるように
本番の裏で候補を動かす例。新しい結果を一部の利用者へ返す段階的公開とは区別します。
ひよこ ひよこ
ダークローンチって、何を隠しているの?
ペンギン先生 ペンギン先生
新しい処理の結果を、一般の利用者にまだ見せないんだ。例えばおすすめを計算する新しい処理を本番で呼び、結果や時間を記録する。でも画面には今までの結果を返す、という使い方だよ。
ひよこ ひよこ
コードを置いて、OFFにするだけでも検証できる?
ペンギン先生 ペンギン先生
配置や起動の確認はできても、新しい処理を呼ばなければ、実際の入力での動作は確かめられないよ。何を実行して何を利用者へ返すかを分けて考えよう。フィーチャーフラグは、実行や公開を切り替える仕組みとして使えるんだ。
ひよこ ひよこ
ステージングのテストや、少人数への公開とはどう違う?
ペンギン先生 ペンギン先生
本番の入力や依存先で調べられるけれど、事前テストの代わりではないよ。一部の利用者へ新しい結果を返す段階的公開は、ここで説明する「結果を見せない検証」と区別しよう。シャドウテストは、要求を複製するなどの実現方法の一つだね。
ひよこ ひよこ
見えないなら、本番への影響はないの?
ペンギン先生 ペンギン先生
新しい処理もCPUや外部サービスを使うので、負荷や料金が増えることはあるよ。対象を絞って観測し、すぐ止められるようにしよう。メールや決済、共有データへの書き込みを二重に実行しないよう、副作用を分離することも大切だね。
ひよこ ひよこ
実際に結果を比べる道具はある?
ペンギン先生 ペンギン先生
GitHubのScientistは、既存と候補の処理を動かし、結果や時間を比べ、既存の結果を返す仕組みを紹介しているよ。GitHubの説明では読み取り処理に使い、共有データを変える候補には使わない。どんな処理にもそのまま適用できるわけではないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ダークローンチ」って出てきたら「新しい処理を本番の裏で試し、結果はまだ利用者に見せない方法」と思えばだいたいOK!
📖 おまけ:英語の意味
「Dark Launch」 = 利用者に見せない状態での投入
💬 Darkは表に見えない、Launchは投入・公開というイメージだよ。ここでは新しい処理を裏で動かし、その結果をまだ利用者へ出さない方法を説明しているんだ。

参考資料

← 用語集にもどる