资讯专栏INFORMATION COLUMN

Kubernetes 落地案例|将 Pokémon Go 运行到谷歌云上

robin / 744人阅读

摘要:但是在谷歌云客户发布时,一切好像都没有按照常理出牌,从中我体验到前所未有的成长。希望将运行起来。第二天预计将发布版本到美国,在这之前,已经提前跟寻求好了支援。游戏的应用程序逻辑运行在谷歌上面,由开源项目驱动。是谷歌上面部署规模最大的项目。

《Pokémon Go》是由任天堂、Pokémon 公司和谷歌 Niantic Labs 公司联合制作开发的现实增强(AR)宠物养成对战类 RPG 手游。——百度百科

这些年的工程师生涯中,我参与过很多产品的发布,这些产品一般都是慢慢地拥有了上百万的用户。通常,产品在发布几个月后,产品新功能发布和架构都进行了调整,用户量才会渐渐上升。但是在谷歌云客户 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 这样一个有意义的项目中的一员,实在是难得,能够为这么大范围内的人真觉得荣幸之至。

原文链接

转载联系我们 -3-

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/32515.html

相关文章

  • Fluented,Kubernetes和谷歌云平台——处理日志流的解决方案

    摘要:最后,我们用和适当的独特后缀来标注数据流。将数据流分离到两个不同的目的地在这里,我们解析自动定量日志,管理我们的缓冲区,查询和区块大小。 也许你对Fluentd的统一日志记录层已经有所耳闻。可能你对日志是流不是文件这个概念也已经很熟悉,所以现在就让我们用这个方法来思考日志层。事实上,最后导致决定性的一点就是fluentd是如何被配置的。全部都是关于我们如何处理stream的不同元素的:...

    ymyang 评论0 收藏0
  • 在GKE面创建你的第一个Kubernetes集群

    摘要:创建你的谷歌云项目如果你还没有谷歌账号,那么在你继续步骤之前先创建一个。一个集群包括了由谷歌和一套节点主导的服务器。点击查看完美结语我们今天带大家一起来看了一下谷歌云平台,开启计费功能,打开相关,然后在上面创建一个集群。 你可能已经了解过Kubernetes和Google云平台,但是可能还并没有真正创建过一个集群。在这里,我们会带领大家梳理一些基础知识,跟着这个教程一步步来,你就会自己...

    Jonathan Shieber 评论0 收藏0
  • Kubernetes 落地案例|WePay: Kubernetes 改变了我们的业务

    摘要:月,在谷歌云平台会议上,我们在电子支付提供商的实践中看到了成功。打破了单个程序到一套通过谷歌开源平台容器编排引擎来合作的模式。这周,谷歌发布了的最新版本,版本是一个企业友好型平台,比如说它支持有状态应用程序。 我们听说了很多关于容器编排执行得好,就能够流水化 IT 和业务流程的信息。3 月,在谷歌云平台会议上,我们在电子支付提供商 WePay 的实践中看到了成功。WePay 打破了单个...

    yunhao 评论0 收藏0
  • docker + kubernetes=共生?相爱相杀?

    摘要:二月份,微软正式加入支持的行列,宣布容器服务支持。去年月,在亚马逊弹性容器服务首次亮相。是年的最后一次重大更新,于月日正式推出。值得注意的公告包括亚马逊网络服务于八月份以白金会员最高级别加入了。 2017年的云计算市场,有一个领域获得了空前的关注 -- Kubernetes。 Kubernetes可以追溯到2014年,当时Google公开发布了该项目的开源代码。2017年,Kubern...

    bovenson 评论0 收藏0
  • docker + kubernetes=共生?相爱相杀?

    摘要:二月份,微软正式加入支持的行列,宣布容器服务支持。去年月,在亚马逊弹性容器服务首次亮相。是年的最后一次重大更新,于月日正式推出。值得注意的公告包括亚马逊网络服务于八月份以白金会员最高级别加入了。 2017年的云计算市场,有一个领域获得了空前的关注 -- Kubernetes。 Kubernetes可以追溯到2014年,当时Google公开发布了该项目的开源代码。2017年,Kubern...

    tain335 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<