【だーくろーんち】

ダークローンチ とは?

💡 新機能を「闇」のままリリースして本番テスト
📌 このページのポイント
ダークローンチの仕組み 本番サーバー デプロイ済み フィーチャーフラグ ON / OFF 一般ユーザー(95%) 👤 👤 👤 👤 👤 👤 新機能は見えない ✕ テスト対象(5%) 👤 👤 👤 新機能が見える ✓ 段階的な公開 デプロイ 5%公開 50%公開 全体公開
ダークローンチのイメージ
ひよこ ひよこ

ステージング環境でのテストとどう違うの?

ペンギン先生 ペンギン先生

ステージング環境は本番を模倣しているけど、データ量もトラフィックパターンも本番とは違う。ダークローンチは本番の実トラフィック・実データで新機能を検証する。特にデータベースの新しいクエリパターンやAPI変更が本番規模で問題ないかを確認するには、本番環境でのテストが最も信頼性が高いんだよ

ひよこ ひよこ

具体的な方法は?

ペンギン先生 ペンギン先生

フィーチャーフラグで新UIを非表示にしつつバックエンド処理は実行、②シャドウトラフィック(本番リクエストのコピーを新サービスに送って結果を比較)、③新旧のDBクエリを並行実行して結果を比較。GitHubのScientistライブラリが新旧コードパスの比較実行と結果検証を自動化してくれるよ

ひよこ ひよこ

おもしろい!注意点は?

ペンギン先生 ペンギン先生

副作用に注意。メール送信やAPI呼び出しを含む処理をダークローンチすると二重実行になる。副作用のある部分はモックに置き換える必要がある。②パフォーマンス影響。新旧並行実行は処理負荷が2倍になる。③データの整合性。新旧のコードパスで異なるデータを書き込まないよう注意しようね

ひよこ ひよこ

どんな企業が使っている?

ペンギン先生 ペンギン先生

Facebook(現Meta)が大規模に実践していて、新機能は必ずダークローンチで検証してから公開する。Googleも新検索アルゴリズムをダークローンチで本番トラフィックで評価する。大規模サービスほど「本番でしか見つからない問題」が多いから、この手法が重要になるんだよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ダークローンチ」って出てきたら「本番にデプロイするけどユーザーには見せないテスト手法」と思えればだいたいOK!
📖 おまけ:英語の意味
「Dark Launch / Dark Release」 = 闇のリリース
💬 Dark(暗い・隠れた)Launch(打ち上げ)。ユーザーの目に触れない状態でリリースするよ
← 用語集にもどる