新しい機能をリリースするとき、「全員に一斉公開する」のが当たり前だと思っていないでしょうか。実は、多くのIT企業では、あえて「一部の人だけ」に先に届ける方法が使われています。
カナリアリリースとは「炭鉱のカナリア」に由来する手法
カナリアリリースとは、新しい機能やアップデートを、全ユーザーに一斉公開するのではなく、まず一部のユーザーにだけ先行公開し、問題がないことを確認しながら段階的に公開範囲を広げていく手法のことです。
名前の由来は、その昔、炭鉱労働者が有毒ガスをいち早く察知するために、カナリアを坑道に連れて入っていたという話からきています。カナリアは有毒ガスに人間より敏感に反応するため、カナリアの異変に気づくことで、人間が危険を察知する前に避難できたとされています。IT業界では、この「一部を先に試す」という考え方を、新機能のリリースに応用しています。
なぜ、一斉公開ではなくこの方法を選ぶのか
新機能を全員に一斉公開してしまうと、もし想定外の不具合があった場合、すべての利用者が影響を受けてしまいます。特に、多くの人が同時に使うサービスでは、たった一つの不具合が大きな信頼の損失につながりかねません。
カナリアリリースでは、まず利用者の1%、5%といった小さな範囲にだけ新機能を公開します。この範囲で問題が起きなければ、10%、50%と徐々に公開範囲を広げていき、最終的に全員へ展開します。もし途中で問題が見つかった場合は、公開範囲をそれ以上広げずに、影響を受けた一部の利用者だけで被害を抑えることができます。
実務での使われ方
大規模なサービスでは、公開する利用者の割合を自動で管理する専用の仕組みを使うことが一般的です。ただし、考え方自体はもっとシンプルに応用することもできます。
- まず社内のメンバーだけに新機能を公開して試す
- 特定の地域や、特定の会員ランクの利用者だけに先行公開する
- 新機能を使うかどうかを、利用者自身が選べるようにしておく
いずれの場合も共通しているのは、「何かあった時に、被害を小さい範囲で止められる状態を作っておく」という考え方です。新しいことに挑戦する際、成功と失敗をいきなり全体で判断するのではなく、小さく試してから広げていく姿勢は、システム開発に限らず参考になる部分があると感じています。
まとめ
カナリアリリースは、新機能を一部の利用者に先行公開し、問題がないことを確認しながら公開範囲を広げていく手法です。全員に一斉公開するより手間はかかりますが、万が一の不具合による影響を最小限に抑えられるという大きな利点があります。大掛かりな仕組みがなくても、「まず小さく試す」という考え方自体は、規模を問わず取り入れることができます。
関連記事:ブルーグリーンデプロイとは
関連記事:ストラングラーパターンとは