天天看點

為了讓你在“口袋奇兵”聊遍全球,Serverless 做了什麼?江娛互動的線上翻譯新需求基于阿裡雲函數計算 FC 的 Serverless 方案有什麼優勢?Serverless 在遊戲領域的落地實戰Serverless 電子書下載下傳

為了讓你在“口袋奇兵”聊遍全球,Serverless 做了什麼?江娛互動的線上翻譯新需求基于阿裡雲函數計算 FC 的 Serverless 方案有什麼優勢?Serverless 在遊戲領域的落地實戰Serverless 電子書下載下傳

作者 | 山獵、王勇猛、張羽

來源|

阿裡巴巴雲原生公衆号

江娛互動是一家新興的遊戲企業,自 2018 年成立伊始,江娛互動就面向廣闊的全球遊戲市場,通過創造有趣的遊戲體驗,在競争激烈的遊戲市場占得一席之地。僅僅 2 年的時間,江娛互動就憑借 Topwar(口袋奇兵)單款産品跻身中國遊戲廠商出海 30 強。在“中國遊戲,未來可期”的使命下,江娛互動正在不斷豐富旗下的遊戲品類,希望把更多的快樂帶給全球玩家。

随着業務的飛速增長,遊戲服務端的系統規模和系統複雜度正在經曆着翻天覆地的變化。幸運的是,江娛互動擁有一支極具戰鬥力的技術團隊,雖然團隊的整體規模不大,但他們一直保持着對前沿技術領域的探索,通過多種手段維持系統架構的技術先進性,以更好地支撐業務需求,并降低 IT 成本。

在技術架構的多次疊代更新中,有一項非常重要的工作,就是将遊戲場景中通用的業務能力進行抽象,從遊戲主服中進行剝離,沉澱到統一服務層,以子產品化的方式同時支撐江娛互動的多個遊戲品類。從主服中剝離出來的業務能力包括賬号管理、IM、内容安全、會員體系、資訊推送、遊戲行為分析等多個方面,這樣做首先降低了遊戲主服的業務複雜度,使主服專注于對核心遊戲場景的支撐。此外,通用的能力可以在多個遊戲品類中得到複用,進而降低研發成本,提升研發效率。

為了讓你在“口袋奇兵”聊遍全球,Serverless 做了什麼?江娛互動的線上翻譯新需求基于阿裡雲函數計算 FC 的 Serverless 方案有什麼優勢?Serverless 在遊戲領域的落地實戰Serverless 電子書下載下傳

能力拆分和業務耦合度降低,為持續疊代和新技術預研提供了便利,也為江娛互動在雲原生 Serverless 領域深入探索創造了契機。Serverless 架構可以充分發揮計算資源的快速彈性能力,是雲計算的重要發展方向。在遊戲領域,遊戲主服承載着複雜的核心業務邏輯,需要長期運作,并與多個玩家終端進行極低延遲的資料互動,是以仍然需要通過虛拟機或容器的方式承載。從主服中剝離的遊戲周邊業務場景,就成為了試點 Serverless 技術架構的首選目标。

江娛互動的線上翻譯新需求

線上翻譯業務是最早進行 Serverless 試點的場景,這和江娛互動的全球化戰略有關。江娛互動的旗艦作品《口袋奇兵》是一個面向全球市場的遊戲,吸引着世界各地的玩家。每次進入遊戲界面,我們都能看到用着不同語言、頂着不同國旗标志的玩家,愉快的交流着各種和遊戲相關的話題。

為了讓你在“口袋奇兵”聊遍全球,Serverless 做了什麼?江娛互動的線上翻譯新需求基于阿裡雲函數計算 FC 的 Serverless 方案有什麼優勢?Serverless 在遊戲領域的落地實戰Serverless 電子書下載下傳

在這個業務場景中,通過提供一個簡單的線上翻譯功能,就将全球各地的玩家凝聚到一起,帶來前所未有的使用者體驗。這類簡單易用的設計也是《口袋奇兵》在各大應用市場都能屢獲高分好評,得到玩家的盛贊的原因之一。

對于江娛互動而言,從 0 到 1 開發一款包含全球幾十種語言的實時翻譯工具顯然是不現實的。好在遊戲玩家之間的互相交流往往言簡意赅,翻譯的結果并不需要 100% 準确就能心領神會,反而對于背景處理的及時性有比較高的要求。像 Google Translator 這樣的線上平台已經提供了強大的線上翻譯能力,是以隻需要将玩家的請求進行簡單預處理後,就可以把翻譯的工作轉發到第三方平台來完成。

這是一個非常簡單的功能,但在技術架構的實作上,還是具有一定挑戰的。每個時間段同時線上的玩家數量都不是完全均等的,存在明顯的波峰波谷,當同時線上的玩家數量比較大的時候,就會産生非常大的聊天量。而且聊天量還不會簡單的跟玩家線上數量成正比關系,遇到某些熱點事件的時候,會引發全球玩家的熱議,需要線上翻譯的消息量也會陡增,這就需要一套可彈性伸縮的架構來處理玩家的翻譯請求。

最初的架構是通過負載均衡 SLB 和基于 EasySwoole 架構的 PHP 應用叢集來實作的。 

為了讓你在“口袋奇兵”聊遍全球,Serverless 做了什麼?江娛互動的線上翻譯新需求基于阿裡雲函數計算 FC 的 Serverless 方案有什麼優勢?Serverless 在遊戲領域的落地實戰Serverless 電子書下載下傳

在這個架構中,通過 PHP 編寫的主體應用對玩家的翻譯請求進行一系列的預處理,包括符号代碼的替換以及敏感内容的過濾等,然後轉發到第三方翻譯平台擷取翻譯結果。這是一套非常被廣泛采用的擁有高并發處理能力的技術架構,在雲計算時代,可以借助于雲資源的彈性伸縮特性,使整個叢集的吞吐量随着業務量的變化而動态調整。但基于雲原生的視角來看,這套架構在生産環境大規模運作的時候還是存在一些不完美之處。

  • 維護工作量大。整套系統的維護工作量涵蓋了虛拟機、網絡、負載均衡元件、作業系統、應用等多個層面,需要投入大量的時間和精力來保障系統的高可用性與穩定性。舉一個最簡單的例子,當某個應用執行個體出現故障的時候,如何第一時間定位故障并盡可能迅速的将其從計算叢集中摘除呢?這些都需要再配合完整的監控機制以及故障隔離恢複機制來實作。
  • 彈性伸縮能力滞後。不論是通過定時任務,還是通過名額門檻值(CPU 使用率、記憶體使用率等)來觸發彈性擴容,都沒有辦法基于實際請求量精細化管理,在遇到聊天請求密度大陡增的時候,會面臨彈性伸縮能力滞後的問題。即便通過 Kubernetes 以及預留資源池等技術優化,擴容一個新的執行個體也往往需要幾分鐘的時間。
  • 資源使用率低。滞後的彈性伸縮能力會導緻伸縮政策制定得相對保守,造成資源使用率的下降,最直接的表現是增加了資源成本:
為了讓你在“口袋奇兵”聊遍全球,Serverless 做了什麼?江娛互動的線上翻譯新需求基于阿裡雲函數計算 FC 的 Serverless 方案有什麼優勢?Serverless 在遊戲領域的落地實戰Serverless 電子書下載下傳

基于阿裡雲函數計算 FC 的 Serverless 方案有什麼優勢?

有沒有一種方案能能幫助技術團隊專注于業務邏輯的實作,并可以根據玩家的實際請求量進行精細化的資源配置設定,進而實作資源利用最大化呢?随着雲計算的飛速發展,各大雲廠商都在積極探索新的方案,用更加“雲原生”的思路來解決成本和效率的問題,基于阿裡雲函數計算 FC 的 Serverless 方案就是這個領域的傑出代表。

函數計算 FC 是事件驅動的全托管計算服務,通過函數計算,開發者無需管理伺服器等基礎設施,隻需編寫代碼并上傳,函數計算會為自動準備好計算資源,以彈性、可靠的方式運作業務邏輯,并提供日志查詢、性能監控、報警等附加功能,確定系統的穩定運作。

相比傳統的應用伺服器保持運作狀态并對外提供服務的方式,函數計算最大的差別是按需拉起計算資源對任務進行處理,在任務完成以後自動的回收計算資源,這是一種真正符合 Serverless 理念的方案,能最大化的提升資源使用率,減少系統系統維護工作量和使用成本。因為不需要預先申請計算資源,使用者完全不需要考慮容量評估和彈性伸縮的問題,隻需要根據資源的實際使用量來進行付費。

為了讓你在“口袋奇兵”聊遍全球,Serverless 做了什麼?江娛互動的線上翻譯新需求基于阿裡雲函數計算 FC 的 Serverless 方案有什麼優勢?Serverless 在遊戲領域的落地實戰Serverless 電子書下載下傳

Serverless 在遊戲領域的落地實戰

對于線上翻譯這樣的簡單業務邏輯實作,從傳統架構遷移到 Serverless 架構是輕而易舉的事情。江娛互動把每條由玩家發起的翻譯請求當成函數計算的一次任務,拉起對應的計算資源進行處理,任務完成之後自動将資源釋放。因為江娛互動的技術團隊對 Java 語言的熟悉程度最高,在 Serverless 改造過程中換用 Java 語言來實作線上翻譯功能,同時也能充分利用 Java 系豐富的生态能力。當然,函數計算并不限制使用特定的開發語言,也不局限于特定的業務邏輯,主流的開發語言都可以非常好的支援。通過 Serverless 化改造後,線上翻譯業務的系統架構變得更為簡單。 

為了讓你在“口袋奇兵”聊遍全球,Serverless 做了什麼?江娛互動的線上翻譯新需求基于阿裡雲函數計算 FC 的 Serverless 方案有什麼優勢?Serverless 在遊戲領域的落地實戰Serverless 電子書下載下傳

配置了 HTTP 觸發器的函數可以直接響應玩家發起的請求,并通過彈性可靠的方式排程相應的計算資源進行處理。由于函數計算的任務配置設定能夠完全比對前端使用者流量的變化,負載均衡 SLB 就不再有用武之地,可以從架構中直接移除。同時,長駐運作的應用叢集也不再需要,函數計算平台能夠快速拉起大量計算資源并發執行任務,并確定整套架構的高可用性。其中,Redis 的作用是緩存一部分高頻的簡單語句,減少第三方平台的依賴。這樣的架構簡化給江娛互動技術團隊帶來的最大驚喜,是不再需要進行容量規劃以及彈性伸縮管理工作,讓團隊可以集中精力實作業務需求,并在更多的領域實作業務創新。

相比 Node.js 等語言,Java 執行個體在初始化以及類加載等方面需要消耗的時間會比較長,盡管函數計算 FC 已經通過多種優化實作計算資源毫秒級拉起,但往往一個 Java 程式真正投入運作需要幾秒鐘的時間,這對于線上翻譯這樣的延時敏感型業務是一個非常不利的因素。阿裡雲提出的解決方案是通過單執行個體多并發,以及預留執行個體這兩項技術來解決延遲敏感型業務遇到的問題。

通過單執行個體多并發,能讓每個拉起的函數計算執行個體,并發處理多達 100 個任務,以此減少平均執行時長,節省費用,并降低冷啟動的機率。通過預留執行個體優化,能夠根據函數的負載變化提前配置設定好計算資源,使系統能夠在擴容按量執行個體時仍然使用預留執行個體處理請求,進而徹底消除冷啟動帶來的延時毛刺。

為了讓你在“口袋奇兵”聊遍全球,Serverless 做了什麼?江娛互動的線上翻譯新需求基于阿裡雲函數計算 FC 的 Serverless 方案有什麼優勢?Serverless 在遊戲領域的落地實戰Serverless 電子書下載下傳

改造後的線上翻譯業務采用完全按需使用計算資源的 Serverless 架構,能夠充分利用雲計算的彈性能力。在成本方面,由于應用不再需要長期運作對外提供服務,可以讓雲資源的使用量完全比對實際的業務量的變化,進而實作平均資源使用率的大幅提升。在系統的吞吐量方面,由于函數計算 FC 能夠在短時間内迅速調集上萬個執行個體的計算資源,能夠在業務高峰期或使用者請求突增的情況下支撐海量并發,而且不再需要有容量評估方面的前期工作;在系統維護方面,由于不需要預留計算資源,也不需要對底層的軟硬體進行維護,極大地降低了營運成本,讓江娛互動的技術團隊更專注于複雜業務邏輯的實作以及技術創新上。線上翻譯場景中,相比于傳統的架構,基于函數計算 FC 的 Serverless 方案可以幫助江娛互聯節省 40% 以上的 IT 成本投入。

另外一個讓江娛互動感受到研發效率明顯提升的,是函數計算 FC 提供的版本與别名管理功能。版本相當于服務的快照,支援使用者為服務釋出一個或多個版本,配合别名機制,可以實作軟體開發生命周期持續內建、持續釋出,并用最便捷的方式實作服務的灰階疊代。

在後續的架構優化中,江娛互動将嘗試通過機器學習技術盡可能多的對原始内容進行預處理,以減少對于第三方平台的依賴。在 AI 推理領域,依然可以利用 Serverless 架構的優勢,通過預先訓練好的深度學習模型,在短時間内排程大量計算資源進行大規模并行處理。

線上翻譯場景試點 Serverless 技術成功後,江娛互動繼續在更多業務領域發掘跟 Serverless 技術相比對的場景,在 Push 推送服務、内容安全、遊戲行為分析等領域都引入了 Serverless 技術。未來,江娛互動将繼續基于自身的技術特點不斷深入探索 Serverless 架構,在擁抱新技術的同時充分享受到雲計算的紅利。

Serverless 電子書下載下傳

本書亮點:

  • 從架構演進開始,介紹 Serverless 架構及技術選型建構 Serverless 思維;
  • 了解業界流行的 Serverless 架構運作原理;
  • 掌握 10 大 Serverless 真實落地案例,活學活用。

下載下傳連結:

https://developer.aliyun.com/topic/download?id=1128