一覧に戻る
Lv.2

カナリアリリース

Canary Release

新しい機能を一部のユーザーだけに先に公開して安全性を確認する手法。

簡単に説明すると

カナリアリリースは、新しいプログラムを全てのユーザーに届ける前に、ごく一部の人にだけ公開して様子を見る手法のことだよ。 まずサーバーを1つだけ新しいバージョンに入れ替えて、そこにアクセスした一部のユーザーの反応をチェックするんだ。大きなトラブルが起きないことを確認してから、数日かけて他のユーザーにも少しずつ広めていくよ。

名前のヒミツ

カナリアリリース(かなりありりーす)。 Canary Release(カナリア リリース)。「カナリア」と「リリース」を組み合わせた言葉だよ。由来は、かつて炭鉱で毒ガスが発生していないかを確認するために、カナリアをカゴに入れて連れて行った習慣からきているんだ。システムに問題がないかを真っ先に検知する役割をカナリアに例えているよ。

くわしく見てみよう!

カナリアリリースとは、新しいシステムや機能を公開する際に、いきなり全員に提供せず、特定のグループや一部のサーバーだけに先行して導入する手法のことだよ。

ざっくり言うと、本番の環境で「お試し公開」をしてリスクを最小限に抑える仕組みなんだ。
新しいプログラムに不具合があっても、まずは小規模な範囲で異常を検知することで、被害がサービス全体へ波及するのを未然に防ぎやすくなるんだよ。

具体的には、まず全体の5%や10%といった少ない割合の通信(アクセス)だけを新しいバージョンのサーバーに流すように設定するんだ。
そこでエラーが発生しないか、動作が重くなっていないかを詳しく監視するよ。

もし問題が見つかればすぐに新しいバージョンへの通信を遮断して元の状態に戻せるし、問題がなければ徐々に新しいバージョンへ切り替える範囲を広げていくんだ。
最終的に全てのユーザーが新しい機能を使えるようになれば、リリースは完了だよ。

このような「少しずつ公開して安全を確かめる」考え方は、様々な仕組みに応用されているよ。
インフラ側で通信を制御する手法のほかに、アプリストアの機能を使って更新版のアプリをユーザーへ段階的に配信したり、特定の利用者にだけ機能を有効化する設定を組み合わせて行われることもあるんだ。
いずれの仕組みも、一度に全てを切り替えるリスクを小さくしたいという考え方を共通の土台にしているよ。