Phát triển game với quy mô toàn cầu nhờ Cloud Spanner

Tháng Mười Một 29, 2021
Nga Pham

Hầu hết các trò chơi điện tử hiện đại đều trải qua quá trình sản xuất và phát triển kéo dài nhiều năm. Có nhiều yếu tố chi phối thời gian phát triển trò chơi, chẳng hạn như quy mô, nền tảng phát triển, phạm vi và loại trò chơi. Thông thường, người chơi mong đợi những trải nghiệm với nhiều người chơi khác trên toàn cầu vào ngày đầu tiên trải nghiệm. Điều đó có nghĩa là thành công của một trò chơi cũng phụ thuộc vào mức độ nó có thể mở rộng ra cộng đồng hàng triệu người chơi trong vài tuần đầu tiên sau khi được phát hành. Để đáp ứng nhu cầu về quy mô này, thiết kế của trò chơi cần đáp ứng tính khả dụng và ổn định cao. Các vấn đề xảy ra trong những ngày đầu tiên sau khi trò chơi được phát hành có thể “giết chết” trò chơi bởi người chơi thường sẽ khó trở lại sau một trải nghiệm tồi tệ và nhận được sự thất vọng lớn so với mong đợi của họ. Nói cách khác, động lực chính là tất cả.

Cloud Spanner giải quyết sự phức tạp của kiến trúc như thế nào?

Tất cả các loại trò chơi trực tuyến đều cần lưu trữ một lượng lớn dữ liệu, chẳng hạn như thành tích và thống kê người chơi, bảng thành tích, dữ liệu trò chơi, v.v trên quy mô lớn. Lượng dữ liệu có thể tăng theo tuyến tính hoặc cấp số nhân khi có nhiều người tham gia trò chơi hơn. Do đó, yêu cầu quan trọng nhất đối với cơ sở dữ liệu của trò chơi chính là khả năng mở rộng quy mô trong khi vẫn đáp ứng được yêu cầu cao về tính sẵn sàng và tính khả dụng.

Khối lượng công việc của trò chơi thường yêu cầu NoSQL và các cơ sở dữ liệu quan hệ để cung cấp khả năng mở rộng trong khi vẫn duy trì tính nhất quán chặt chẽ về dữ liệu trò chơi một cách có chọn lọc. Trên Google Cloud, các tùy chọn Firestore và Bigtable có thể được xem xét để sử dụng cho NoSQL, tùy thuộc vào yêu cầu riêng của trò chơi, chẳng hạn như yêu cầu hỗ trợ nền tảng di động hoặc đa nên tảng. Đối với cơ sở dữ liệu quan hệ, không có gì phù hợp hơn với Spanner về khả năng mở rộng và tính nhất quán toàn cầu thông qua giao diện bằng thứ mà chúng ta đều đã quen thuộc cả – SQL.

Spanner là dịch vụ cơ sở dữ liệu SQL phân tán, có khả năng mở rộng toàn cầu của Google. Nó có khả năng tách biệt máy tính và bộ lưu trữ, giúp bạn có thể mở rộng quy mô tài nguyên xử lý một cách độc lập với bộ nhớ. Điều này có nghĩa là, bạn có thể nâng cấp theo chiều ngang mà không gây ra thời gian chết để đạt được hiệu suất cao hơn trên một đơn vị thời gian, chẳng hạn như hoạt động đọc và ghi trên một giây. Bản chất việc mở rộng phân tán của kiến trúc Spanner khiến nó trở thành giải pháp lý tưởng cho khối lượng công việc không thể đoán trước, đặc biệt là đối với trò chơi trực tuyến.

Thời gian chết không trong kế hoạch là mối nguy hiểm lớn nhất đối với tuổi thọ của các tựa game. Đó là lý do tại sao các công ty phát triển game thường tìm kiếm cơ sở dữ liệu phụ trợ có tính khả dụng cao để giảm thiểu gián đoạn dịch vụ trò chơi trong trường hợp xảy ra lỗi ngoài kế hoạch. Spanner cung cấp khả năng sẵn sàng hàng đầu trong ngành, ở mức 99.999% và khả năng sao chép đồng bộ, minh bạch trên cả cấu hình khu vực và đa khu vực. Các phân đoạn bản sao được phân phối trên toàn cầu có thể mang lại lợi ích bổ sung là thời gian chờ được rút ngắn bằng cách phân phát từ bản sao cục bộ.

Spanner hỗ trợ các ngữ nghĩa quan hệ như ANSI SQL và lược đồ mà không cần quá trình chuẩn hóa lại, hỗ trợ khả năng cập nhật trực tuyến cơ sở dữ liệu dịch vụ trò chơi một cách dễ dàng. ANSI SQL có thể rút ngắn đường cong lĩnh hội (learning curve) cho các nhà phát triển và quản trị viên cơ sở dữ liệu, đồng thời hỗ trợ ánh xạ quan hệ – đối tượng (Object-Relation Mapping) nhằm rút ngắn thời gian phát triển trò chơi.

Spanner đạt được các chứng nhận tuân thủ có thể giúp việc tuân thủ các yêu cầu trở nên dễ dàng hơn đối với các công ty trò chơi, chẳng hạn như tuân thủ PCI, SoC và FedRAMP. Hơn nữa, Spanner có hỗ trợ VPC-SC, Audit Log – không chỉ bao gồm các công việc quản trị mà còn cả các hoạt động của người dùng (DML, DDL, thậm chí cả Query).

Quy trình áp dụng Spanner được Google đề xuất

Recommended Spanner Adoption Process.jpg

Có một quy trình được xác định rất rõ ràng cho việc áp dụng Spanner, và việc tuân theo các mốc quan trọng này có thể giúp quá trình phát triển của bạn trở nên dễ dàng hơn. Bởi vì Spanner là một cơ sở dữ liệu phân tán hỗ trợ ngữ nghĩa quan hệ, điều quan trọng là bạn cần nắm được sự khác biệt của nó so với cơ sở dữ liệu truyền thống. Theo lời khuyên từ Google, nhóm phát triển và quản trị viên cơ sở dữ liệu nên đánh giá Spanner ở giai đoạn sớm nhất của vòng đời phát triển trò chơi để giảm thiểu quá trình thử và sai, đồng thời tối ưu hóa cho tương lai.

Sau khi làm quen với Spanner, hỗ trợ ANSI SQL và lược đồ sẽ giúp bạn chuyển đổi các lược đồ cơ sở dữ liệu quan hệ hiện có và các truy vấn có liên quan chỉ tới một vài thay đổi. Một số khách hàng chơi game đã hoàn thành chuyển đổi này chỉ trong vòng 2 – 3 tuần. Nhiều công cụ khác nhau như Harbourbridge – một công cụ đánh giá và di chuyển mã nguồn mở – có thể giúp việc di chuyển không đồng bộ sang Spanner trở nên đáng tin cậy và rõ ràng hơn.

Spanner, cũng giống như các cơ sở dữ liệu khác, cần được tối ưu hiệu suất với thử nghiệm tải để đáp ứng mục tiêu về các yêu cầu hiệu suất như thông lượng và độ trễ. Đó chính là lý do tại sao Spanner cung cấp các công cụ đánh giá bên trong để cung cấp các thông tin hữu ích cho việc tối ưu hóa. Ngoài ra, các kế hoạch thực thi truy vấn trực quan sẽ giúp những nhà phát triển thiếu kiến thức sâu về cơ sở dữ liệu có thể tối ưu hóa các truy vấn tốn thời gian thực thi. Hãy làm nóng cơ sở dữ liệu trước ngày ra mắt trò chơi để khiến Spanner được phân phối tốt và đáp ứng đủ thông lượng.

Cùng lắng nghe một số doanh nghiệp nổi tiếng chia sẻ kinh nghiệm áp dụng Cloud Spanner để phát triển sản phẩm của họ.

Niantic Labs đã xây dựng một trò chơi có thể mở rộng toàn cầu cho hàng triệu người dùng trên Google Cloud. Thông qua video dưới đây, họ đã chia sẻ kinh nghiệm mở rộng quy mô với Google Kubernetes Engine (GKE) và Spanner, đồng thời mô tả cách thức nhóm khoa học dữ liệu của họ đã áp dụng để làm việc với BigQuery, Dataflow và Pub/Sub để phân tích dữ liệu.

Vimeo là trình phát video hàng đầu trong thị trường SaaS, phục vụ hơn 200 triệu người dùng trên hơn 190 quốc gia. Trong video dưới đây, họ chia sẻ về cách Cloud Spanner cung cấp sức mạnh cho nền tảng của Vimeo và lý do Vimeo quyết định sử dụng Google Cloud.

Để tìm hiểu thêm về chương trình backend dành cho trò chơi điện tử có thể mở rộng toàn cầu này, lợi thế của nó và sự khác biệt so với cơ sở dữ liệu quan hệ truyền thống, bạn có thể đọc thêm hướng dẫn của Google về cách Phát triển trò chơi nhiều người chơi trên toàn cầu với Cloud Spanner.

Theo Google Cloud Blog