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回 〜いい夫婦の日は家庭を鑑みながら酒を飲めるぞ〜 で発表した資料です。

GoogleCloudPlatformJapan

November 22, 2016
Tweet

More Decks by GoogleCloudPlatformJapan

Other Decks in Technology

Transcript

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

    View Slide

  2. Confidential & Proprietary
    Google Cloud Platform 2
    2週間前にGoogle本社に行ってきました

    View Slide

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

    View Slide

  4. Confidential & Proprietary
    Google Cloud Platform 4
    2016/11/08
    東京 GCP リージョンスタート!
    ● 台湾とのレイテンシーの比較で、日本各地か
    らの平均で 50-85% 速い数値を記録
    ● 3 つのゾーン

    View Slide

  5. Confidential & Proprietary
    Google Cloud Platform 5
    Pokémon GO 爆発的なヒット!

    View Slide

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

    View Slide

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

    View Slide

  8. Confidential & Proprietary
    Google Cloud Platform 8
    What is Cloud Datastore
    "モバイルアプリやWebアプリのための、スケーラブルでフルマネージドな NoSQL Database"
    ドキュメント志向 Database
    耐久性の高いキーバリューストア
    マルチリージョン フルマネージド Databaseサービス
    使った分だけの課金
    Cloud Datastore

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

  15. Confidential & Proprietary
    Google Cloud Platform 15
    秒間100万のリクエストに対応
    Compute Engine Load Balancing hits 1 million requests per second!
    64インスタンスで
    負荷を生成
    200インスタンスで
    Webサーバを提供
    ロードバランサーの IP
    アドレスは一つだけ

    View Slide

  16. Confidential & Proprietary
    Google Cloud Platform 16
    HTTPロードバランサーの使用例
    リージョン跨ぎの負荷分散 コンテンツベースルーティング

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  20. Confidential & Proprietary
    Google Cloud Platform 20
    See also
    Pokémon GO の爆発的ヒットを支える Google Cloud

    View Slide

  21. Thank you

    View Slide