Confidential & ProprietaryGoogle Cloud Platform 1
酒とゲームとインフラとGCP 第4回
〜いい夫婦の日は家庭を鑑みながら酒を飲めるぞ〜
Google Cloud Platform, Sales Engineer
Masanori Satoh / 佐藤 聖規
Pokémon GOとGCP
2016/11/22
Confidential & ProprietaryGoogle Cloud Platform 2
2週間前にGoogle本社に行ってきました
Confidential & ProprietaryGoogle Cloud Platform 3
Googleには捕まえきれないほどのポケモン
レアなやつも!
Confidential & ProprietaryGoogle Cloud Platform 4
2016/11/08
東京 GCP リージョンスタート!
● 台湾とのレイテンシーの比較で、日本各地か
らの平均で 50-85% 速い数値を記録
● 3 つのゾーン
Confidential & ProprietaryGoogle Cloud Platform 5
Pokémon GO 爆発的なヒット!
Confidential & ProprietaryGoogle 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と連携を開始
Confidential & ProprietaryGoogle Cloud Platform 7
Google Cloud Datastore がプライマリデータベース
● Cloud Datastore のトラフィックは当初目標の50倍。
● CRE チームはトラフィックの記録的な急増に備えて、追加キャパシティをシーム
レスにプロビジョニング
● 合わせて、安定性に問題が生じた場合は、 Niantic とともに順序立てて一つ一
つ問題に対処し、ソリューションを編み出して展開
● Google CRE チームは Niantic のチームと協力し、 Google Cloud の中核エンジ
ニアやプロダクト マネージャーの専門ノウハウを借りながら、アーキテクチャの
すべての要素をレビュー
Confidential & ProprietaryGoogle Cloud Platform 8
What is Cloud Datastore
"モバイルアプリやWebアプリのための、スケーラブルでフルマネージドなNoSQL Database"
ドキュメント志向 Database
耐久性の高いキーバリューストア
マルチリージョン フルマネージド Databaseサービス
使った分だけの課金
Cloud Datastore
Confidential & ProprietaryGoogle Cloud Platform 9
アプリケーションロジックはコンテナベースでGKE
● Niantic が GKE を採用したのは、コンテナクラスタを世界規模でオーケストレー
ションできるため
● コンテナを使うとプレーヤーのための面白い変更をデプロイしやすくなる
● Niantic は GKE を利用して、 Pokémon Go を開発、運用し、継続的に調整や改
良を施した
● 大胆な技術的な試みの一つが、コンテナクラスタのノード数を1,000以上(最大
2,000)に増やせるGKEの新バージョンへのアップグレード
● 大きな期待が寄せられていた日本での Pokémon Go のリリースに備えたもの
● 数百万人のプレイヤーが新規登録してくる中、既存プレイヤーにもそのままゲー
ムを続けてもらいながら GKE をアップグレードするのは、飛行機のエンジンを飛
行中に交換するようなもの。
Confidential & ProprietaryGoogle Cloud Platform 10
What is Google Container Engine
Kubernetes のマネージドサービス
1クリックでクラスタの作成が可能
ギリシャ語で “操舵手”; “Governor”のルーツ
• コンテナオーケストレーター
• マルチクラウドとベアメタルをサポート
• Googleのコンテナの運用の経験と社内システムにインスパイア
• Go言語で書かれた、オープンソース
マシンではなく、アプリケーションを管理
What is Kubernetes
Google Container Engine
Kubernetes
Confidential & ProprietaryGoogle Cloud Platform 11
Kubernetes Cluster Federation
Cluster 1
Confidential & ProprietaryGoogle Cloud Platform 12
Kubernetes Cluster
Federation
Cluster 1 Cluster 3
Cluster 3
Confidential & ProprietaryGoogle 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
Confidential & ProprietaryGoogle Cloud Platform 14
ロードバランサーを HTTP/S ロードバランサーに
従来型ロードバランサー
region 2 region 3region 1
VMs VMs VMs
... ... ...LB(s)
DNS LB
Google Cloud Platform のロードバランサー
region 2 region 3region 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
Confidential & ProprietaryGoogle Cloud Platform 15
秒間100万のリクエストに対応
Compute Engine Load Balancing hits 1 million requests per second!
64インスタンスで
負荷を生成
200インスタンスで
Webサーバを提供
ロードバランサーの IP
アドレスは一つだけ
Confidential & ProprietaryGoogle Cloud Platform 16
HTTPロードバランサーの使用例
リージョン跨ぎの負荷分散 コンテンツベースルーティング
Confidential & ProprietaryGoogle Cloud Platform 17
アメリカのリリースから2週間後、
日本でのリリース
● 米国でのリリースから2週間後、日本でのリリース。米国でのリリースに比べて3
倍のユーザが新規登録したが、問題は発生しなかった。
● 実施した対策
○ 充分なキャパシティプロビジョニング
○ GKE のアップグレード
○ HTTP/S Load Balancer へのアップグレード
Confidential & ProprietaryGoogle 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 ネットワークを通過
Confidential & ProprietaryGoogle Cloud Platform 19
まとめ
● Pokémon GOのリリースでは、 Google Cloud にとって総力を上げて対応したプ
ロジェクトで、半ダース以上のチームが迅速な判断を実施
● Nianticの側も、 Google Could プロダクトの設計担当エンジニアリング チーム
から、アーキテクチャや運用に関するベスト プラクティスについて直接アドバイス
を受ける必要があった
Google CRE を利用できることはGoogle Cloud を使う上で大きなメリット
Confidential & ProprietaryGoogle Cloud Platform 20
See also
Pokémon GO の爆発的ヒットを支える Google Cloud
Thank you

Pokémon GOとGCP

  • 1.
    Confidential & ProprietaryGoogleCloud Platform 1 酒とゲームとインフラとGCP 第4回 〜いい夫婦の日は家庭を鑑みながら酒を飲めるぞ〜 Google Cloud Platform, Sales Engineer Masanori Satoh / 佐藤 聖規 Pokémon GOとGCP 2016/11/22
  • 2.
    Confidential & ProprietaryGoogleCloud Platform 2 2週間前にGoogle本社に行ってきました
  • 3.
    Confidential & ProprietaryGoogleCloud Platform 3 Googleには捕まえきれないほどのポケモン レアなやつも!
  • 4.
    Confidential & ProprietaryGoogleCloud Platform 4 2016/11/08 東京 GCP リージョンスタート! ● 台湾とのレイテンシーの比較で、日本各地か らの平均で 50-85% 速い数値を記録 ● 3 つのゾーン
  • 5.
    Confidential & ProprietaryGoogleCloud Platform 5 Pokémon GO 爆発的なヒット!
  • 6.
    Confidential & ProprietaryGoogleCloud 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 & ProprietaryGoogleCloud Platform 7 Google Cloud Datastore がプライマリデータベース ● Cloud Datastore のトラフィックは当初目標の50倍。 ● CRE チームはトラフィックの記録的な急増に備えて、追加キャパシティをシーム レスにプロビジョニング ● 合わせて、安定性に問題が生じた場合は、 Niantic とともに順序立てて一つ一 つ問題に対処し、ソリューションを編み出して展開 ● Google CRE チームは Niantic のチームと協力し、 Google Cloud の中核エンジ ニアやプロダクト マネージャーの専門ノウハウを借りながら、アーキテクチャの すべての要素をレビュー
  • 8.
    Confidential & ProprietaryGoogleCloud Platform 8 What is Cloud Datastore "モバイルアプリやWebアプリのための、スケーラブルでフルマネージドなNoSQL Database" ドキュメント志向 Database 耐久性の高いキーバリューストア マルチリージョン フルマネージド Databaseサービス 使った分だけの課金 Cloud Datastore
  • 9.
    Confidential & ProprietaryGoogleCloud Platform 9 アプリケーションロジックはコンテナベースでGKE ● Niantic が GKE を採用したのは、コンテナクラスタを世界規模でオーケストレー ションできるため ● コンテナを使うとプレーヤーのための面白い変更をデプロイしやすくなる ● Niantic は GKE を利用して、 Pokémon Go を開発、運用し、継続的に調整や改 良を施した ● 大胆な技術的な試みの一つが、コンテナクラスタのノード数を1,000以上(最大 2,000)に増やせるGKEの新バージョンへのアップグレード ● 大きな期待が寄せられていた日本での Pokémon Go のリリースに備えたもの ● 数百万人のプレイヤーが新規登録してくる中、既存プレイヤーにもそのままゲー ムを続けてもらいながら GKE をアップグレードするのは、飛行機のエンジンを飛 行中に交換するようなもの。
  • 10.
    Confidential & ProprietaryGoogleCloud Platform 10 What is Google Container Engine Kubernetes のマネージドサービス 1クリックでクラスタの作成が可能 ギリシャ語で “操舵手”; “Governor”のルーツ • コンテナオーケストレーター • マルチクラウドとベアメタルをサポート • Googleのコンテナの運用の経験と社内システムにインスパイア • Go言語で書かれた、オープンソース マシンではなく、アプリケーションを管理 What is Kubernetes Google Container Engine Kubernetes
  • 11.
    Confidential & ProprietaryGoogleCloud Platform 11 Kubernetes Cluster Federation Cluster 1
  • 12.
    Confidential & ProprietaryGoogleCloud Platform 12 Kubernetes Cluster Federation Cluster 1 Cluster 3 Cluster 3
  • 13.
    Confidential & ProprietaryGoogleCloud 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 & ProprietaryGoogleCloud Platform 14 ロードバランサーを HTTP/S ロードバランサーに 従来型ロードバランサー region 2 region 3region 1 VMs VMs VMs ... ... ...LB(s) DNS LB Google Cloud Platform のロードバランサー region 2 region 3region 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 & ProprietaryGoogleCloud Platform 15 秒間100万のリクエストに対応 Compute Engine Load Balancing hits 1 million requests per second! 64インスタンスで 負荷を生成 200インスタンスで Webサーバを提供 ロードバランサーの IP アドレスは一つだけ
  • 16.
    Confidential & ProprietaryGoogleCloud Platform 16 HTTPロードバランサーの使用例 リージョン跨ぎの負荷分散 コンテンツベースルーティング
  • 17.
    Confidential & ProprietaryGoogleCloud Platform 17 アメリカのリリースから2週間後、 日本でのリリース ● 米国でのリリースから2週間後、日本でのリリース。米国でのリリースに比べて3 倍のユーザが新規登録したが、問題は発生しなかった。 ● 実施した対策 ○ 充分なキャパシティプロビジョニング ○ GKE のアップグレード ○ HTTP/S Load Balancer へのアップグレード
  • 18.
    Confidential & ProprietaryGoogleCloud 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 & ProprietaryGoogleCloud Platform 19 まとめ ● Pokémon GOのリリースでは、 Google Cloud にとって総力を上げて対応したプ ロジェクトで、半ダース以上のチームが迅速な判断を実施 ● Nianticの側も、 Google Could プロダクトの設計担当エンジニアリング チーム から、アーキテクチャや運用に関するベスト プラクティスについて直接アドバイス を受ける必要があった Google CRE を利用できることはGoogle Cloud を使う上で大きなメリット
  • 20.
    Confidential & ProprietaryGoogleCloud Platform 20 See also Pokémon GO の爆発的ヒットを支える Google Cloud
  • 21.