Juegos con Azure Cosmos DB

Azure App Service
Azure Cosmos DB

Ideas de solución

Este artículo es una idea de solución. Si te gustaría que ampliemos este artículo con más información, como posibles casos de uso, servicios alternativos, consideraciones de implementación o una guía de precios, comunícalo a través de los Comentarios de GitHub.

Esta idea de solución de juegos escala de forma elástica la base de datos para dar cabida a picos impredecibles de tráfico y ofrecer experiencias multijugador de baja latencia a escala mundial.

Architecture

Architecture diagram that shows a gaming solution idea that uses Azure Cosmos DB.

Descargue un archivo Visio de esta arquitectura.

Flujo de datos

  1. Azure Traffic Manager enruta el tráfico de juego de un usuario a las aplicaciones hospedadas en Azure App Service, Functions o Containers, y a las API que se publican a través de la puerta de enlace de la API de Azure.
  2. Azure CDN proporciona imágenes estáticas y contenidos del juego al usuario que se almacenan en Azure Blob Storage.
  3. Azure Cosmos DB almacena los datos de estado del juego del usuario.
  4. Azure Databricks correlaciona, limpia y transforma los datos de estado del juego.
  5. Azure Functions procesa la información obtenida de Azure Databricks y envía notificaciones a los dispositivos móviles mediante Azure Notification Hubs.

Componentes

Esta arquitectura incluye los siguientes componentes:

  • Azure Traffic Manager es un equilibrador de carga basado en DNS que controla la distribución del tráfico de usuario en los puntos de conexión de servicio de las diferentes regiones de Azure. Durante las operaciones normales enruta las solicitudes a la región primaria. Si esa región no está disponible, Traffic Manager puede conmutar por error a la región secundaria si es necesario.

  • Azure API Management proporciona una puerta de enlace de API que se coloca delante de las API de juegos. API Management también se puede utilizar para implementar cuestiones como:

    • Aplicación de cuotas de uso y límites de frecuencia
    • Validación de tokens de OAuth para la autenticación
    • Habilitación de solicitudes entre orígenes (CORS)
    • Almacenamiento en caché de las respuestas
    • Supervisión y registro de solicitudes
  • Azure App Service hospeda aplicaciones de API que permiten la escalabilidad automática y una alta disponibilidad sin tener que administrar la infraestructura.

  • Azure CDN ofrece contenido estático almacenado en caché desde ubicaciones cercanas a los usuarios para reducir la latencia.

  • Azure Blob Storage está optimizado para almacenar grandes cantidades de datos no estructurados, como los elementos multimedia de los juegos estáticos.

  • Azure Cosmos DB es un servicio de base de datos NoSQL totalmente administrado para compilar y modernizar aplicaciones escalables de alto rendimiento.

  • Azure Databricks es una plataforma de análisis basada en Apache Spark optimizada para la plataforma de servicios en la nube de Microsoft Azure.

  • Azure Functions es una opción de proceso sin servidor que permite ejecutar aplicaciones a petición sin tener que administrar la infraestructura.

  • Azure Notification Hubs es un motor de notificaciones de inserción escalable de forma masiva que se usa para enviar rápidamente notificaciones a diversos dispositivos móviles y plataformas.

Detalles del escenario

Posibles casos de uso

Este escenario específico se basa en un escenario de juegos para el sector de desarrollo de juegos. Los modelos de diseño son importantes para muchos sectores que requieren el procesamiento de llamadas web de tráfico elevado y solicitudes de API, como las aplicaciones de comercio electrónico y venta minorista.

Pasos siguientes

Revise los artículos siguientes sobre Azure Cosmos DB:

Documentación del producto:

Las siguientes ideas de soluciones utilizan Azure Cosmos DB: