7月のリリース以来、今もなお世界中で多くのプレイヤーをとりこにし、社会現象にまで発展したスマホの位置情報ゲーム「Pokémon GO」 。筆者はたまたまニューヨークでとあるカンファレンスを取材中にそのローンチのニュースを耳にしたのですが、コンシューマのみならずエンタープライズ業界においても「Pokémon GOこそは新しいイノベーションだ!」と熱く語るIT関係者が多かったことに驚きを覚えました。実際、Pokémon GOの成功は、オリジナルコンテンツの魅力に加え、ゲームのバックボーンを構築したGoogle派生のベンチャー企業であるNianticの技術力に大きく依存しています。
GoogleからフォークしたNianticは、現在、Googleのパブリッククラウドサービス「Google Cloud Platform(GCP) 」の大規模ユーザでもあり、当然ながらPokémon GOもGCP上でサービスが展開されています。今回は、世界中で増加の一途をたどるポケモントレーナーたちを華麗にさばくGCPと、その根幹を支えるGoogleの「Site Reliability Engineering(サイト信頼性エンジニアリング:SRE) 」 「 Customer Reliability Engineering(顧客信頼性エンジニアリング:CRE) 」という概念についてご紹介したいと思います。
米国ではリリース直後から大きな話題となったPokémon GO。コンシューマだけでなく、最新技術を集大成させたイノベーションとしてエンタープライズの世界でも大きく取り上げられた。写真はニューヨークで行われた「Inforum 2016」の基調講演で紹介されたPokémon GOの画面
「ポケモンGOフィーバー」を支えたGKE、それを可能にしたCRE
Pokémon GOはもともと、Nianticがスマホの位置情報ゲームとして提供してきた「Ingress」での実績をベースにしています。また、Pokémon GOの正式ローンチ前には日本国内でフィールドテストを数ヵ月に渡って実施しており、ある程度の成功の目算はすでにできていたといいます。
しかし、実際に本番サービスをローンチするにあたっては、いかに技術力に定評のあるNianticといえども不安を隠しきれるものではありません。とくにサービス開始当初、どれだけの数のユーザ(ポケモントレーナー)がアクセスしてくるのか、正確な予想を立てるのはかなり難しかったはずです。サービスローンチ直後にサイトが落ちたりすれば、今後の展開にも大きな影響が出ることは免れません。
ここでNianticが取った選択は、「 Google Customer Reliability Engineering」というまったく新しいサービスの契約をGoogleと結ぶことでした。これによりNianticはCREの顧客第一号となります。
Bringing Pokémon GO to life on Google Cloud :Google Cloud Platform Blog
7月6日、同社はオーストラリア、ニュージランド、米国においてPokémon GOの先行サービスを開始していますが、時差の関係でオーストラリアとニュージランドは米国よりも約1日早いスタートとなります。人口比で考えればポケモントレーナーの数は圧倒的に米国のほうが多くなることはわかりきっていました。つまりNianticは米国でのローンチ前のわずかな時間を使って、オーストラリアとニュージランドで"テスト"をすることができたのです。
オーストラリアとニュージランドでサービスを立ち上げた15分後、トレーナーによるトラフィックはNianticの予想をはるかに超えていました。何か自分たちの考えの及ばないようなことが起こっている ―そう判断したNianticのメンバーはGoogleのCREチームに電話をし、翌日の米国でのローンチでは「新たなポケモントレーナーの殺到に準備する必要がある」ことを伝えました。この対処により、熱狂的な米国でのスタートも無事に乗り切ることができたと言われています。
ちなみに上記のGCPのブログによれば、サービスローンチ直後にPokémon GOで採用しているGoogleのNoSQLデータストアサービス「Google Cloud Datastore」のトラフィックを見ると、当初、GoogleのCREチームが予想したトラフィックを1とすると、オーストラリア/ニュージランドでのトレーナー数を見てNianticが概算したトラフィックは「最悪でも5倍」 、しかし実際には50倍ものトレーナーたちが押し寄せ、それも1秒ごとに加速度的に増えていくというすさまじい伸び方をしています。Google Cloud Datastoreがいかにスケーラビリティがすぐれたデータストアとはいえ、当初の予測にもとづいていたら、つまりCREの力を借りなかったら、ローンチ直後にサービスダウンという悲劇もありえたかもしれません。
Pokémon GOが採用しているGCPの技術として注目すべきはほかにもあります。そのひとつがGoogleの主導するオープンソースプロジェクト「Kubernetes」に支えられたコンテナエンジン「Google Container Engine(GKE) 」です。Nianticはコンテナクラスタを構築するにあたって、GKEの圧倒的なスケーラビリティを高く評価し、Pokémon GOのインフラ基盤として選択しています。つまりPokémon GOは世界最大級のコンテナ本番環境とも言えるでしょう。トレーナーたちのリアルタイムな増減、ゲームへのイン/アウト、そうしたダイナミックな動きに対応したアプリケーションのデプロイなどにNianticのエンジニアたちが集中するためにも、コンテナの自動オーケストレーションは欠かせない機能であり、それを安心して任せられたCREの存在は大きかったはずです。
米国でのローンチ後、9月にサービスが提供開始された日本での"ポケGO"ブームはここで触れるまでもないでしょう。他国での十分な検証が済んだあとだったこともあり、Pokémon GOの大きなシステム障害は報告されていません。これもNianticとGoogle CREのチームとしての連携の成果だといえます。
「追加料金0ドル」の真の対価
ここであらためて、Nianticが採用し、Pokémon GOという超人気アプリケーションを支えるGoogleのCRE、そしてそのベースとなったSREという概念について考えてみます。
Googleの新しい専門職 : CREが必要な理由 -Google Cloud Platform Japan公式ブログ
上記のブログをご覧になれば、SREとCREについての概要をつかめるかと思います。開発者と運用担当者の間に許容できるダウンタイムをベースにした"合意事項"を作り、互いの責任範囲を明確にしたSREを定めたことで、「 Googleには協力し合うという企業カルチャーが生まれ、高い信頼性と驚異的スピードのイノベーションにつながった」とあります。
この考え方を顧客との関係性にも転じた考え方がCREといえます。開発と運用が合意の上で互いの責任範囲を明確にするように、クラウド事業者と顧客が同様に互いの責任範囲をすみやかに実行するという契約です。ここで特徴的なのは、SREでの"ダウンタイム"にあたるものが、CREでは"エラー予算"と呼ばれている点です。Googleが顧客のシステムを精査した結果、Googleが考える信頼性と現実の顧客のシステムの間にあるギャップ ―この"エラー予算"をベースに共通のシステムモニタリング体制を構築するとあります。
GoogleはこのCREサービスを「追加料金0ドル」で提供しています。その理由についての説明を、以下に抜粋します。
ここで気をつけていただきたいのは、0ドルというのは無料と同じではないということです。Google レベルの厳しい運用基準を達成するには、お客様の側でも継続的に責任を持っていただかなくてはなりません。
これには時間も努力も必要です。達成に向けては Google もお客様を支援しますが、それでもお客様が自ら取り組む必要があります。この契約がどういったものかについては、上で紹介した書籍『Site Reliability Engineering』をご覧いただき、そこに書かれた概要に取り組む意思があるかどうか自ら問いかけてみてください。
企業がお客様に対して「一緒にやっていきましょう」と言うことが流行していますが、企業側がその役割をきちんと果たしているケースは多くない、というのが実情です。
真に「一緒にやる」人たちは、双方に対する義務感があり、お互いの責任を背負っています。共通のゴールに向けて共同で作業し、相互にやり取りする金銭よりも重要な運命を共にするのです。
このプログラムはすべてのお客様に適しているわけではありません。実際、努力が必要なので、お客様の大半は申し込まないのではないかと私たちは見ています。
つまり、Nianticのように自分たちで努力する意思をもつ企業でなければ、CREを利用するに値しない、とGoogleは断言しているのです。パブリッククラウドがビジネスとして普及し始めてから約10年が経ちますが、筆者はこれほどまでに明確なかたちで顧客側に努力の必要性を突きつけたベンダをほかに知りません。クラウドという既存の常識を大きく変えつつあるプラットフォームを使い、自社のビジネスを拡大させていくには、顧客側の努力が欠かせないということはこれまで何度も何度も言われてきました。しかしGoogleがCREで示したような定量的な指標をもって、顧客に努力と責任を迫ったベンダはほとんど存在しないのではないでしょうか。単なるSLAとは異なる凄みをCREからは強く感じます。
GoogleはCREについて「新たなソーシャル契約」と表現しています。クラウドやモバイルが技術が世界を大きく変えたいま、ベンダと顧客の関係性にも大きな変化が訪れようとしています。そしてNianticのようにその変化を受け容れた企業こそが、誰も体験したことのないゾーンへとビジネスを拡大させていくことができるのかもしれません。