# 사례 _ 중심 게임사를위한 Azure 의모든것 박항서매니저, GTPLUS MS 사업본부
Game on Azure 게임사를위한 Azure 의모든것
Game on Azure Authentication CDN & Notification Network & Security Users Traffic Servers (PaaS) Data (Cache) Data (OLAP & Bigdata) Servers (IaaS) Data (OLTP) Data Visualization Development DevOps Tools Monitoring
Gaming on Azure Authentication Users 환경에맞는플랫폼으로사용자인증처리
Gaming on Azure CDN & Notification Users Azure CDN CDN (Akamai, Verizon, Azure CDN)
Gaming on Azure Users Traffic Traffic Manager Load Balancer Application Gateway 게임환경에맞는분산처리지역지역분산분산서버분산어플리케이션서버분산분산어플리케이션분산
Gaming on Azure Users Servers (PaaS) App Service AKS Azure Functions Servers (IaaS) 사용자는 PaaS 서버 (App Server, Web App, Function 등 ) 혹은 IaaS (VM availability Set, Scale Set) 서버에접속하여게임플레이 Scale Set VM
Gaming on Azure 데이터캐싱 Servers (PaaS) Data (Cache) App Service AKS Azure Functions Azure Cache Azure Redis Document DB Servers (IaaS) Data (OLTP) Scale Set VM Azure SQL Azure MySQL Cosmos DB OLTP 데이터처리 (GameDB, AuthDB..) *OLTP : Online Transaction Processing ( 온라인트랙잭션처리 )
Gaming on Azure OLAP 및 Big Data Integration Data (OLAP & Bigdata) *OLAP : Online Analytical Processing ( 온라인분석처리 ) Stream Analytics SQL Database House HDI Insight Data (OLTP) Data Visualization Azure SQL Azure MySQL Cosmos DB Power BI Qlick Tableau 데이터시각화
DevOps on Azure 원하는코드로개발 Development
DevOps on Azure DevOps 도구를통한지속적인통합 (CI) Jenkins 및 VSTS (Azure DevOps) Development DevOps Tools Github Jenkins Azure DevOps
DevOps on Azure Servers (PaaS) DevOps 도구를통한지속적인전달 (CD) Staging 및 Production App Service AKS Azure Functions Servers (IaaS) Scale Set VM Development DevOps Tools Github Jenkins Azure DevOps
Monitoring on Azure Servers (PaaS) App Service AKS Azure Functions Servers (IaaS) Scale Set VM 모니터링도구를통한효율적인모니터링 Monitoring Log Analytics Application Insights Grafana
Monitoring on Azure CDN & Notification Network & Security Azure CDN Notification Hub Virtural Network Network Security Security Center Groups Servers (PaaS) Data (Cache) Data (OLAP & Bigdata) App Service AKS Azure Functions Azure Cache Azure Redis Document DB Stream Analytics SQL Database House HDI Insight Servers (IaaS) Data (OLTP) Data Visualization Scale Set VM Azure SQL Azure MySQL Cosmos DB Power BI Qlick Tableau Monitoring 게임서버는물론 Azure 의모든리소스를모니터링 Log Analytics Application Insights Grafana
Security on Azure 강력하고높은수준의퍼블릭클라우드보안환경제공 데이터의비밀보장, 보안안정성과보호유지에대한가용성제공 여러분이승인하지않는다면누구도여러분의데이터를사용할수없습니다. 여러분의데이터가어떻게처리되고사용되는지에대한규정준수를통해제공해드립니다. 여러분의컨텐츠가적법한규정준수과법규및표준통제하에있음을제시합니다.
Game GTPLUS on레퍼런스 Azure 게임주요개발솔루션플랫폼적용사례
VM Provisioning with ARM templates 대량 & 반복배포대량의리소스를생성하거나반복배포에용이 Custom Script Extension 서비스런칭에필요한작업을스크립트로정의하여 VM 생성시실행가능 종속성정의리소스가올바른순서로생성되도록종속성정의가능 Infra as a Code Azure Infra 를 JSON 형식의코드로관리하기때문에유연성과재사용성이높음 병렬 Provisioning Step-by-Step 으로진행되는것이아니라병렬로작업가능
VM Provisioning with ARM templates SQL DB ARM Template SQL Config Depend on SQL Website Instantiation of repeatable config. Configuration Resource Group Depends on on SQL Virtual Machine
사례 대량시스템배포 국내대형게임사에서사용 Parameter Parameter.json - Region - Prefix - Subscription JSON Format { } "parameters":{ }, "variables": { }, "resources": [ ], "outputs": { } ARM Template Template.json 1. Resources - VM, LB, AGW 2. Setting - BackendPool - HealthProbe VM Extension Provision.ps1 - 서비스에투입되기전필요한작업정의 - OS user settings - File copy - Route add - Ansible settings - Install program - Validation - etc 짧은시간에대량의가상머신을배포해야함가상머신이용도별로표준화되어있음서비스가증가할수록가상머신의개수도증가세계각국의글로벌서비스운영중 빠른배포속도 한개월드 ( 가상머신 13EA) 평균배포 25 분여러개의월드를생성하는동시작업가능 작업의간소화 가상머신배포, 가상머신표준화를위한커스터마이징 (Script), 가상머신배포검사및경고등모든배포과정이하나의템플릿으로진행됨
Azure Security Center 온 - 프레미스와클라우드의보안에대한통합관리기능제공 OMS Agent 를설치하여다양한클라우드및온 - 프레미스의통합된보안관제역할가능 민첩하게공격을감지및대응기본제공되는행동분석및머신러닝을활용하여보안공격을감지하고대응가능 취약성을찾아신속하게해결수백가지기본제공되는보안평가기능으로컴퓨터, 네트워크및 Azure 리소스의보안취약성모니터링가능 위협에대한노출을최소화 Just-in-time Access 를사용하여제한된시간동안특정관리자 IP 에대해서만접근을허용하여공격에노출을최소화
사례 공격탐지및 RDP 실패모니터링 Security Center VM OMS Workspace OMS Agent Event Log 전송 Log Analytics REST API Query C# App Security Alerts & RDP logon 실패 침입탐지 로그온실패 Slack Repository
Azure Resource Monitoring 대표 3 가지 Azure Monitoring Resource 소개 Application Insights Web, App Application 관련 Monitoring 에용의 사용자및세션수, 웹페이지응답시간및실패율등을모니터링 Grafana Azure 상의모든리소스를실시간에가깝게모니터링 PaaS 제품모니터링 많은게임고객사에서적용중 Log Analytics Monitoring Azure Monitor에서수집한로그데이터를쿼리문으로분석로그분석을통해다양한형식과시각화로결과를모니터링예 ) 지난달가장많은오류이벤트를발생한상위 10위를쿼리문으로분석하여모니터링이가능
사례 고객사리소스사용현황 Application Insights Grafana PowerBI
Azure Cosmos DB 턴키전역배포전역으로분산되는데이터베이스원하는수의데이터베이스를원하는지역에배포 선택적인일관성수준 5 가지의정의된일관성수준제공사용자의개발환경에맞게선택 다중모델 + 다중 API Document, key-value, graph 등모든데이터를자동으로인덱싱기존에사용했거나원하는 API 로사용가능 전세계에서탄력적인확장저장소와처리량을독립적, 탄력적으로확장서버리스응용프로그램에적합 짧은대기시간보장제한이없고쓰기에최적화된엔진 99 번째백분위수읽기에대해 10ms 읽기 15ms 쓰기대기시간보장 엔터프라이즈급 SLA 99.999% 고가용성제공처리량일관성대기시간업계최고의 SLA 제공엔터프라이즈급보안준수
Azure Cosmos DB Trigger a call to an API when a Document is inserted or modified Perform real time (stream) Processing on updated to data Azure Cosmos DB Change Feed Move, clone or archive data to cold storage
사례 Mobile Game Push Azure Cosmos DB Azure Functions Notification Hub
사례 Game Log Analysis Azure Cosmos DB Azure Databricks Power BI
Azure Functions Code Events + data Azure Functions
사례 게임사 Functions 활용예시 전투입장 매칭서버 01 매칭서버 02 대전서버 01 대전서버 03 대전서버 02 Fn_AuthLogin Fn_MailRead Fn_FriendAdd Fn_ShopBuy
사례 게임사 Functions 활용예시 전투입장 매칭서버 01 매칭서버 02 대전서버 01 대전서버 03 대전서버 02 Fn_AuthLogin Fn_MailRead Fn_FriendAdd Fn_ShopBuy
Azure Databricks Microsoft Azure 에서빠르고, 쉽게 Apache Spark 를배포, 협업가능한환경제공 + 확장성 Worker Node 의 Autoscaling 가능 Spark 내작업필요에따라해당설정한 VM, 설정한 Min/Max Worker 가자동으로생성됩니다. 비용절약 Auto Termination 이가능 클러스터를종료하려는비활성기간 ( 분 ) 을지정및예약할수있습니다. 속도온 - 프레미스 Spark 클러스터보다 3 배이상빠름 같은쿼리를주었을때온 - 프레미스 Spark 클러스터보다 Databricks 가 3 배이상빠른 Output 을제공합니다. 안정성 Azure Active Directory 통합, 역할기반컨트롤및엔터프라이즈급 SAL 를제공 세부회된사용자권한으로안심하고 Databricks 노트북, 클러스터, 작업및데이터에안전하게액세스할수있습니다.
사례 빅데이터를활용, Spark 클러스터에서 ML 데이터분석 On-Premise + + + + On-Premise & PaaS 비교 PaaS 는 Infra 설치및관리할필요없음 On-Premise Server 클릭몇번으로 Spark Cluster 구성이가능 Azure Blob Storage Storage Azure Data Lake Storage. Data On Azure Cloud Data Cleaning ( 데이터전처리 ) ML Train & Test Visualization Azure Power BI 필요할때마다사용가능하여비용절약 Azure Cloud 에서제공하는여러기술들을손쉽게통합
Thank You! No part of this proposal may be reproduced, Stored in a retrieval system, or transmitted in any form or by any means electronics, Mechanical, photocopying, recording or otherwise-without the permission of GTPLUS.