pokémon goとgcp

21
Confidential & Proprietary Google Cloud Platform 1 酒とゲームとインフラとGCP 4〜いい夫婦の日は家庭を鑑みながら酒を飲めるぞ〜 Google Cloud Platform, Sales Engineer Masanori Satoh / 佐藤 聖規 Pokémon GOGCP 2016/11/22

Upload: google-cloud-platform-japan

Post on 08-Jan-2017

11.810 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Pokémon GOとGCP

Confidential & ProprietaryGoogle Cloud Platform 1

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

Google Cloud Platform, Sales EngineerMasanori Satoh / 佐藤 聖規

Pokémon GOとGCP

2016/11/22

Page 2: Pokémon GOとGCP

Confidential & ProprietaryGoogle Cloud Platform 2

2週間前にGoogle本社に行ってきました

Page 3: Pokémon GOとGCP

Confidential & ProprietaryGoogle Cloud Platform 3

Googleには捕まえきれないほどのポケモンレアなやつも!

Page 4: Pokémon GOとGCP

Confidential & ProprietaryGoogle Cloud Platform 4

2016/11/08東京 GCP リージョンスタート!

● 台湾とのレイテンシーの比較で、日本各地からの平均で 50-85% 速い数値を記録

● 3 つのゾーン

Page 5: Pokémon GOとGCP

Confidential & ProprietaryGoogle Cloud Platform 5

Pokémon GO 爆発的なヒット!

Page 6: Pokémon GOとGCP

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と連携を開始

Page 7: Pokémon GOとGCP

Confidential & ProprietaryGoogle Cloud Platform 7

Google Cloud Datastore がプライマリデータベース

● Cloud Datastore のトラフィックは当初目標の50倍。● CRE チームはトラフィックの記録的な急増に備えて、追加キャパシティをシーム

レスにプロビジョニング● 合わせて、安定性に問題が生じた場合は、 Niantic とともに順序立てて一つ一

つ問題に対処し、ソリューションを編み出して展開● Google CRE チームは Niantic のチームと協力し、 Google Cloud の中核エンジ

ニアやプロダクト マネージャーの専門ノウハウを借りながら、アーキテクチャのすべての要素をレビュー

Page 8: Pokémon GOとGCP

Confidential & ProprietaryGoogle Cloud Platform 8

What is Cloud Datastore

"モバイルアプリやWebアプリのための、スケーラブルでフルマネージドな NoSQL Database"

ドキュメント志向 Database

耐久性の高いキーバリューストア

マルチリージョン フルマネージド Databaseサービス

使った分だけの課金

Cloud Datastore

Page 9: Pokémon GOとGCP

Confidential & ProprietaryGoogle Cloud Platform 9

アプリケーションロジックはコンテナベースでGKE

● Niantic が GKE を採用したのは、コンテナクラスタを世界規模でオーケストレーションできるため

● コンテナを使うとプレーヤーのための面白い変更をデプロイしやすくなる● Niantic は GKE を利用して、 Pokémon Go を開発、運用し、継続的に調整や改

良を施した● 大胆な技術的な試みの一つが、コンテナクラスタのノード数を1,000以上(最大

2,000)に増やせるGKEの新バージョンへのアップグレード● 大きな期待が寄せられていた日本での Pokémon Go のリリースに備えたもの● 数百万人のプレイヤーが新規登録してくる中、既存プレイヤーにもそのままゲー

ムを続けてもらいながら GKE をアップグレードするのは、飛行機のエンジンを飛行中に交換するようなもの。

Page 10: Pokémon GOとGCP

Confidential & ProprietaryGoogle Cloud Platform 10

What is Google Container Engine

Kubernetes のマネージドサービス1クリックでクラスタの作成が可能

ギリシャ語で “操舵手”; “Governor”のルーツ

• コンテナオーケストレーター • マルチクラウドとベアメタルをサポート

• Googleのコンテナの運用の経験と社内システムにインスパイア

• Go言語で書かれた、オープンソース

マシンではなく、アプリケーションを管理

What is Kubernetes

Google Container Engine

Kubernetes

Page 11: Pokémon GOとGCP

Confidential & ProprietaryGoogle Cloud Platform 11

Kubernetes Cluster Federation

Cluster 1

Page 12: Pokémon GOとGCP

Confidential & ProprietaryGoogle Cloud Platform 12

Kubernetes Cluster Federation

Cluster 1 Cluster 3

Cluster 3

Page 13: Pokémon GOとGCP

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

Page 14: Pokémon GOとGCP

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

Page 15: Pokémon GOとGCP

Confidential & ProprietaryGoogle Cloud Platform 15

秒間100万のリクエストに対応

Compute Engine Load Balancing hits 1 million requests per second!

64インスタンスで負荷を生成

200インスタンスでWebサーバを提供

ロードバランサーの IPアドレスは一つだけ

Page 16: Pokémon GOとGCP

Confidential & ProprietaryGoogle Cloud Platform 16

HTTPロードバランサーの使用例 リージョン跨ぎの負荷分散 コンテンツベースルーティング

Page 17: Pokémon GOとGCP

Confidential & ProprietaryGoogle Cloud Platform 17

アメリカのリリースから2週間後、

日本でのリリース● 米国でのリリースから2週間後、日本でのリリース。米国でのリリースに比べて3

倍のユーザが新規登録したが、問題は発生しなかった。● 実施した対策

○ 充分なキャパシティプロビジョニング○ GKE のアップグレード○ HTTP/S Load Balancer へのアップグレード

Page 18: Pokémon GOとGCP

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 ネットワークを通過

Page 19: Pokémon GOとGCP

Confidential & ProprietaryGoogle Cloud Platform 19

まとめ

● Pokémon GOのリリースでは、 Google Cloud にとって総力を上げて対応したプロジェクトで、半ダース以上のチームが迅速な判断を実施

● Nianticの側も、 Google Could プロダクトの設計担当エンジニアリング チームから、アーキテクチャや運用に関するベスト プラクティスについて直接アドバイスを受ける必要があった

Google CRE を利用できることはGoogle Cloud を使う上で大きなメリット

Page 20: Pokémon GOとGCP

Confidential & ProprietaryGoogle Cloud Platform 20

See alsoPokémon GO の爆発的ヒットを支える Google Cloud

Page 21: Pokémon GOとGCP

Thank you