App下載

python大數據分析游戲行業(yè)中的 Apache Kafka:用例 + 架構!

小葵愛奮斗 2021-08-25 10:32:07 瀏覽數 (2576)
反饋

這篇博文探討了使用 Apache Kafka 的事件流如何提供可擴展、可靠且高效的基礎設施,讓游戲玩家開心并讓游戲公司取得成功。討論了游戲行業(yè)中的各種用例和架構,包括在線和移動游戲、博彩、賭博和視頻流。

學習關于:

  • 游戲遙測的實時分析和數據關聯
  • 實時廣告和應用內購買的貨幣化網絡
  • 投注支付引擎
  • 檢測財務欺詐和欺詐
  • 游戲和跨游戲中的聊天功能
  • 監(jiān)控實時操作的結果,例如周末活動或限時優(yōu)惠
  • 對營銷活動的元數據和聊天數據進行實時分析

博彩業(yè)的演變

游戲行業(yè)必須每天實時處理數十億個事件,并確??缬螒蚪换ズ秃蠖朔治鲞M行一致可靠的數據處理和關聯。部署必須在全球范圍內運行,并為數百萬用戶一年 365 天 24/7 工作。

這些要求適用于硬核游戲和大片,包括大型多人在線角色扮演游戲 (MMORPG)、第一人稱射擊游戲和多人在線戰(zhàn)斗競技場 (MOBA),以及中核和休閑游戲。與智能手機和游戲機等消費設備的可靠且可擴展的實時集成與與 Twitch 等在線流媒體服務和博彩提供商合作一樣重要。

博彩業(yè)的演變

博彩業(yè)的商業(yè)模式

游戲不再只是游戲。盡管如此,即使在游戲行業(yè),玩游戲的選擇也是多種多樣的,從游戲機和 PC 到手機游戲、賭場游戲、在線游戲和各種其他選擇。除了游戲之外,人們還通過專業(yè)電子競技、$$$ 錦標賽、實時視頻流和實時投注進行參與。 

這是一個瘋狂的進化,不是嗎?以下是當今與游戲行業(yè)相關的一些商業(yè)模式:

  • 硬件銷售
  • 游戲銷售
  • 免費游戲和游戲內購買,例如皮膚或冠軍
  • 賭博(戰(zhàn)利品箱)
  • 游戲即服務(訂閱)
  • 季節(jié)性游戲內購買,例如主題活動的通行證、季中邀請賽和世界錦標賽、競技比賽的通行證
  • 游戲基礎設施即服務
  • 商品銷售
  • 社區(qū)包括電子競技轉播、門票銷售、特許經營費
  • 滾球投注
  • 視頻流,包括廣告、獎勵等。

游戲中人工智能的演變

人工智能(業(yè)務規(guī)則、統計模型、機器學習、深度學習)對于游戲中的許多用例至關重要。這些用例包括:

  • 游戲內 AI:不可玩角色 (NPC)、環(huán)境、功能
  • 欺詐檢測:作弊、金融欺詐、虐待兒童
  • 游戲分析:保留、游戲變化(實時交付或通過下一個補丁/更新)
  • 研究:尋找新算法,改進人工智能,適應業(yè)務問題

游戲中人工智能的演變

在下文中,我探索的許多用例都將 AI 與事件流和 Kafka 結合使用。

使用 Apache Kafka 進行事件流的混合游戲架構

對構建開放、靈活、可擴展的平臺和實時處理的巨大需求是眾多游戲相關項目使用 Apache Kafka 的原因。我不會在這里討論 Kafka 并且假設您知道為什么 Kafka 成為事件流的事實上的標準。

更有趣的是我在野外看到的不同部署和架構。游戲行業(yè)的基礎設施通常是全球性的——有時僅限云,有時與本地本地安裝混合。投注通常是區(qū)域性的(主要是因為法律和合規(guī)性原因)。 游戲通常是全球性的。如果一款游戲非常出色,它就會在全球范圍內部署和推廣。

使用 Apache Kafka 進行事件流的混合游戲架構

現在讓我們來看看游戲行業(yè)中的幾個不同用例和架構。這些示例中的大多數都與所有與游戲相關的用例相關,包括游戲、移動、博彩、賭博和視頻流。

基礎設施運營:實時監(jiān)控和故障排除

監(jiān)控實時操作的結果對于每個關鍵任務基礎設施都是必不可少的。用例包括:

  • 游戲客戶端、游戲服務器、游戲服務
  • 服務健康 24/7
  • 周末錦標賽、限時優(yōu)惠和用戶獲取活動等特殊活動

立即和正確的故障排除需要實時監(jiān)控。您需要能夠回答諸如“誰制造了問題?客戶?ISP?游戲本身?”之類的問題。

基礎設施運營:實時監(jiān)控和故障排除

我們來看一個游戲行業(yè)的典型例子——一個新的營銷活動:

  • “周末免費玩”
  • 可擴展性——巨大的額外流量
  • 監(jiān)控——營銷活動是否成功?游戲/業(yè)務的盈利能力如何?
  • 實時(例如,警報)
  • 批處理(例如,Snowflake 的成功分析和報告)

必須集成、關聯和監(jiān)控大量不同的數據,以保持基礎架構運行并解決問題。

彈性是游戲行業(yè)成功的關鍵

基礎設施監(jiān)控的一個關鍵挑戰(zhàn)是所需的彈性。您不能僅僅提供一些硬件、部署軟件并一年 365 天 24 小時運行它。游戲基礎設施需要彈性。無論您是關心在線游戲、投注還是視頻流。

Epic Games 平臺總監(jiān) Chris Dyl在 2018 年 AWS 峰會上 很好地指出了這一點:“我們在高峰和低峰之間的工作負載差異幾乎是十倍。彈性對于我們在任何特定地區(qū)的任何特定區(qū)域都非常重要。云提供商?!?/font>

Confluent 為任何 Kafka 部署提供了彈性,無論事件流平臺是在邊緣自行管理還是在云中完全管理。查看“在 Confluent Cloud 中將 Apache Kafka 擴展到每秒 10+ GB ”以了解如何在云中自動擴展 Kafka。 通過使用自平衡 Kafka、分層存儲和用于 Kubernetes 的 Confluent Operator 等工具,自我管理的 Kafka 變得具有彈性。

游戲遙測:與 Kafka 的實時分析和數據關聯

游戲遙測描述了玩家如何玩游戲。玩家信息包括用戶操作(按鈕點擊、射擊、使用物品)或游戲環(huán)境指標(任務、升級)等業(yè)務邏輯,以及從特定服務器登錄、IP 地址、位置等技術信息。

Global Gaming 需要世界各地的代理來保證數百萬客戶端的區(qū)域延遲。此外,中央分析集群(具有匿名數據)關聯來自全球的數據。以下是使用游戲遙測的一些用例:

  • 游戲監(jiān)控
  • 玩家在游戲中的進展情況以及發(fā)生了什么問題
  • 直播操作——調整玩法 
  • 玩家在玩游戲時服務器端的變化(例如,限時活動,給予獎勵)
  • 實時更新以改進游戲或滿足觀眾需求(或換句話說:推薦物品/升級/皮膚/額外的游戲內購買)

大多數用例需要實時處理大數據流:

游戲遙測:與 Kafka 的實時分析和數據關聯

大魚游戲

Big Fish Games 是利用 Apache Kafka 及其生態(tài)系統進行實時操作的一個很好的例子。他們開發(fā)休閑和中核游戲。150 個國家的智能手機和電腦上安裝了 25 億個游戲,代表了 450 多個獨特的手機游戲和 3,500 多個獨特的 PC 游戲。

實時操作使用游戲遙測數據的實時分析。例如,Big Fish Games 通過實時為游戲內購買提供特定于上下文的建議,從而在玩家玩游戲時增加收入。Kafka Streams 用于大規(guī)模實時連續(xù)數據關聯。

大魚游戲

查看 Kafka 峰會演講“ Big Fish Games 如何開發(fā)實時分析 ”中的詳細信息。

貨幣化網絡

貨幣化網絡是大多數游戲公司的基本組成部分。用例包括:

  • 游戲內廣告
  • 微交易和游戲內購買:出售皮膚,升級到一個新的水平......
  • 游戲基礎設施即服務:多平臺和商店集成、匹配、廣告、玩家身份和朋友、交叉游戲、大廳、排行榜、成就、游戲分析等。
  • 合作伙伴網絡:交叉銷售游戲數據、游戲SDK、游戲分析等。

貨幣化網絡如下所示:

貨幣化網絡

統一廣告

Unity 就是一個很好的例子。2019 年,內容安裝量達到 330 億次,達到全球 30 億臺設備。公司提供實時3D開發(fā)平臺。 

Unity 運營著世界上最大的貨幣化網絡之一:

  • 獎勵觀看廣告的玩家
  • 加入橫幅廣告
  • 加入增強現實 (AR) 廣告
  • 可玩廣告
  • 交叉促銷

Unity 是一家數據驅動型公司:

  • 平均每秒大約 50 萬個事件
  • 處理數百萬美元的貨幣交易
  • 基于 Confluent Platform、Confluent Cloud 和 Apache Kafka 的數據基礎設施

單個數據管道為分析、研發(fā)、貨幣化、云服務等提供了基礎架構,以利用 Apache Kafka 進行實時和批處理:

  • 實時貨幣化網絡
  • 實時提供機器學習模型
  • 數據湖從兩天的延遲縮短到 15 分鐘

如果您想了解他們將該平臺從自我管理的 Kafka 遷移到完全管理的 Confluent Cloud 的成功故事,請閱讀 Unity 在 Confluent 博客上的帖子:“ Unity 如何使用 Confluent 大規(guī)模實時事件流”。

游戲內和跨平臺聊天功能

在當今世界,構建聊天平臺并非易事。聊天意味著發(fā)送文本、游戲內截圖、游戲內物品和其他東西。必須實時處理數百萬個事件。跨平臺聊天平臺需要支持各種技術、編程語言和通信范式,例如實時、批處理、請求-響應:

游戲內和跨平臺聊天功能

Kafka 的特性使其成為聊天平臺的完美基礎架構,因為它具有高可擴展性、實時處理和真正解耦,包括背壓處理。

支付引擎

支付基礎設施需要實時、可擴展、可靠且與技術無關。無論您的解決方案是為游戲、博彩、娛樂場、3D 游戲引擎、視頻流還是任何其他第三方服務而構建。

游戲行業(yè)的大多數支付引擎都建立在 Apache Kafka 之上。其中許多公司提供有關其實時博彩基礎設施的公開信息。這是架構的一個示例:

  支付引擎

一個示例用例是在現場投注中實施投注延遲和批準系統。需要有狀態(tài)的流分析來提高利潤: 


需要有狀態(tài)的流分析來提高利潤

 

Kafka 原生技術,如 Kafka Streams 或 ksqlDB,可以直接實現這些場景。

William Hill:安全可靠的實時微服務架構

William Hill 從單體架構轉變?yōu)殪`活、可擴展的微服務架構

  • Kafka 作為中央、可靠的流媒體基礎設施
  • Kafka 用于數據的消息傳遞、存儲、緩存和處理
  • 獨立解耦的微服務
  • 解耦和可重放性
  • 技術獨立
  • 高吞吐量+低延遲+實時

William Hill 的交易平臺利用 Kafka 作為所有事件和交易的核心:

  • 實時“流程到流程”執(zhí)行
  • 與實時機器學習的分析模型集成
  • 各種數據源和數據接收器(實時、批處理、請求-響應)

所有事件和交易的核心

博彩公司業(yè)務等同于銀行業(yè)務(包括傳統中間件和大型機)

不是每個人都可以從綠地開始。遺留中間件和大型機的集成、卸載和替換是一個常見的場景。

博彩通常是一個受監(jiān)管的市場。PII 數據通常在區(qū)域數據中心內部處理。非 PII 數據可以卸載到云中進行分析。

大型機等傳統技術是一個關鍵的成本因素,單一且不靈活。我在另一篇文章中詳細介紹了 Kafka 和大型機之間的關系 。

這是關于Kafka 與傳統中間件(MQ、ETL、EBS) 的故事。

用于保留、合規(guī)性和客戶體驗的流分析

數據質量對于法律合規(guī)性和負責任的游戲合規(guī)性至關重要。客戶保留對于保持參與度和收入增長至關重要。

這種環(huán)境中存在大量實時流分析用例。Kafka 原生框架(如 Kafka Streams 或 ksqlDB)可以為可靠且可擴展的解決方案提供基礎的一些示例是:

  • 球員連續(xù)輸/輸
  • 球員轉化——從注冊到工資(在 x 分鐘內)
  • 玩家的游戲成就
  • 欺詐檢測——例如,支付窗口
  • 每個玩家數天/數月的長時間運行窗口
  • 錦標賽
  • 用額外的免費積分獎勵不滿意的玩家
  • 向監(jiān)管機構報告——以有保證的順序重播舊事件
  • 地理定位以啟用功能、限制或傭金

流處理也與許多其他用例相關,包括欺詐檢測,您將在下一節(jié)中看到。

Kafka 游戲中的欺詐檢測

用于檢測異常的實時分析是任何支付基礎設施中的普遍場景。在游戲中,存在兩種不同類型的欺詐:

  • 作弊:假賬戶、機器人等。
  • 金融欺詐:比賽造假、信用卡被盜等。

以下是使用 Kafka、其生態(tài)系統和機器學習對欺詐檢測進行流式分析的示例:

游戲中的欺詐檢測

 

下面是一個使用 Jupyter notebooks 和 Python 檢測金融欺詐和作弊的示例,以分析使用 ksqlDB 預處理的數據:




客戶 360:推薦、忠誠度系統、社會融合

Customer 360 對于實時和特定于上下文的獲取、參與和保留至關重要。用例包括:

  • 實時事件流
    • 游戲事件觸發(fā)
    • 個性化的統計數據和賠率
    • 玩家細分
    • 戰(zhàn)役編排(“玩家旅程”)
  • 忠誠度系統
    • 獎勵(例如,升級、獨家游戲內容、公告事件的測試密鑰)
    • 避免客戶流失
    • 交叉銷售
  • 社交網絡整合
    • Twitter、Facebook 和其他社交媒體網站 
    • 示例:Candy Crush(我猜每個 Facebook 用戶都看過這款游戲的廣告)
  • 合作伙伴整合
    • API 管理

以下架構描述了客戶 360 解決方案的各種內部和外部組件之間的關系:


 

Sky Betting 和 Gaming 的 Customer 360

Sky Betting and Gaming使用 Kafka 的生態(tài)系統為客戶 360 用例構建了實時流媒體架構 。

在討論他們?yōu)槭裁催x擇 Kafka 原生框架(如 Kafka Streams)而不是 Hadoop、Spark、Storm 等技術動物園時,Kaerast 表示:

“我們的大部分流數據都是 Kafka 集群上的主題形式。這意味著我們可以使用圍繞 Kafka 設計的工具,而不是帶有 Kafka 插件/連接器的通用流解決方案。

“Kafka 本身是一個快速移動的目標,客戶端庫不斷更新;等待這些新庫包含在 Hadoop 的企業(yè)發(fā)行版或任何現成的工具中并不是一個真正的選擇。最后,我們第一個中的數據用例是用戶生成的,需要盡快呈現給用戶?!?/font>

Disney+ Hotstar:面向印度數百萬板球迷的 Telco-OTT

在印度,人們喜歡板球。數以百萬計的用戶在他們的智能手機上觀看直播。但他們不只是在看。相反,賭博也是故事的一部分。 例如,您可以押注下一場比賽的結果。人們相互競爭,可以獲得獎勵。

這種基礎設施必須以極大的規(guī)模運行。每秒必須處理數百萬個動作。Disney+ Hotstar 選擇 Kafka 作為這個基礎設施的核心也就不足為奇了:


IoT 集成通常也是此類客戶 360 度實施的一部分。用例包括:

  • 現場電子競技賽事、電視、視頻流和新聞臺
  • 粉絲參與
  • 觀眾交流
  • Alexa、Google Home 或運動專用硬件的娛樂功能

跨公司 Kafka 集成

最后但并非最不重要的一點,讓我們談談我在許多行業(yè)中看到的一個趨勢:跨部門和公司的流式復制。

游戲行業(yè)的大多數公司都將事件流與 Kafka 一起用作其業(yè)務的核心。但是,與外部世界(即其他部門、合作伙伴、第三方服務)的連接通常是通過 HTTP/REST API 完成的。一個不可擴展的完全反模式! 為什么不直接流式傳輸數據?


我看到越來越多的公司轉向這種方法。

API 管理本身就是一個詳細的討論。因此,我有一篇關于Kafka 和 API Management 之間關系的專門博客文章 。 

幻燈片和視頻:游戲行業(yè)中的 Kafka

以下是更詳細地討論游戲行業(yè)中 Apache Kafka 的幻燈片和點播視頻:


點播視頻可以在這里 觀看

正如您在這篇文章中了解到的,Kafka 在游戲行業(yè)中無處不在。無論您是專注于游戲、投注還是視頻流。


0 人點贊