大多數現代遊戲都需要多年的投資來製作,無論是在開發時間還是資金方面。 開發的長度受許多因素的影響,例如規模、開發平台、範圍和遊戲類型。 遊戲玩家通常期望在第一天就能獲得全球多人遊戲體驗,這意味著遊戲的成功是取決於它在存活期間的最初幾週內能否擴展到數百萬玩家的社群。 必須在遊戲設計中構建高可用性和穩定性,以應對這種規模需求。 在遊戲開始的日子裡發生的問題可能是致命的,因為玩家在糟糕的體驗後回歸緩慢,而預期的炒作很快就會消失了。 換句話說,氣勢就是一切。
Cloud Spanner 如何解決架構複雜性問題?
所有類型的線上遊戲都需要儲存大量資料,例如玩家成就和統計數據、排行榜、遊戲數據等等,並且必須規模化。 隨著更多玩家加入遊戲,資料量可以線性或指數增長; 因此,對遊戲資料庫最重要的要求是能夠在提供高可用性的同時進行擴展。
遊戲工作負載通常需要 NoSQL 和關鍵是資料庫來獲得可擴展性,同時有選擇地保持遊戲數據的嚴格一致性。 在 Google Cloud 上,NoSQL 可以考慮 Firestore 和 Bigtable 選項,具體取決於遊戲的獨特要求,例如手機優先或跨平台支援要求。 對於關係資料庫,Spanner 通過我們都熟悉的接口 SQL 提供可擴展性和全域一致性方面,沒有什麼能比得上 Spanner。
Spanner 是我們的分散式、全球可擴展的 SQL 資料庫服務,它將運算與儲存分離,從而可以將處理資源與儲存分開擴展。 這意味著可以在不停機的情況下進行水平向上擴展,以實現更高的維度性能,例如讀取和寫入的每秒操作數。 Spanner 架構的分佈式擴展特性使其成為網路遊戲等不可預測工作負載的理想解決方案。
計劃外的遊戲停機時間是對遊戲壽命的最大威脅。 這就是為什麼遊戲公司尋求高度可用的後端資料庫,以盡量減少遊戲服務中斷,以防意外故障。 Spanner 為多區域實例提供業界領先的 99.999% 可用性,並提供跨區域和多區域配置的透明、同步複製。 全球分佈的副本分片可以通過從本地副本提供服務來提供縮短延遲的額外好處。
Spanner 支持 ANSI SQL 和模式等關係語義,無需反正規化,並可輕鬆在線上更新您的遊戲服務資料庫。 ANSI SQL 可以縮短開發人員和資料庫管理員 (DBA) 的學習曲線。 此外,物件關聯對映 (ORM) 支援還可以減少開發時間。
Spanner 擁有合規性認證,可以讓遊戲公司更容易遵守合規性要求,例如 PCI、SoC 合規性和 FedRAMP。 此外,Spanner 具有 VPC-SC 支持、審計日誌,其中不僅包括管理作業,還包括用戶活動(DML、DDL,甚至Query)。
推薦的Spanner採用流程
Spanner 的採用有一個非常明確的過程,遵循上述這些主要里程碑可以使其變得容易。 由於 Spanner 是支持關係語義的分佈式資料庫,因此了解與傳統關係資料庫相比的差異非常重要。 我們建議您的開發團隊和 DBA 在遊戲開發生命週期的最早階段開始評估 Spanner,以最大限度地減少反複試驗以及未來的優化。
只需進行一些更改,熟悉 Spanner 後,Spanner 的 ANSI SQL 和 Schema 支持允許您輕鬆轉換現有的關係資料庫模式和相關查詢。 幾位遊戲客戶在短短 2-3 週內完成了這一轉換。 評估和遷移開源工具 Harbourbridge 等各種工具可以使Spanner 的異構遷移可靠且容易。
Spanner 與其他資料庫一樣,需要通過負載測試進行性能優化,以滿足流通量和延遲等目標性能要求。 這就是 Spanner 提供自我檢測工具來提供優化見解的原因。 此外,直觀和可視化的查詢執行計劃使缺乏深入資料庫知識的開發人員能夠優化長時間運行的查詢。 在遊戲發布日之前預熱資料庫,以使 Spanner 分佈良好並具有足夠的流通量。
Niantic Labs 在 Google Cloud 上為數百萬用戶構建了一款全球可擴展的遊戲。 他們分享了使用 Google Kubernetes Engine (GKE) 和 Spanner 進行擴展的經驗,並描述了他們的數據科學團隊如何使用 BigQuery、Dataflow 和 Pub/Sub 進行數據分析。
Vimeo 是不斷增長的影片 SaaS 市場的領先者,為 190 多個國家/地區的 2 億多用戶提供服務。 在這段視頻中,他們分享了 Cloud Spanner 如何為 Vimeo 的平台提供支持,以及 Vimeo 決定使用 Google Cloud 的原因。
要詳細了解 Google Cloud 上這種全球可擴展的遊戲後端、Spanner 的優勢以及與傳統關係資料庫的區別,請閱讀我們的使用 Cloud Spanner 開發全球多人遊戲白皮書。