Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Pokémon GOとGCP

Pokémon GOとGCP

Pokémon GOにどのようなGCPプロダクトが使われていて、リリース後にGoogle CloudのCustomer Reliability Engineerがどのようなことを実施したか説明したプレゼンテーションです。
酒とゲームとインフラとGCP 第4回 〜いい夫婦の日は家庭を鑑みながら酒を飲めるぞ〜 で発表した資料です。

0cf0e64940658884ce5d88e10dfb2409?s=128

GoogleCloudPlatformJapan

November 22, 2016
Tweet

Transcript

  1. Confidential & Proprietary Google Cloud Platform 1 酒とゲームとインフラとGCP 第4回 〜いい夫婦の日は家庭を鑑みながら酒を飲めるぞ〜

    Google Cloud Platform, Sales Engineer Masanori Satoh / 佐藤 聖規 Pokémon GOとGCP 2016/11/22
  2. Confidential & Proprietary Google Cloud Platform 2 2週間前にGoogle本社に行ってきました

  3. Confidential & Proprietary Google Cloud Platform 3 Googleには捕まえきれないほどのポケモン レアなやつも!

  4. Confidential & Proprietary Google Cloud Platform 4 2016/11/08 東京 GCP

    リージョンスタート! • 台湾とのレイテンシーの比較で、日本各地か らの平均で 50-85% 速い数値を記録 • 3 つのゾーン
  5. Confidential & Proprietary Google Cloud Platform 5 Pokémon GO 爆発的なヒット!

  6. Confidential & Proprietary Google Cloud Platform 6 NianticとPokémon GOと Google

    Customer Reliablity Engineering • CRE ( 顧客信頼性エンジニアリング ) とは、 Google の技術スタッフがお客様の チームと連携して、お客様の重要なクラウドアプリケーションの信頼性と成功に 関する責任を共有する新しいモデル。 • Niantic は Google CRE が適用された最初のお客様であり、最初のプロジェクト が Pokémon Go。 • Pokémon Go がオーストラリアとニュージーランドでリリースされるとトラフィック が急増し、15分も立たないうちに Niantic の予想を遥かに上回った。 • 翌日に控えていたアメリカでのリリースを見越して、Google CREと連携を開始
  7. Confidential & Proprietary Google Cloud Platform 7 Google Cloud Datastore

    がプライマリデータベース • Cloud Datastore のトラフィックは当初目標の50倍。 • CRE チームはトラフィックの記録的な急増に備えて、追加キャパシティをシーム レスにプロビジョニング • 合わせて、安定性に問題が生じた場合は、 Niantic とともに順序立てて一つ一 つ問題に対処し、ソリューションを編み出して展開 • Google CRE チームは Niantic のチームと協力し、 Google Cloud の中核エンジ ニアやプロダクト マネージャーの専門ノウハウを借りながら、アーキテクチャの すべての要素をレビュー
  8. Confidential & Proprietary Google Cloud Platform 8 What is Cloud

    Datastore "モバイルアプリやWebアプリのための、スケーラブルでフルマネージドな NoSQL Database" ドキュメント志向 Database 耐久性の高いキーバリューストア マルチリージョン フルマネージド Databaseサービス 使った分だけの課金 Cloud Datastore
  9. Confidential & Proprietary Google Cloud Platform 9 アプリケーションロジックはコンテナベースでGKE • Niantic

    が GKE を採用したのは、コンテナクラスタを世界規模でオーケストレー ションできるため • コンテナを使うとプレーヤーのための面白い変更をデプロイしやすくなる • Niantic は GKE を利用して、 Pokémon Go を開発、運用し、継続的に調整や改 良を施した • 大胆な技術的な試みの一つが、コンテナクラスタのノード数を1,000以上(最大 2,000)に増やせるGKEの新バージョンへのアップグレード • 大きな期待が寄せられていた日本での Pokémon Go のリリースに備えたもの • 数百万人のプレイヤーが新規登録してくる中、既存プレイヤーにもそのままゲー ムを続けてもらいながら GKE をアップグレードするのは、飛行機のエンジンを飛 行中に交換するようなもの。
  10. Confidential & Proprietary Google Cloud Platform 10 What is Google

    Container Engine Kubernetes のマネージドサービス 1クリックでクラスタの作成が可能 ギリシャ語で “操舵手”; “Governor”のルーツ • コンテナオーケストレーター • マルチクラウドとベアメタルをサポート • Googleのコンテナの運用の経験と社内システムにインスパイア • Go言語で書かれた、オープンソース マシンではなく、アプリケーションを管理 What is Kubernetes Google Container Engine Kubernetes
  11. Confidential & Proprietary Google Cloud Platform 11 Kubernetes Cluster Federation

    Cluster 1
  12. Confidential & Proprietary Google Cloud Platform 12 Kubernetes Cluster Federation

    Cluster 1 Cluster 3 Cluster 3
  13. Confidential & Proprietary Google Cloud Platform 13 ユースケース例 地域分散 •

    ネットワークレイテンシーが重要 • Webユーザ • お客様事例 : ( ブラジル最大手小売業 ) • 顧客へのレイテンシを最小化するために K8S を ブ ラジルのAWSにデプロイ。U.S. の GKEを2つ目のプ ロバイダーに。 GKEがブラジルで動くとよりよい。 Traffic Director Web users GKE in the U.S. GKE in Europe GKE in Asia Tokyo
  14. Confidential & Proprietary Google Cloud Platform 14 ロードバランサーを HTTP/S ロードバランサーに

    従来型ロードバランサー region 2 region 3 region 1 VMs VMs VMs ... ... ... LB(s) DNS LB Google Cloud Platform のロードバランサー region 2 region 3 region 1 VMs VMs VMs ::::::::::::::::::::::::::::::::::::::::::::::: HTTP LB DNS :) 従来型ロードバランサー: 静的IP無し、遅いスケール、DNSに依存 (TTLの影響を受 けるなど)、障害検知も遅い Google HTTP (S) Load Balancer: 1つの Global IP アドレス、最短のホップ、 ウォーミングなし で拡張可能、DNS依存なし、障害検知 X X X X X X X X X X 1つのglobal IP: 11.22.33.44 Google Cloud Load Balancing
  15. Confidential & Proprietary Google Cloud Platform 15 秒間100万のリクエストに対応 Compute Engine

    Load Balancing hits 1 million requests per second! 64インスタンスで 負荷を生成 200インスタンスで Webサーバを提供 ロードバランサーの IP アドレスは一つだけ
  16. Confidential & Proprietary Google Cloud Platform 16 HTTPロードバランサーの使用例 リージョン跨ぎの負荷分散 コンテンツベースルーティング

  17. Confidential & Proprietary Google Cloud Platform 17 アメリカのリリースから2週間後、 日本でのリリース •

    米国でのリリースから2週間後、日本でのリリース。米国でのリリースに比べて3 倍のユーザが新規登録したが、問題は発生しなかった。 • 実施した対策 ◦ 充分なキャパシティプロビジョニング ◦ GKE のアップグレード ◦ HTTP/S Load Balancer へのアップグレード
  18. Confidential & Proprietary Google Cloud Platform 18 まとめ • Pokémon

    GO のゲームの世界は、Google Cloud の10 数種類のサービスを利 用して実現 • Pokémon GO は、GKE での K8S の過去最大のデプロイ例 • Pokémon GO の膨大なプレーヤーをサポートする目的で、Google は Niantic の Container Engine クラスタのために数万ものコアをプロビジョニング • Google のグローバル ネットワークは、共有されたゲームの世界の Pokémon ト レーナーに影響を及ぼす全体的なレイテンシを低減することに貢献 ◦ ゲーム トラフィックの大半は Google のプライベート ファイバー ネットワーク を通過し、信頼性の高い低レイテンシのエクスペリエンスを世界中のプレー ヤーに提供。また、海底でも Google ネットワークを通過
  19. Confidential & Proprietary Google Cloud Platform 19 まとめ • Pokémon

    GOのリリースでは、 Google Cloud にとって総力を上げて対応したプ ロジェクトで、半ダース以上のチームが迅速な判断を実施 • Nianticの側も、 Google Could プロダクトの設計担当エンジニアリング チーム から、アーキテクチャや運用に関するベスト プラクティスについて直接アドバイス を受ける必要があった Google CRE を利用できることはGoogle Cloud を使う上で大きなメリット
  20. Confidential & Proprietary Google Cloud Platform 20 See also Pokémon

    GO の爆発的ヒットを支える Google Cloud
  21. Thank you