日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Serverless 极致弹性解构在线游戏行业痛点

發布時間:2023/12/20 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Serverless 极致弹性解构在线游戏行业痛点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介:?本文將通過剖析一個個具體的場景案例,以期望給相關的游戲開發同學帶來共鳴,同時也希望能給非游戲行業的同學帶來一些啟發。

作者 | 羅松(西流)
來源 |?阿里巴巴云原生公眾號

導讀:本文將通過剖析一個個具體的場景案例,以期望給相關的游戲開發同學帶來共鳴,同時也希望能給非游戲行業的同學帶來一些啟發。

一、前言

1. 游戲客戶上云關注點

游戲行業是一個富有創意又競爭激烈的市場,被稱為第九藝術。游戲客戶上云主要關注以下 4 個方面:

  • 快速迭代,全球部署

快速迭代是游戲行業的通用需求,包括開發效率、運維效率、架構解耦;同時游戲可能也會出海,所以也需要海外部署或全球部署戰略。

  • 高并發、高彈性

每個游戲上線時都會經歷新開服、運營拉新等階段,游戲本身也有日常峰谷,再加上偶爾的活動運營,也會產生峰值,因此在游戲行業高并發高彈性也是一個通用需求。

  • 穩定、可靠、安全

要保證游戲的公平性和用戶的玩家體驗,防止作弊,所以需要保證游戲的穩定可靠與安全。

  • 數據、運維、成本控制

游戲上線后,通過日志收集數據對用戶行為進行分析,根據分析結果針對不同的玩家實施不同的運維策略,將運營重點放在中間的搖擺玩家上,從而做到精準定位、控制成本。

2. 認識函數計算

下文將要介紹的案例主要與函數計算相關,因此在此先對阿里云 Serverless 產品——函數計算做一下簡單介紹。

函數計算:只需要專注業務代碼,面向函數極簡編程(各種編程語言),豐富的云產品間集成與事件驅動方式提供端到端解決方案。
  • 專注業務代碼

如上圖所示,對于游戲開發者來說,使用函數計算,就只需要選擇一個你最擅長的代碼,編寫這段代碼,上傳到計算平臺,就可以完成開發任務。之后可以通過 API/SDK 調用這個函數,也可以通過云產品事件源去觸發函數。

上圖是一個簡單的例子,用 Java 函數寫一個“Hello World”,把它設置成 Java8 的執行環境,256MB 的內存,設置完上傳到函數計算,開發任務就完成了,之后主動調用函數即可,無需關注任何基礎設施。

這里單獨介紹一下“云產品事件源觸發函數”。除了主動觸發函數,還可以用云產品來觸發。比如使用阿里云的對象存儲 OSS,上傳一個 zip 包到 OSS Bucket 的某個目錄,希望上傳之后可以自動觸發一個函數,然后這個函數可以把 zip 包自動進行解壓,云產品事件源觸發就可以實現這種效果。另外還有其他很多事件源,比如日志的事件源、 MNS 消息事件源、定時觸發事件源等。

  • 100< 代碼量

面向函數極簡編程,只需要關注核心代碼。還支持各種編程語言,對開發者非常友好,開發者可以選一個自己最擅長的語言,寫完后上傳到函數計算即可。

  • 100ms 極致彈性

如果觸發函數,同時過來 10 個、 100 個、1000 個甚至 1 萬個請求都不用擔心,函數計算會百毫秒級彈出執行環境,每個執行環境去執行函數邏輯代碼,再把函數執行的結果返回,幫助在線業務應對各種突發流量。

  • 100% 資源利用率

在計費方面,函數計算是按執行環境的內存和執行時間計費,計費粒度可達毫秒級,只為請求產生的資源消耗買單,資源利用率達 100%,降低成本。

二、Serverless 游戲場景實踐案例

1. 高彈性戰斗結算業務

戰斗結算是強 CPU 密集型,結算系統每日需要大量的計算力,尤其是開服或者活動期間突然涌入的大量玩家,導致需要的計算量瞬間幾倍增長,同時需要結算系統保持穩定的延時來保證玩家的用戶體驗。

以 SLG 游戲或者回合制游戲場景為例,一場戰斗結束后,為了用戶體驗,客戶端需要先行結算,展示這一回合的結果,比如打贏了彈出勝利動畫,打輸了彈出失敗動畫。如果純粹依賴客戶端,很可能會出現客戶端作弊的情況(比如作弊器),所以最后的結算肯定還是由服務器做結算。

隨著游戲策劃團隊想法的增加,游戲越來越復雜,比如 buff、debuff、暴擊等等。隨著游戲越來越好玩,結算系統會越來越復雜,游戲進程很可能會出現卡頓現象,而最好的解決方案就是把戰斗結算這一 CPU 密集型的邏輯抽離出來。這一方案也尤其適用于新開服、活動期間以及每日有日常峰谷的情況等。

如上圖,當客戶把戰斗結算遷移到函數計算上后,明顯可以看到, 即使 TPS 在日常峰谷呈 90° 直線上升,但是 Latency 延時仍然基本穩定在 200~300 毫秒之間,,充分保證了用戶的玩家體驗。

在這個場景中,函數計算的核心價值是:

  • 彈性高可用:百毫秒級伸縮擴容,無需預留任何資源。
  • CI/CD 和版本灰度能力:每當游戲策劃有新想法時,戰斗結算函數必然會更新,可以通過直接給這個函數設置版本和別名,從而非常安全地灰度到下一個版本的戰斗結算函數。

這是游戲場景里非常經典的例子,將 CPU 密集型的邏輯抽離出來放到函數計算上,在不影響 Game server 的服務器的同時,又具備了百毫秒伸縮擴容的能力,保證了玩家用戶體驗。

2. Serverless 實現超大規模游戲營銷

游戲廠商與廣告商聯合投放大量互聯網廣告,該業務場景無法準確預估運營流量,高并發、高彈性的后臺服務對業務結果至關重要。且大量的營銷數據和原始日志需要進行離線分析,驅動運營策略升級。

游戲廠商的需求是:第一,游戲需要大規模營銷,波峰波谷無法預估;第二,游戲需要快速上線,對開發效率要求較高。

解決方案如上圖,將函數埋點到網頁里面,點擊時自動觸發這個函數,函數再把點擊傳過來的用戶消息持久化到 kafka。這一步函數 TPS 非常高,預估是幾萬或者十萬級別。第二步,通過 kafka connector 把消息持久化以后,connector 可以有 batch 操作,比如把 50 次點擊的數據 batch 成 1 個再發給另外一個函數,相當于后面的這個函數變成了 1/50 的調用量,另外這個函數是異步觸發,加上 batch 操作,起到削峰填谷的作用,因為只需要把消息寫入到數據庫就可以完成任務,只要不丟數據就好。同時這個函數打印的日志也可以用 SLS 進行分析或者寫入數據庫 RDS/ADP 進行玩家畫像的分析。

客戶壓測數據如下圖所示,第一個函數 TPS 上升到十幾萬,第二個削峰填谷后變成不到 3 萬。

在這個場景中,函數計算的核心價值是:

  • 事件驅動,解耦架構難點;
  • 彈性高可用,削峰填谷;
  • 快速開發上線,1 天完成開發和壓測。

3. Serverless 實現安卓游戲 APK 包按渠道分發

UC 的游戲分發平臺的游戲 APK 包需要根據實時請求中的參數獲取渠道號,并將渠道號寫入 APK 文件固定位置, UC 有每天有大量的且不同渠道的下載請求,能實時讓用戶斷點下載指定渠道的 APK 游戲包。

以阿里內部 UC 游戲分發平臺為例,在對象存儲里面放了一個原始包,其他包在文件固定位置加一些東西就可以。但是 UC 渠道每天有不同的下載請求,通過 Channel=UC/小米/華為到 CDN,CDN 直接回源到函數計算, 比如在函數計算看到回源是小米,從 OSS 拿到原始包把小米渠道信息寫進去,再把這個包直接返還給 CDN, 其他渠道包同理, 只要被下載過一次,都被緩存到 CDN。

這個案例中,函數計算的核心價值是:

  • CDN 直接回源到彈性高可用的函數計算服務(FC);
  • 降低成本,按需付費??蛻舨恍枰獮榉逯殿A留計算資源,流量單價降價 40%。

4. Serverless 實現快速多渠道游戲打包

在發行游戲之前,通常會針對不同的發行渠道,將游戲母包和不同的渠道資料包構建成渠道包。在這個構建過程中,如果使用手工方式,存在易出錯、效率低、高成本的痛點。
  • 效率低:針對不同的渠道去打包,傳統的做法是固定買幾臺打包機,打包機可能大部分時間浪費,每周就打幾次;
  • 高成本:渠道越接越多,打包機只有幾臺,想查看渠道包情況,可能需要打一晚上第二天才能看到。隨著渠道越增越多,打包機也需要不斷增加,閑置成本也越來越高;
  • 易出錯:如何給打包機分配任務,調度系統需要自己開發,如果打包機出現了異常,需要自己去解決打包機的問題。

這個場景下,引入 Serverless 工作流,如下圖所示:

工作流定義:第一步,把母包從 OSS 上下載下來;第二步,并行去打包這些包,每個渠道包有一個并行的任務;第三步,打包完以后,進行后處理。

在這個場景下,函數計算的核心價值是:

  • 任務自動化:事件一鍵觸發、自動運行,工作流完整跟蹤記錄整個打包流程,提高打包成功率;
  • 打包并行化:多個渠道包構建過程并行,提高打包效率,同時支持配置模板化;
  • 低成本: 按量付費,計算資源利用率高。

5. Serverless 實現游戲服務快速全球部署

阿里云作為國內第一家與 Terraform 集成的云廠商,生態支持較完整(Serverless 重度依賴云服務,中國支持較完整)。由于游戲不可能使用很多其他的云服務,而使用 Terraform 可以實現快速多云部署。

6. 實踐案例總結

  • CPU 密集接口

    • 戰斗結算;
    • 社交類游戲中,游戲內截圖、游戲直播視頻在線截圖、離線轉碼等;
    • 聊天敏感詞檢測過濾,聊天翻譯;
    • 排行榜等。
  • 游戲活動運營

    • 激活碼生成、消耗等一些封測運營活動;
    • 游戲打包發行、廣告買量、活動頁、運營平臺等業務平臺。
  • 用戶基本業務數據處理

三、阿里云函數計算現狀

1. 函數計算是國內企業 Serverless 架構落地、業務創新的首選產品

2020 年中國云原生用戶調查報告,阿里云 Serverless 用戶占比是 66%。CNCF 2019 年中國云原生報告中顯示,函數計算是國內企業 Serverless 架構落地和業務創新的首選產品。

2. 阿里云函數計算產品全景

函數計算是國內生態最完整、功能最豐富的 Serverless 產品,開發者一步上云、一鍵 Serverless 化將成為現實。


圖:阿里云函數計算產品全景

  • 系統層面:支持了各種語言,開發者可以選一個自己最喜歡的語言,同時也支持了容器鏡像,擁抱容器生態;
  • 實例類型:默認選擇百毫秒彈性實例,也可以選擇性能實例(比如強 CPU 密集型的音視頻轉碼);
  • 觸發層:可以 API Gateway 或者 SDK 直接觸發,也可以用 Kafka、OSS、CDN 等事件源觸發;
  • 工具層:有全新的 Serverless-Tool、Fun、開發者框架等等;
  • 可觀測性:包括日志、監控、 Metrics、告警、Tracing 等;
  • 應用中心:有非常好的落地案例,可以快速體驗經典案例。

四、附錄參考

  • 江娛互動:游戲領域 Serverless 架構探索之路
  • 游戲打包過程枯燥且工作繁瑣,如何提升打包效率?看鯨旗游戲的新思路
  • 在游戲運營行業,Serverless 如何解決數據采集分析痛點?
  • 函數計算 FC 助力游戲群采集營銷數據滴水不漏
  • 基于 ECI+FaaS 構建游戲戰斗結算服
  • 娛樂/教育行業:推流、轉碼一站式解決方案
  • 零售行業:線上線下業務 Serverless 改造

作者簡介
羅松(西流),目前負責阿里云函數計算產品功能開發:runtime 開發、事件源集成以及工具鏈的開發等,畢業后,從事了兩年手游開發,經歷過完整的手游立項、研發、上線流程,17 年投身 Serverless 大潮,致力于將更好的 Serverless/FaaS 實踐案例落地,打造國內最好的開源開放的 Serverless 社區。

原文鏈接

本文為阿里云原創內容,未經允許不得轉載。

總結

以上是生活随笔為你收集整理的Serverless 极致弹性解构在线游戏行业痛点的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。