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