← 概念辨析に戻る

Concept Contrast Fable

まず一台の車を入れて様子を見るのと、比例に従って区間ごとに通行させる

先に結論:カナリアリリースはまず少量のトラフィックを新バージョンに流し、指標が正常になってから拡大する。グレーリリースは事前計画に従って新バージョンの割合を段階的に増やす。どちらもリスクを制御するが、カナリアリリースの核心は観測後の判断、グレーリリースの核心は計画に沿った進行である。

カナリアリリースはまず少量のトラフィックを新バージョンに流し、指標が正常になってから拡大する。グレーリリースは事前計画に従って新バージョンの割合を段階的に増やす。どちらもリスクを制御するが、カナリアリリースの核心は観測後の判断、グレーリリースの核心は計画に沿った進行である。

寓話

二つの新しい橋の守橋人、一人はまず一人を通し、一人は人数に応じて順に通す

古城の外に二つの新しい橋が架かり、同じ日に完成した。東橋の守橋人である老沈は、荷を担ぐ二人を先に通し、自分は橋のたもとに立って橋面に亀裂がないかを見、異音がないかを聞いていた。西橋の守橋人である老徐は、比率表を一枚持っていた。最初の一時辰は通行人の一割を通し、二番目の一時辰は三割、三番目の一時辰は六割、日没前に全橋を通す。

東橋の二人の担ぎ手が半分まで進んだとき、橋面が震えた。老沈はすぐに笛を吹き、人を呼び戻し、橋を再検査した。三本目の橋脚に軽微な沈下が見つかり、工匠は夜通し補強した。翌日、老沈はさらに三台の荷車を通し、橋が安定してから人を通し始めた。西橋は割合で通行させ、三番目の刻限に六割の人流量になったところで橋面が揺れ始めた。老徐は計画表に六割と書いてあるのを見て、止めなかった。その結果、橋面はさらに激しく揺れ、歩行者は走り始めた。

事後の振り返りで、県官は老徐に为什么不叫停と尋ねた。老徐は計画表に観測後決定というステップがなく、比例実行は中断されるべきではないと述べた。老沈は自分の論理はちょうど逆だと言った——各ステップはまず試してから放す、試しに通らなければ放さない、観測結果が唯一の通行証だ。県官は記録に書いた:一つは観測で決定し、一つは計画で推進する。混ぜて使ってはいけない。

後に両方の橋が補修された。県官は、新橋の検収当日は必ず老沈の方法を使うと定めた——まず最小の負荷をかけ、重要な指標を観測し、指標が基準を満たさなければ次の段階に進んではならない。日常の通行には老徐の方法を使ってよい——橋はすでに安全だと検証済みなので、計画に沿って段階的に進める。

新しく来た守橋の学徒が質問した:カナリアの人が通って問題なかったら、そのまま全部開放していいのか?老沈は言った、だめだ、人が少ないときの圧力と人が多いときの共振は別物だ。カナリアはこのバージョンを開放し始めていいと教えるだけで、一気に開放しきっていいという意味ではない。

後に守橋人の手引きに一枚の図が描かれた:まず車を一、二台通す——観測——一割通す——観測——三割通す——観測——六割通す——全部通す。カナリアは最初の一歩、グレーリリースは道全体だ。最初の一歩は進めるかどうかを判断し、後のステップはどれだけ速く進むかを制御する。

マニュアルの最後のページに一行書かれていた。カナリアが問題を起こさなかったからといって、すぐに全開放してよいわけではない。グレーリリースで八割を出して問題がなかったからといって、観測が不要になるわけではない。二つの言葉は同じことを言っている——一度に全員を橋に乗せるな。

カナリアリリース

まず新バージョンをごく少数のユーザーまたはトラフィックに公開し、主要指標を観測する。指標が正常になってから徐々に範囲を広げる。核心となる動作は観測後の判断であり、固定した計画に沿って進めることではない。

カナリアリリース

あらかじめ決めた比率と時間計画に従い、段階的にトラフィックを新バージョンに切り替える。核心は計画に沿って進めることで、各段階で観測はあるかもしれないが、意思決定の論理は計画駆動である。

物語の対応

  • 老沈はまず2人を放って観測する:カナリアリリース、観測後に判断、問題があればリリースしない
  • 老徐は一割、三割、六割で進めた:カナリアリリース、計画に沿って段階的に推進
  • 西橋は計画通り六割を揺らし続けた:計画駆動はリアルタイムの信号を見落としうる
  • 検収当日は老沈の方法、日常は老徐の方法:カナリアは初回検証に適し、グレーは安定推進に適する
  • カナリアが通っても一気に全開放とは限らない:二人分の安全は、フル負荷の安全ではない
  • 手引きに描かれたカナリアは第一歩:カナリアは段階的リリースの第一段階だが、意思決定ロジックが異なる

リリース戦略の設計に落とし込む

初回リリースまたは重大な変更時には、まずカナリアリリースを行う——ごく小さい割合のトラフィックを流し、少なくとも一つの完全な監視サイクルを観測し、指標が基準を満たさなければ直ちにロールバックする。カナリアが通過したら、段階的リリースに進む——割合に応じて段階的にトラフィックを増やし、各段階にロールバックのトリガー条件を設ける。段階的リリースをカナリアの観測検証の代わりにしてはならず、カナリア通過後に一度に全量を流してもならない。両者の連携はこうだ。カナリアは進めるかどうかを判断し、段階的リリースはどれだけ速く進むかを制御する。

京ICP备2026014272号