App下載

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

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

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

學習關于:

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

博彩業(yè)的演變

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

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

博彩業(yè)的演變

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

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

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

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

游戲中人工智能的演變

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

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

游戲中人工智能的演變

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

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

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

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

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

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

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

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

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

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

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

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

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

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

彈性是游戲行業(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 的實時分析和數(shù)據(jù)關聯(lián)

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

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

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

大多數(shù)用例需要實時處理大數(shù)據(jù)流:

游戲遙測:與 Kafka 的實時分析和數(shù)據(jù)關聯(lián)

大魚游戲

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

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

大魚游戲

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

貨幣化網(wǎng)絡

貨幣化網(wǎng)絡是大多數(shù)游戲公司的基本組成部分。用例包括:

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

貨幣化網(wǎng)絡如下所示:

貨幣化網(wǎng)絡

統(tǒng)一廣告

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

Unity 運營著世界上最大的貨幣化網(wǎng)絡之一:

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

Unity 是一家數(shù)據(jù)驅動型公司:

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

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

  • 實時貨幣化網(wǎng)絡
  • 實時提供機器學習模型
  • 數(shù)據(jù)湖從兩天的延遲縮短到 15 分鐘

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

游戲內(nèi)和跨平臺聊天功能

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

游戲內(nèi)和跨平臺聊天功能

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

支付引擎

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

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

  支付引擎

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


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

 

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

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

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

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

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

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

所有事件和交易的核心

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

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

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

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

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

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

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

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

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

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

Kafka 游戲中的欺詐檢測

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

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

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

游戲中的欺詐檢測

 

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




客戶 360:推薦、忠誠度系統(tǒng)、社會融合

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

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

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


 

Sky Betting 和 Gaming 的 Customer 360

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

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

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

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

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

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

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


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

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

跨公司 Kafka 集成

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

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


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

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

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

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


點播視頻可以在這里 觀看

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


0 人點贊