SEDesign

  • トップ
  • DX Insight
  • カナリアリリースとは?ブルーグリーンデプロイメントとの違いや実施方法を紹介

カナリアリリースとは?ブルーグリーンデプロイメントとの違いや実施方法を紹介

DX Insight編集部
2021-04-01

33234329_l多くの方は「カナリアリリース」という言葉を一度は耳にしたことがあるはずです。しかし、詳しい意味や具体的な実施方法はよくわからないという方も多いのではないでしょうか。カナリアリリースとは、アプリケーションの新バージョンをリリースする際、まず一部ユーザーのみに限定して公開し、本番環境向けのテストを行ってから一般公開する手法です。この手法には、本番環境で発生する不具合をあらかじめ解消し、より完成度の高い状態で一般公開できるメリットがあります。

この記事では、カナリアリリースの由来やメリット、デメリットのほか、活用事例、実施方法、ブルーグリーンデプロイメントとの違いなどについて解説します。

カナリアリリースとは

最初にカナリアリリースの概要や名称の由来、メリット、デメリット、ブルーグリーンデプロイメントとの違いについて見てきましょう。

カナリアリリースの概要と名称の由来

カナリアリリースとは、新バージョンのアプリケーションをリリースする際、最初からすべてのユーザーに公開するのではなく、まず一部のユーザー(全体の1%など)に限定公開してテストを行い、所定の基準をクリアすることができれば、一般に向けて公開する手法です。

「カナリア」の名称は、かつて炭鉱夫がガス漏れ事故から身を守るため、一酸化炭素などの無臭ガスにも敏感に反応するカナリアを炭鉱に持ち込んだことが由来とされています。新バージョンにアクセスしてテストに参加する一部ユーザーを、ガス漏れを察知するカナリアに見立てて、この名前が付けられました。

カナリアリリースのメリット

カナリアリリースには、以下のようなメリットがあります。

本番環境のテストで不具合を確認できる

カナリアリリースの最大のメリットは、本番環境でのテストが実施できることです。一般的にアプリケーションは開発された後、公開に至るまでにさまざまなテストが行われます。しかし、アプリケーションが本番環境に公開されると、公開前には予測できなかった不具合が発生することもあります。カナリアリリースによって、こうした本番環境で初めて発生する不具合を解消することができます。

問題があればすぐに元に戻せる

カナリアリリースでは、現バージョンと並行して新バージョンを稼働させます。したがって、新バージョンのテスト結果に問題があった場合は、すぐに現バージョンに戻せます。

稼働停止時間がない

新バージョンの公開にあたって稼働停止時間がないこともカナリアリリースのメリットです。現バージョンのアプリケーションを一度削除し、新バージョンを新たに導入するシンプルな公開法では、どうしても現バージョンのアプリケーションを一時停止させる必要が生じます。その点、現バージョンと新バージョンを並行稼働させるカナリアリリースでは、新バージョンへの切り替えは一瞬でできるため、現バージョンを停止する必要はなくなります。

カナリアリリースのデメリット

カナリアリリースには、以下のようなデメリットもあります。

サーバーのリソースなど追加コストが発生する

現バージョンと新バージョンを並行稼働させるカナリアリリースでは、サーバーの処理速度やリソースの容量など、追加のコストを想定しておかなければなりません。

一般公開までに時間と労力がかかる

カナリアリリースでは、本番環境でのテストを実施し、所定の基準をクリアして初めて一般公開されます。したがって、これらのテストのための一定の労力と時間が発生します。

ブルーグリーンデプロイメントとの違い

カナリアリリースは、「ブルーグリーンデプロイメント」の一種です。ブルーグリーンデプロイメントに「テスト工程」を加えたものがカナリアリリースだといえます。

ブルーグリーンデプロイメントとは、新バージョンのアプリケーションを公開するにあたり、現バージョン(ブルー)と新バージョン(グリーン)の両方を並行して稼働させ、切り替えにより公開します。切り替えは一瞬でできるため、稼働停止時間なしに公開できるのがメリットです。

しかし、「それではカナリアリリースと同じでは?」と思う方もいるかもしれません。たしかにここまではカナリアリリースと全く同じですが、違いはブルーグリーンデプロイメントにはテストの工程が含まれていないことです。

ブルーグリーンデプロイメントでは、現バージョンから新バージョンへの切り替えは初めから全ユーザーに向けて行います。それに対してカナリアリリースでは、最初は一部ユーザーにのみ限定公開してテストを行い、テストをクリアして初めて全ユーザーに公開されます。したがって、ブルーグリーンデプロイメントにテスト工程を加えたものが、カナリアリリースということになります。

カナリアリリースの活用事例

アプリケーションの公開手法として一般化しつつあるカナリアリリースは、多くのサイトで採用されるようになっています。メルカリでは2019年に、またAmazonでも2020年にカナリアリリースの手法が採用されました。

カナリアリリースの実施方法

次に、カナリアリリースを実施する方法について見てみましょう。

GoogleNetflixの共同開発によるツール公開

カナリアリリースはアプリケーションの不具合を解消するための手法として、近年大きな注目を集めています。しかし、大規模なアプリケーションの場合だと、同時に1,000人以上のユーザーが利用していることもあり、こうした状況を想定したテストを人手で行うのには膨大な時間と労力がかかることに加えて、人的エラーの発生が避けられません。

そこで、GoogleNetflixが共同で開発したカナリアリリース自動処理のツール「Kayenta」が、20186月にオープンソースとして公開されました。Kayentaを活用することで、公開前のテストを人手に頼る必要はなくなります。

STEP1 「カナリア」の公開戦略を策定する

最初に、アプリケーションの新バージョン「カナリア」の公開戦略を策定します。たとえば、ユーザーが多くの地域に分散しているケースであれば、特定の地域のみに公開するなど対象範囲を設定します。

STEP2 「ベースライン」を用意する

カナリアのテストにあたっては、比較対象として実際の本番環境そのものではなく、カナリアに相当する現バージョンの一部分「ベースライン」を別に用意します。

STEP3 カナリアとベースラインを同時に稼働させる

ベースラインが用意できたら、カナリアとベースラインを同時に稼働させます。同時稼働によって、カナリアとベースラインを同じ条件で比較できるようになります。限定公開する対象もカナリアとベースラインで同じにします。

STEP4 カナリアとベースラインを比較しながらテストを行う

その後は、カナリアのテストをベースラインと比較しながら実施します。テストのポイントとしては、CPUやメモリの使用量、エラーの発生率などがあります。前述したKayentaなどのツールを使用すれば、テストは自動化が可能です。

STEP5 テスト合格ならカナリアを全体に公開する

テスト結果はスコア化し、総合スコアが定められた基準(85点など)を上回った場合は合格です。合格したら、カナリアを一般公開します(不合格の場合は、カナリアの限定公開は中止します)。カナリアが一般公開されたら、テストのために稼働させたベースラインは公開を中止し、削除します。

まとめ

カナリアリリースは、アプリケーション開発の方法として近年主流になりつつある「継続的インテグレーション/継続的デリバリー(CI/CD)」で使用される手法です。CI/CDとは、大規模で複雑なアプリケーションを小さな単位に分割し、開発・テストおよび公開を短いサイクルで行っていくものです。この方法により、これまでアプリケーションの公開に数ヶ月単位の時間を要していたのが、数週間程度にまで短縮されます。

アプリケーションを短いサイクルで公開できるようになれば、ユーザーのニーズも高い頻度で反映できるようになります。問題があるアプリケーションを長期間にわたって放置することもなくなり、収益やコストの面でも大きなメリットが生まれます。

カナリアリリースなどのCI/CDの手法は、アプリケーション開発者によって使用されます。しかし、ビジネス的にも大きなメリットがあるこれらの手法については、マーケティング担当者もよく認識しておくことは必要といえるでしょう。

  • facebook
  • mail

関連する記事