Kubernetes 落地案例|将 Pokémon Go 运行到谷歌云上 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
caicloud2015
V2EX    问与答

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

 
  •   caicloud2015 2016-10-27 11:19:59 +08:00 1604 次点击
    这是一个创建于 3276 天前的主题,其中的信息可能已经有所发展或是发生改变。

    《 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 这样一个有意义的项目中的一员,实在是难得,能够为这么大范围内的人真觉得荣幸之至。

    原文链接: https://cloudplatform.googleblog.com/2016/09/bringing-Pokemon-GO-to-life-on-Google-Cloud.html

    转载联系我们 -3-

    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5118 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 09:18 PVG 17:18 LAX 02:18 JFK 05:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86