Cosmos DB를 사용한 게임

API Apps
Cosmos DB

솔루션 아이디어

잠재적인 사용 사례, 대체 서비스, 구현 고려 사항 또는 가격 책정 지침과 같은 추가 정보를 사용 하 여이 문서를 확장 하는 것을 확인 하려면 GitHub 피드백을 통해 알려주세요.

이 게임 솔루션 아이디어는 예상치 못한 트래픽 버스트를 수용 하 고 전 세계 규모에서 대기 시간이 짧은 다중 플레이어 환경을 제공 하기 위해 데이터베이스를 확장 탄력적으로 합니다. 이 특정 시나리오는 게임 시나리오를 기반으로 하지만,이 디자인 패턴은 전자 상거래 및 소매 응용 프로그램과 같이 트래픽이 많은 웹 호출 및 API 요청을 처리 하는 데 필요한 많은 산업과 관련이 있습니다.

아키텍처

아키텍처 다이어그램이 아키텍처의 SVG 를 다운로드 합니다.

데이터 흐름

  1. Azure Traffic Manager은 사용자의 게임 트래픽을 Azure App Service, 기능 또는 컨테이너에 호스트 된 앱 및 Azure api 게이트웨이를 통해 게시 된 api로 라우팅합니다.
  2. Azure CDN은 Azure Blob Storage에 저장 된 사용자에 게 정적 이미지와 게임 콘텐츠를 제공 합니다.
  3. Azure Cosmos DB은 사용자의 게임 상태 데이터를 저장 합니다.
  4. 게임 상태 데이터의 상관 관계를 Azure Databricks 하 고, 정리 하 고, 변환 합니다.
  5. Azure Functions은 Azure Databricks에서 파생 된 정보를 처리 하 고 Azure Notification Hubs를 사용 하 여 모바일 장치에 알림을 푸시합니다.

구성 요소

이 아키텍처에는 다음 구성 요소가 포함 됩니다.

  • Azure Traffic Manager 는 서로 다른 Azure 지역의 서비스 끝점에 대 한 사용자 트래픽 배포를 제어 하는 DNS 기반 부하 분산 장치입니다. 정상 작동 중에는 요청을 주 지역으로 라우팅합니다. 해당 지역을 사용할 수 없게 되 면 필요에 따라 보조 지역으로 장애 조치 (failover) 할 수 Traffic Manager.

  • Azure API Management 는 게임 api 앞에 있는 api 게이트웨이를 제공 합니다. API Management를 사용 하 여 다음과 같은 문제를 구현할 수도 있습니다.

    • 사용 할당량 및 속도 제한 적용
    • 인증을 위한 OAuth 토큰 유효성 검사
    • CORS(원본 간 요청) 사용
    • 응답 캐싱
    • 요청 모니터링 및 로깅
  • Azure App Service 는 인프라를 관리할 필요 없이 자동 크기 조정과 고가용성을 허용 하는 API 응용 프로그램을 호스팅합니다.

  • Azure CDN은 사용자와 가까운 위치에서 캐시된 정적 콘텐츠를 제공하여 대기 시간을 줄입니다.

  • Azure Blob Storage 는 정적 게임 미디어와 같은 대량의 구조화 되지 않은 데이터를 저장 하도록 최적화 되어 있습니다.

  • Azure Cosmos DB 는 확장성 있는 고성능 응용 프로그램을 구축 하 고 현대화 하는 완전히 관리 되는 nosql 데이터베이스 서비스입니다.

  • Azure Databricks는 Microsoft Azure Cloud Services 플랫폼에 대해 최적화된 Apache Spark 기반 분석 플랫폼입니다.

  • Azure Functions 는 인프라를 관리 하지 않고도 요청 시 응용 프로그램을 실행할 수 있도록 하는 서버를 사용 하지 않는 계산 옵션입니다.

  • Azure Notification Hubs 는 다양 한 모바일 장치 및 플랫폼으로 신속 하 게 알림을 보내기 위한 대규모 확장 가능한 푸시 알림 엔진입니다.

다음 단계

Cosmos DB에 대 한 다음 문서를 검토 합니다.

다음 솔루션은 Azure Cosmos DB 기능을 활용 합니다.