Kubernetes 落地案例|將 Pokémon Go 運行到谷歌雲上

背景知識:html

《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 玩家,疏通玩家過多可能帶來的流量堵塞。google

 

建立 Pokémon 遊戲世界orm

Pokémon Go 是一款移動應用程序,它使用了不少谷歌雲上的服務,然而云數據庫直接反映了受歡迎程度,這篇博客開篇的圖表告訴咱們:團隊預計玩家流量會增長一倍,最壞狀況下是增長 5 倍;然而事實狀況下玩家流量增長到了 50 倍......htm

發佈的時候,也不是每一個細節都運行順暢的。問題彙集在遊戲的穩定性上的時候,Niantic 和谷歌工程師按照順序逐個解決問題,快速建立和部署解決方案。谷歌 CRE 和 Niantic 攜手合做,審查架構的各個部分,利用核心谷歌工程師和產品經理的專業知識——全部這些都是在數百萬遊戲玩家涌入的背景下進行的。blog

 

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-

相關文章
相關標籤/搜索