【FCon上海】与行业领袖共话AI大模型、数字化风控等前沿技术。 了解详情
写点什么

将 Pokémon Go 运行到谷歌云上

  • 2020-03-13
  • 本文字数:1619 字

    阅读完需:约 5 分钟

将 Pokémon Go 运行到谷歌云上

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

这些年的工程师生涯中,我参与过很多产品的发布,这些产品一般都是慢慢地拥有了上百万的用户。通常,产品在发布几个月后,产品新功能发布和架构都进行了调整,用户量才会渐渐上升。但是在谷歌云客户 Niantic 发布 Pokémon Go 时,一切好像都没有按照常理出牌,从中我体验到前所未有的成长。



在技术社区,同行曾经询问过支撑起 Pokémon Go 如此庞大用户量的系统采用了什么基础设施。希望将 Pokémon Go 运行起来。所以,Niantic 和 Google 的团队将支撑起 Pokémon Go(目前世界上最流行手游之一)系统的关键组件总结到了这篇文章中。

共同的命运

在今天的 Horizon 活动中,我们会介绍谷歌 CRE 给大家,这是一种新的参与模式,Google 技术团队与用户团队一起参与,共同构建可靠而成功的关键云应用。Google CRE 第一个客户就是 Niantic,严格意义上来说,Pokémon Go 的发布算是首次测试。


发布到澳大利亚不到 15 分钟,玩家流量超乎预期。Pokémon Go 是 Niantic 严格意义上来说的第一款产品,对他们有着特殊的意义。第二天预计将发布版本到美国,在这之前,Niantic 已经提前跟 Google CRE 寻求好了支援。Niantic 和谷歌云——包括 CRE,SRE,开发,产品,支持以及执行团队——一起撑起一大批新的 Pokémon 玩家,疏通玩家过多可能带来的流量堵塞。

创建 Pokémon 游戏世界

Pokémon Go 是一款移动应用程序,它使用了很多谷歌云上的服务,然而云数据库直接反映了受欢迎程度,这篇博客开篇的图表告诉我们:团队预计玩家流量会增加一倍,最坏情况下是增加 5 倍;然而事实情况下玩家流量增加到了 50 倍…


发布的时候,也不是每个细节都运行顺畅的。问题聚集在游戏的稳定性上的时候,Niantic 和谷歌工程师按照顺序逐个解决问题,快速创建和部署解决方案。谷歌 CRE 和 Niantic 携手合作,审查架构的各个部分,利用核心谷歌工程师和产品经理的专业知识——所有这些都是在数百万游戏玩家涌入的背景下进行的。

Pokémon 的运行基于容器

Pokémon Go 除了风靡全球,也是目前大环境下使用容器进行开发的情况中最令人兴奋的例子之一。游戏的应用程序逻辑运行在谷歌 GKE 上面,由开源项目 Kubernetes 驱动。Niantic 选择了 GKE,因为它有能力来协调他们超大规模的集群容器,解放团队,使团队能够专注于为他们的玩家实时部署更改。用这个方法,Niantic 使用谷歌云将 Pokémon Go 转化为数百万玩家的服务,并不断适应和改进。


Niantic 和 Google CRE 团队完成的一个更加大胆的技术功能就是,将谷歌 GKE 升级到允许添加 1000 多个节点到其容器集群的新版 GKE,预期在日本发布。就好比更换飞机的发动机一样,更新技术功能每个步骤都需要仔细小心,在数百万新玩家登陆并且加入了 Pokémon Go 的游戏的情况下进行新版本切换,以防止打扰现有的游戏玩家秩序。


在更新的基础上,Niantic 和谷歌工程师一起合作替换网络负载均衡器,在其位置部署新版本的,更加成熟的 HTTP/S 负载均衡器。HTTP/S 负载均衡器是为 HTTPS 流量定制的全球系统,控制更多,连接用户更快,总吞吐量更高——更好地匹配 Pokémon Go 的数量和类型。


在美国发布的版本中吸取到经验而作出的以下修改:总体容量规划,容器引擎最新升级的架构,HTTP/S 负载均衡器的升级;这三个修改在发布日本版本的时候收效显著——日版发布的时候,玩家人数达到了美版的三倍。

Facts:

Pokemon Go 游戏使用了 Google 云上十几个服务。


Pokemon Go 是谷歌 GKE 上面 Kubernetes 部署规模最大的项目。鉴于集群和伴随着的吞吐量,许多 bug 在这个过程中被识别并修复,之后被合并到开源项目之中。


要支持 Pokemon Go 庞大的用户量,Google 为 Niantic 的容器引擎集群规划了很多要点核心。


Google 的全球网络帮助减少了整体延迟现象。


在这里,我代表 Google CRE 团队,觉得作为 Pokemon Go 这样一个有意义的项目中的一员,实在是难得,能够为这么大范围内的人真觉得荣幸之至。



本文转载自才云 Caicloud 公众号。


原文链接:https://mp.weixin.qq.com/s/r_yA4lZ5AI2erkQcbVK1_g


2020-03-13 19:00495

评论

发布
暂无评论
发现更多内容

【愚公系列】2022年10月 Go教学课程 030-结构体继承

愚公搬代码

10月月更

Smart Finance:熊市下,GameFi P2E热潮仍能得到延续

股市老人

架构实战营 - 模块二作业

Geek_92ba6f

架构设计 微信朋友圈

架构实战营模块2-微信朋友圈高性能架构

冷夫冲

架构 架构训练营 架构实战营

Spring Boot「07」Loading initial data 02

Samson

Java spring Spring Boot 学习笔记 10月月更

Vue整合HighCharts和ECharts实现数据可视化

盐咔咔

Vue 前端 10月月更

分支规范和git提交规范

默默的成长

git 前端 10月月更

元宇宙早已注定毁灭?《雪崩》中预言的末日病毒

脑极体

雪崩

【从0到1学算法】6.Select Sort算法

Geek_65222d

10月月更

【Go实现】实践GoF的23种设计模式:代理模式

元闰子

Go 设计模式 代理模式

【算法】剑指offer-调整数组顺序&&数组出现超过一半的数字

芒果酱

c++ 算法 10月月更

前端JS规范

默默的成长

Vue 前端 10月月更

微信朋友圈高性能复杂度分析

兜里贼缺钱

【ArchSummit】阿里云原生微服务架构治理最佳实践

小明Java问道之路

Java 架构 全球架构师峰会 ArchSummit 10月月更

企业级大数据技术框架

穿过生命散发芬芳

大数据技术 10月月更

低代码探索:freemarker的模板和表达式

程序员架构进阶

低代码平台 模板引擎 10月月更 freemarker

Kafka监控与指标之UnderReplicatedPartitions

石臻臻的杂货铺

Kafk 10月月更

一文搞懂CAN FD总线协议帧格式

不脱发的程序猿

汽车电子 CAN FD 一文搞懂CAN FD总线

CorelDRAW 2019,软件应用项目(二)

张立梵

设计师 CorelDRAW 2022 10月月更

Vue 2x 中使用 render 和 jsx 的最佳实践 (2)

默默的成长

Vue 前端 10月月更

八大排序(下)

lovevivi

c 数据结构 10月月更

02微信高能性复杂度分析

神奇的叶叔叔

Kafka消费客户端协调器讲解(GroupCoordinator)

石臻臻的杂货铺

kafka 10月月更

八大排序 (上)

lovevivi

c 数据结构 10月月更

Smart Finance:熊市下,GameFi P2E热潮仍能得到延续

鳄鱼视界

极客时间—架构实战营—第九期—模块二作业

阿梁

训练实战营模块二

Geek_408c99

面试突击90:过滤器和拦截器有什么区别?

王磊

微信朋友圈的高性能复杂度分析

小虎

架构训练营

模块二作业

Diana S

#架构实战营

将 Pokémon Go 运行到谷歌云上_行业深度_才云科技_InfoQ精选文章