在《糖豆人:終極淘汰賽》的成長顛峰時期,每分鐘有超過2.5萬名玩家登入,有2,000個新帳號被建立,啟用1,000個新遊戲。

在《糖豆人:終極淘汰賽》的成長顛峰時期,每分鐘有超過2.5萬名玩家登入,有2,000個新帳號被建立,啟用1,000個新遊戲。

遊戲集團Tonic Games Group旗下的英國遊戲開發商Mediatonic在2020年的8月發行了大逃殺遊戲《糖豆人:終極淘汰賽》(Fall Guys: Ultimate Knockout),儘管屬於慘烈的大逃殺遊戲,但繽紛的色調、出色的配樂與討喜的角色讓它被譽為是史上最可愛的大逃殺遊戲,在遊戲發行的24小時內,就吸引了全球逾150萬名玩家。

它在全球面臨嚴峻COVID-19疫情的時間點發行,對於經常受困家中的人們來說,引人入勝又異想天開的遊戲成為大家尋求解脫與聯繫的管道,玩家的數量亦超越了Mediatonic團隊的想像。

迄今《糖豆人:終極淘汰賽》於遊戲平台Steam上的銷售量已突破1,100萬套,也是PlayStation Plus遊戲主機史上,下載量最高的一款遊戲。

該遊戲受歡迎的程度加速了Mediatonic的IP授權,也在玩家持續提供意見的情況下建立更多的關卡、更多的服飾/配件,或是更多的客製化服務,Mediatonic團隊亦與知名的IP合作,期望能更快速地擴大玩家社群。

Tonic Games Group執行長Adam Fletcher表示,雖然Mediatonic過去幾年也曾於微軟合作發表過許多大型遊戲,但沒有一個規模比得上《糖豆人:終極淘汰賽》,這款遊戲在發行後超越了所有的期待,Azure則提供了彈性與快速延展所需的所有保證。

Mediatonic技術總監Craig Bendell則說,當該公司剛發表《糖豆人:終極淘汰賽》時,遊戲就爆紅了,在內部討論它可能形成的規模之後,決定要求Azure於合理範圍內提供最高的額度,Azure Capacity Planning team在很短時間內就確認並交付客戶的需求

在《糖豆人:終極淘汰賽》的成長顛峰時期,每分鐘有超過2.5萬名玩家登入,有2,000個新帳號被建立,啟用1,000個新遊戲。

一直以來,Mediatonic都使用不同的雲端平台與廣泛的服務,涵蓋完全受控、無伺服器、平台即服務(PaaS)與基礎結構即服務(IaaS)等,因此,該團隊以容器來打包程式碼,使其能在任何地方執行,主要的需求包括Kubernetes叢集的容器服務、可快速縮放且零停機的多模型資料庫、可在遊戲平台偵測及緩解分散式服務阻斷(DDoS)攻擊的解決方案,以及自動化的軟體開發與IT維運。

於是Mediatonic藉由微軟的Azure Kubernetes Services(AKS)、 Azure Cosmos DB、Azure DDoS Protection與Azure DevOps等雲端服務,來解決上述需求。

Azure Capacity Planning team在很短時間內就確認並交付客戶的需求

 

AKS滿足了小型開發團隊所需的委外結構

由於Mediatonic只有小型的平台工程團隊,想要在不花費太多力氣來操作結構的情況下利用可延展的Kubernetes架構,也需要一個強大的服務等級協定(service-level agreement,SLA),經過評估後,發現AKS是個比其它選項更為成熟的產品。

Kubernetes為一開源的容器編排平台,可大規模地部署及管理容器化的應用程式。它根據可用的運算資源及每個容器的資源需求來協調虛擬機器叢集,並排程容器於這些虛擬機器上執行,容器會被分組至調整成所需狀態的各個Pod,這些Pod屬於容器集合,亦為Kubernetes的基本作業單位。

一個Kubernetes叢集是由許多主要節點及許多工作者節點所組成,每個節點可能是一台伺服器或一個虛機機器,主要節點內含Kubernetes API 與一個包含叢集狀態的資料庫,工作者節點則是實際執行任務的機器。

Mediatonic的首席平台工程師Ben Constable表示,該公司原本就有部署非受控Kubernetes的經驗,但這對小型的Mediatonic團隊而言是個龐大的負擔,而AKS不但穩定,也能輕易與其它的Azure服務互動。

AKS讓Kubernetes的叢集建立與管理變得更容易。當使用者建立一個AKS叢集時,AKS會替使用者設定Kubernetes主機,再替使用者建立虛擬機器擴展集(Virtual Machine Scale Sets,VMSS),並將這些虛擬機器轉成工作者節點。使用者可以選擇免費的Kubernetes控制平台或擁有SLA的付費控制平台。

在AKS中,於Kubernetes上運作的服務整合了Azure Load Balancer與Kubernetes Ingresses負載平衡器,還能整合Azure Application Gateway網路流量負責平衡器,意謂著當使用者在Kubernetes中建立一個服務或Ingresses時,Azure Load Balancer或Azure Application Gateway也會同時建立規則,以將流量導至正確的節點上。

此外,AKS亦具備其它叢集管理功能,包括更新Kubernetes版本,或是藉由移除或新增節點來縮放叢集。使用者亦可選擇整合Azure Active Directory(Azure AD)執行身分識別驗證與角色型存取控制(role-based access control,RBAC);或是將AKS整合至Azure Monitor來監視容器,以簡化應用程式的監視與除錯。

Mediatonic技術總監Craig Bendell即說,當一個Kubernetes叢集即將失去支援,但該團隊卻來不及更新Kubernetes版本或轉移至新叢集時,Azure對此一叢集帶來一流的支援,替他們爭取了好幾天的時間。

 

搭配其它Azure服務

除了使用AKS之外,Mediatonic也採用Azure Cosmos DB作為開發現代應用程式的完整管理NoSQL資料庫,它的回應時間僅需數毫秒,還有自動且立即的擴充能力,而且不管任何資料庫規模都有速度上的保證。Azure Cosmos DB亦帶來更快的程式開發速度與更好的生產力,透過自動化的監視、管理、更新與修補,簡化了資料庫的管理需求。

《糖豆人:終極淘汰賽》必須處理不同類型的資料,利用Azure Cosmos DB來存放玩家的中繼資料,諸如檔案資訊、道具及進度等,Azure Cosmos DB能夠橫跨多個資料中心來複製資料,以降低延遲、增加彈性,並減少成本。

Mediatonic團隊可藉由配置Azure Cosmos DB的一致性等級,來權衡資料庫的能力,較低的一致性有助於優化寫入速度的解決方案,較高的一致性則適用於重要資訊,Azure Cosmos DB提供從強到弱的5種一致性等級,依序是強(Strong)、邊界過期(Bounded staleness)、會話(Session)、一致的首碼(Consistent prefix),以及最終(Eventual),每個等級皆提供了可用性與績效的權衡。

一致性等級與區域無關,不管在哪個區域讀取或寫入、與Azure Cosmos DB帳戶有關的區域數量多寡,或者是使用者的帳戶是否配置單一或多個寫入區域,所有的操作都會獲得保證。

為了保障遊戲的安全,Mediatonic接納Azure架構師的強烈建議,在發行《糖豆人:終極淘汰賽》之後,透過Azure DDoS Protection來自動監視與緩解該遊戲平台上的DDoS攻擊。從Mediatonic伺服器工程團隊的角度來看,所有困難的任務都已交由Azure負責處理,讓該團隊有更充裕的時間來創作遊戲。

該團隊亦仰賴Azure DevOps來管理需求,採用Agile及Scrum流程範本,建置及測試程式碼,執行持續整合 (CI) 和持續部署 (CD) 管線,以及部署工作軟體等。

開發團隊還能使用由Azure DevOps或GitHub所代管的任何存放庫來管理他們的原始碼,將該建置打包及部署至任何容器登錄,如Docker Hub、Azure Container Registry,或是自我裝載的Kubernetes叢集。

伺服器工程師可將特定使用者案例的各種變更推送至不同的功能分支,一旦準備就緒,即可建立一個提取要求以將程式碼併入主分支,觸發CI/CD流程,將程式碼包裝成容器,再整合至Azure Container Registry,並部署成Kubernetes叢集以執行自動化的端點至端點測試。

由於Azure DevOps支援眾多平台與開發環境,使得Mediatonic團隊也能在不同的作業系統及整合開發環境中工作,該團隊使用Git標籤來協助控制程式碼開發流程,創造標籤自動建置及將容器推送至開發環境,一直到各個版本完成QA程序,其完整發布周期都藉由Azure DevOps管理。

另一方面,為了蒐集紀錄資料,Mediatonic在AKS上部署了Elasticsearch與Kibana,也以Azure事件中樞(Azure Event Hubs)來處理遊戲中的事件,並予以適當的回應,展現Azure與第三方或自家服務互動的能力。

《糖豆人:終極淘汰賽》目前支援Windows和PlayStation平台,預計於明年陸續登上Xbox及Nintendo Switch平台。

免費試用AKS
點擊 Banner 免費試用 Azure Kubernetes Service (AKS),使用受控 Kubernetes 建置及調整、讓叢集建立與管理變的更容易並可輕鬆與其他 Azure 服務串接並用。

 

Microsoft


熱門新聞

Advertisement