Gry używające usługi Cosmos DB

Aplikacje interfejsów API
Cosmos DB

OmówienieOverview

Ta architektura rozwiązania do gier umożliwia elastyczne skalowanie bazy danych w celu uwzględnienia nieprzewidywalnych obciążeń związanych z ruchem i zapewniania małych opóźnień dla wielu graczy na skalę globalną.This gaming solution architecture elastically scales your database to accommodate unpredictable bursts of traffic and deliver low-latency multi-player experiences on a global scale. Ten konkretny scenariusz jest oparty na scenariuszu gier, ale wzorce projektowe mają zastosowanie w przypadku wielu branż wymagających wywołań sieci Web o dużym ruchu oraz żądań interfejsu API, takich jak handel elektroniczny i aplikacje detaliczne.This specific scenario is based on a gaming scenario, but the design patterns are relevant for many industries requiring the process high-traffic web calls and API requests such as e-commerce and retail applications.

ArchitekturaArchitecture

Diagram architektury Pobiera plik SVG z tej architektury.Architecture Diagram Download an SVG of this architecture.

Przepływ danychData Flow

  1. Usługa Azure Traffic Manager kieruje ruchem z gier użytkownika do aplikacji hostowanych w Azure App Service, funkcjach lub kontenerach i interfejsach API opublikowanych za pośrednictwem bramy interfejsu API platformy Azure.Azure Traffic Manager routes a user's game traffic to the apps hosted in Azure App Service, Functions or Containers and APIs published via Azure API Gateway.
  2. Azure CDN obsługuje obrazy statyczne i zawartość gier dla użytkownika, który jest przechowywany w usłudze Azure Blob Storage.Azure CDN serves static images and game content to the user that are stored in Azure Blob Storage.
  3. Azure Cosmos DB przechowuje dane o stanie gier użytkownika.Azure Cosmos DB stores user's game state data.
  4. Azure Databricks skorelowanie, cleanses i przekształca dane stanu gry.Azure Databricks correlates, cleanses and transforms game state data.
  5. Azure Functions przetwarza szczegółowe informacje pochodzące z Azure Databricks i wypychanie powiadomień za pomocą usługi Azure Notification Hubs na urządzeniach przenośnych.Azure Functions processes the insights derived from Azure Databricks and pushes notifications using Azure Notification Hubs to mobile devices.

SkładnikiComponents

Ta architektura obejmuje następujące składniki:This architecture includes the following components:

  • Usługa Azure Traffic Manager to oparty na systemie DNS moduł równoważenia obciążenia, który steruje dystrybucją ruchu użytkowników dla punktów końcowych usługi w różnych regionach platformy Azure.Azure Traffic Manager is a DNS-based load balancer that controls the distribution of user traffic for service endpoints in different Azure regions. Podczas wykonywania zwykłych operacji kieruje żądania do regionu podstawowego.During normal operations, it routes requests to the primary region. Jeśli ten region stanie się niedostępny, Traffic Manager może zostać przełączona w tryb failover do regionu pomocniczego zgodnie z wymaganiami.If that region becomes unavailable, Traffic Manager can fail over to secondary region as needed.

  • Usługa Azure API Management udostępnia bramę interfejsu API, która znajduje się przed interfejsem API gier.Azure API Management provides an API gateway that sits in front of the Gaming APIs. API Management również służyć do implementowania zagadnień, takich jak:API Management also be used to implement concerns such as:

    • Wymuszanie limitów przydziału użycia i szybkościEnforcing usage quotas and rate limits
    • Weryfikowanie tokenów OAuth na potrzeby uwierzytelnianiaValidating OAuth tokens for authentication
    • Włączanie żądań między źródłami (CORS)Enabling cross-origin requests (CORS)
    • Buforowanie odpowiedziCaching responses
    • Żądania monitorowania i rejestrowaniaMonitoring and logging requests
  • Azure App Service hostuje aplikacje interfejsu API umożliwiające automatyczne skalowanie i wysoką dostępność bez konieczności zarządzania infrastrukturą.Azure App Service hosts API applications allowing autoscale and high availability without having to manage infrastructure.

  • Azure CDN udostępnia statyczną, buforowaną zawartość z lokalizacji blisko użytkowników w celu zmniejszenia opóźnień.Azure CDN delivers static, cached content from locations close to users to reduce latency.

  • BLOB Storage platformy Azure są zoptymalizowane pod kątem przechowywania dużych ilości danych bez struktury, takich jak statyczne nośniki do gier.Azure Blob Storage are optimized to store large amounts of unstructured data, such as static gaming media.

  • Azure Cosmos DB to w pełni zarządzana usługa bazy danych NoSQL do kompilowania i modernizacji skalowalnych aplikacji o wysokiej wydajności.Azure Cosmos DB is a fully managed NoSQL database service for building and modernizing scalable, high performance applications.

  • Azure Databricks to platforma analizy oparta na usłudze Apache Spark i zoptymalizowana pod kątem platformy usług w chmurze Microsoft Azure.Azure Databricks is an Apache Spark-based analytics platform optimized for the Microsoft Azure cloud services platform.

  • Azure Functions są opcje obliczeń bezserwerowych, które umożliwiają uruchamianie aplikacji na żądanie bez konieczności zarządzania infrastrukturą.Azure Functions are serverless compute options that allow applications to run on-demand without having to manage infrastructure.

  • Usługa Azure Notification Hubs to wysoce skalowalny aparat powiadomień wypychanych umożliwiający szybkie wysyłanie powiadomień do różnych urządzeń przenośnych i platform.Azure Notification Hubs is a massively scalable push notification engine for quickly sending notifications to variety of mobile devices and platforms.