我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 716|回复: 2

[最新新闻] 迎戰50倍爆量夢魘!Pokémon遊戲打造GCE史上最大Kubernetes叢集

[复制链接]

该用户从未签到

1359

主题

487

回帖

127

积分

二级逆天

积分
127

社区居民原创达人忠实会员社区劳模终身成就奖特殊贡献奖原创先锋奖金点子奖

QQ
发表于 2016-10-1 22:29:17 | 显示全部楼层 |阅读模式
Niantic用Google的Cloud Datastore資料庫服務來儲存所有玩家資料,這是架構起Pokémon遊戲世界最主要的資料庫。但在遊戲上線第一天,不到15分鐘,Cloud Datastore每秒存取次數迅速從5倍、10倍,增加到了比預期多50倍的爆量流量。


pokemonscreen-horz.jpg

Niantic一點都沒想到Pokémon GO遊戲會這樣爆紅。7月6日,Pokémon GO遊戲剛在澳洲和紐西蘭正式上線不到15分鐘,玩家流量就遠遠超過了開發者Niantic公司的預期,尤其是儲存所有玩家資料的Cloud Datastore資料庫服務流量暴增,很快達到事先預估最大值的5倍量,甚至不久後,Niantic技術長Phil Keslin坦言,還增加到了50倍爆量流量,比他預估最壞的情況還要慘10倍。Niantic團隊嚇壞了,連忙打電話給Google CRE團隊尋求協助,因為隔天,Pokémon GO就要正式在美國上線。
Google內部一手包辦各項全球性服務維運的是SRE(Site Reliability Engineering)團隊,隨著雲端服務大舉進軍企業市場,Google正打算將自家SRE經驗,轉變成協助企業維運雲端服務的CRE(Customer Reliability Engineering)服務團隊,Niantic就成了Google CRE服務的第一號顧客,第一個任務就是確保Pokemon遊戲不被50倍爆量流量衝垮。
Google新的CRE服務部門總監Luke Stone是協助Niantic解決Pokémon GO爆量夢魘的關鍵人物,9月29日時,他在Google雲端平臺部落格上,公開了他們如何對抗爆量夢魘的幕後故事。他還特別發布了一張Pokémon GO遊戲所用Cloud Datastore每秒交易流量的變化,Pokémon GO使用了大量Google Cloud上的服務,其中用來儲存遊戲所有玩家資料的Cloud Datastore資料庫服務,是架構起Pokémon遊戲世界最主要的資料庫。遊戲上線當天,Cloud Datastore每秒存取交易次數迅速從5倍、10倍,增加到了50倍的爆量。


Pokemon爆量圖_來源niantic-1.png

不斷湧入的玩家流量,衝垮了原先所有預期的設計,Niantic和Google Cloud旗下CRE、SRE、開發者、產品人員、技術支援團隊紛紛出動聯手來解決這個難題。Google工程師開始設法調度更多額外資源來支撐服務,不過,只是擴充資源還不夠,超大流量已經衍生了不少遊戲穩定性的問題。
為了讓上百萬名新玩家可以繼續登入遊戲,工程師一方面先拆解這些衍生問題的發生順序,來找出不同階段問題的對策,另一方面,Google CRE團隊手把手和Niantic一起重新檢視遊戲架構的每一個環節,甚至找來開發Google Cloud平臺的核心工程師和產品經理幫忙。Pokémon GO遊戲後端其實是布建在Container應用環境中。遊戲核心程式都用部署在Google容器服務GKE上的Kubernetes叢集中。Niantic利用GKE來打造一個全球性架構(planetary-scale)的容器叢集,讓他們的開發團隊可以專心於部署各項玩家需要的即時更新功能。Niantic還利用Google Cloud來建立Pokémon GO的後端單一服務平臺,可以提供持續部署和改善。
Pokémon GO遊戲使用了十多項Google Cloud服務,並建置了一個超大規模的Kubernetes叢集來支撐後端運算。Luke Stone表示,Pokémon GO所用的容器叢集,是GCE平臺推出後有史以來最大規模的叢集。在爆量出現後,Google也緊急調度了許多套核心數破萬的容器叢集,來分擔Pokémon GO遊戲的流量。
因為在Niantic中主導Pokémon GO遊戲決策的團隊才不過6個人,其中負責開發的人更只有4個人,因此Niantic得仰賴許多來自Google底層雲端平臺開發團隊,尤其是擅長架構和維運的工程師,來協助打造這個全球性遊戲的底層架構。
甚至,Niantic做出了一個更大膽的決定,要在遊戲不停機的情況下進行平臺升級,將Pokémon GO容器叢集所用的GKE,升級到下一個有能力提供一次擴充1千個節點的新版本。這個升級就像是在飛機飛行中同步更換引擎一樣的困難。不過,在升級之前,Niantic和Google先更換了新的網路負載平衡機制,改用Google的新版HTTP/S負載平衡服務來取代。這個服務可以提供一套全球架構的HTTPS流量管理系統,也提供了更多控制機制、更快的使用者連線速度,以及更高的整體吞吐量。
搭配大量運算資源擴充、新版GKE的架構升級、新一代負載平衡機制後,2周後,Pokémon GO登陸日本時,新玩家人數比美國玩家多3倍的情況下,還能順利運作。Google事後也將這些在Pokémon GO爆量事件中所修補的臭蟲,都提報到Kubernetes開源專案中改善。
不過,單靠Google加持還不夠,Pokémon GO爆紅之後,不止湧進大量玩家,也開始出現非人玩家的爆量存取,包括了大量第三方程式、軟體機器人等各式各樣的資料爬蟲程式,尤其8月初在南美洲、巴西等國推出時,非官方程式的爆量存取,更讓Pokémon GO被迫延後上市時間,因為服務幾乎快稱不住了,後來,Pokémon GO決定在8月3日開始封鎖那些「非人」的特殊查詢流量,才讓遊戲服務恢復正常。Niantic執行長也在8月4日時在Pokémon GO官網解釋了南美洲上市延後的原因。如下圖所示,在8月3日啟用封鎖機制後,特殊查詢的流量瞬間減少了6、7成。


阻擋非人存取server_resources_圖片來源Niantic.png

Pokémon GO遊戲已遍及全球90個國家,遊戲推出2個月時,全球玩家所累積的移動距離,就達到29億英里之遠,大約是從地球到冥王星的距離,目前Pokémon GO App累計下載數量也達到5億次。
回复

使用道具 举报

该用户从未签到

8

主题

1774

回帖

865

积分

游客

积分
865

社区居民忠实会员社区劳模最爱沙发终身成就奖优秀斑竹奖

QQ
发表于 2016-10-2 07:36:46 | 显示全部楼层
回复

使用道具 举报

该用户从未签到

632

主题

6399

回帖

209

积分

三级逆天

-

积分
209

忠实会员社区居民社区劳模原创达人最爱沙发终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖金点子奖

QQ
发表于 2016-10-2 08:06:12 | 显示全部楼层
-
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

论坛开启做任务可以
额外奖励金币快速赚
积分升级了


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

平平安安
TOP
快速回复 返回顶部 返回列表