写点什么

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

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

    阅读完需:约 5 分钟

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

这些年的工程师生涯中,我参与过很多产品的发布,这些产品一般都是慢慢地拥有了上百万的用户。通常,产品在发布几个月后,产品新功能发布和架构都进行了调整,用户量才会渐渐上升。但是在谷歌云客户 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:00541

评论

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

centos用ssh登录连接缓慢处理

百度搜索:蓝易云

Linux centos 运维 SSH 云服务器

苹果电脑软件开发工具:Xcode 15全新发布

Rose

编程开发 Xcode Mac版 Xcode 15

霍格沃兹测试开发学社,全方位的测试解决方案提供商

霍格沃兹测试开发学社

如何使用 NFTScan NFT API 在 Blast 网络上开发 Web3 应用

NFT Research

API NFT\ NFTScan

在 GraalVM 静态编译下无侵入实现可观测探索

阿里巴巴云原生

Java 阿里云 云原生

抢先一步,获取最全测试开发岗求职攻略

霍格沃兹测试开发学社

AI力量:如何让测试更智能更高效

测试人

软件测试

苹果电脑3D壁纸屏保 Screen Wonders动态壁纸

Rose

动态壁纸 Screen Wonders壁纸 苹果电脑屏保 mac屏保

达芬奇调色软件破解版 davinci resolve 18.6.6最新中文安装包

Rose

DaVinci Resolve 破解 DaVinci Resolve18下载 达芬奇下载 达芬奇视频调色

工业物联网App开发:连接未来智能制造的关键

天津汇柏科技有限公司

数字化转型 工业物联网

全智能深度演进,一键成片让视频创作颠覆式提效

阿里云视频云

云计算 媒体 云剪辑

Puppeteer实践:复杂的问题简单化

南城FE

JavaScript 前端 nodejs puppeteer

Hype 4 Pro:打造惊艳HTML5动画与交互设计的全能之选

Rose

html5 网页制作 交互设计工具 Hype 4 Pro破解版 Hype 4 Pro下载

金三银四 | 软件测试开发岗求职攻略来袭,快来抢先一步!

测试人

软件测试

源码解析丨一次慢SQL排查

GreatSQL

慢查询

flowjo 10破解版图文教程 flowjo 10 mac专业的细胞分析工具

Rose

mac软件下载 流式细胞分析软件 FlowJo 10下载 FlowJo 10破解版

Yummy FTP Pro for mac中文直装版 最可靠的ftp文件传输工具

Rose

Mac软件 文件传输工具 ftp传输 Yummy FTP Pro 破解版 Yummy FTP Pro 下载

教你用python爬取『京东』商品数据,原来这么简单!

技术冰糖葫芦

API 接口

cURL 命令全面解析:提高工作效率

Apifox

程序员 前端 后端 API curl

【干货】需求驱动的配货

第七在线

想在Mac电脑上畅玩Windows游戏,那就试试CrossOver 24虚拟机吧!

Rose

CrossOver 24 CrossOver 24虚拟机 如何在Mac运行win 苹果电脑虚拟机软件

SnailSVN Mac版:从 Finder 的上下文菜单中快速访问各种最常用的 SVN 功能

Rose

Mac软件 SVN客户端 SnailSVN Pro下载 Subversion(SVN)客户端

Puppet 2024年度报告:平台工程发掘 DevOps 无限潜质

SEAL安全

DevOps 平台工程 puppet

ICP Rust CDK|使用Rust构建智能合约并操作canisters

TinTinLand

黑客 编程学习 ICP

ICP Rust CDK| 在IC上开发、测试和部署DApps

TinTinLand

黑客 编程学习 ICP

人工智能如何让测试更智能更高效?

霍格沃兹测试开发学社

章文嵩等技术大咖共同探讨企业数据治理和降本增效策略运用!

AutoMQ

#云原生 KubeBlocks #Kafka #OceanBase #AutoMQ

IntelliJ IDEA 2023:智能编码,让开发更高效!

Rose

ide 编程开发 IntelliJ IDEA 2023破解 IntelliJ IDEA 2023 IDEA 2023激活码

keyshot2023怎么保存低版本(keyshot2023下载安装教程)

Rose

KeyShot2023pro安装包 keyshot2023下载

低代码无法取代程序员,但为什么很多程序员却反感低代码?

天津汇柏科技有限公司

程序员 低代码 数字化转型

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