DevOps 환경을위한 Continuous Monitoring 소개및게임적용사례 이길복팀장, NCSOFT 서비스플랫폼개발실김현동 Cloud Solution Architect, Microsoft
Agenda Monitoring on Azure Continuous Monitoring with Application Insights Application Insights 활용사례
Security & Management Security Center Portal Azure Active Directory Azure AD B2C Multi-Factor Authentication Media Services Logic Apps Media & CDN API Management Media Analytics Integration BizTalk Services Service Bus Content Delivery Network Platform Services Application Platform Web Apps API Apps Service Fabric Mobile Apps Cloud Services Notification Hubs Functions SQL Database SQL Server Stretch Database Data SQL Data Warehouse Redis Cache Intelligence Storage Tables DocumentDB Cognitive Services Bot Framework Cortana Azure Search Hybrid Cloud Azure AD Health Monitoring AD Privileged Identity Management Domain Services Backup Automation Scheduler Key Vault Store/ Marketplace VM Image Gallery & VM Depot Compute Services Container Service Batch Dev/Test Lab VM Scale Sets RemoteApp Developer Services Visual Studio VS Team Services Application Insights Mobile Engagement Xamarin HockeyApp Infrastructure Services HDInsight IoT Hub Data Catalog Analytics & IoT Event Hubs Machine Learning Data Lake Analytics Service Data Factory Stream Analytics Data Lake Store Power BI Embedded Operational Analytics Import/Export Azure Site Recovery StorSimple Compute Storage Networking Virtual Machines Containers Blob Queues Files Disks Virtual Network Load Balancer DNS Express Route Traffic Manager VPN Gateway App Gateway Datacenter Infrastructure
https://aka.ms/monitoring-overview Azure 가제공하는모니터링솔루션
각 Application 단, 미들웨어, 서버백앤드및클라이언트단에서 Telemetry 와로그를 Application Insights endpoint 로송부 기본 telemetry 및 custom telemetry 를통해이슈들을확인, Application Insights 의분석기능을이용하여문제를해결 Telemetry 는 Azure 상으로전달되어저장, 처리됨
Application Insights 가필요한이유 어플리케이션의성능을점검하여최적화 클라우드상의어플리케이션, VM, 네트워크, PaaS 서비스전반의문제를진단 서비스 SLA 및 KPI 대시보드를임원에게보고 어플리케이션의에러를탐지하고디버그 서비스이용현황, 재방문율, 사용자참여도는? 보안위협이있는가?
Develop + Build Test + Stabilize Deploy + Maintain Traditional Monitoring
Develop + Build Test + Stabilize Deploy + Maintain Continuous Monitoring
Application Insights 가제공하는기능들 Intelligent APM: 선제적으로성능문제및예외를발견하고진단 다양한 built-in metric 및 custom query 에대한즉각적인분석기능제공 DevOps 프로세스와의연동성및확장성제공
엔씨소프트게임론처 Application Sub Insights Title 활용사례 엔씨소프트서비스플랫폼개발실이길복팀장
NC Launcher 2 WPF / C# BETA 3 개월 2 월 20 일출시
사례 1. 런타임예외 (Exceptions) 수집 고객의 Voice 가들어오기전에서비스 Failure 를빠르게인지하고진단 간편한수집 기존에수집하기어려웠던다양한 Exception 들을간편하고빠르게수집 다양한정보 예외를발생시킨사용자메뉴내비게이션순서및 OS, Application version 등의사용자환경정보를쉽게확인
사례 1. 런타임예외 (Exceptions) 수집 고객의 Voice 가들어오기전에서비스 Failure 를빠르게인지하고진단 스냅샷디버거 Production 환경에서도 Call Stack 및변수들을확인하여손쉬운디버깅이가능 현재 ASP.NET 이나.NET Core 2.0 기반의 Windows 애플리케이션만지원
사례 2. Users Flow ( 사용자플로우 ) 분석 사용자들의서비스사용플로우를도식화하여사용자들의행동을분석 메뉴이동 서비스설계시의도한대로사용자들이서비스를이용하고있는지? 장애포인트 막히는곳, 특히 Exception 이발생하지않지만문제가되는곳은없는지 서비스이탈 사용자들이주로어느메뉴에서서비스사용을종료했는지? 좀더오래사용하게하려면어떻게해야하는지?
사례 3. 사용자분석 다양한종류의특성을공유한사용자그룹을정의하여 Business Decision 에 필요한사용자및세션통계를제공 사용자 / 세션분석 Built-in 또는 Custom 특성 (property) 들로필터링하여같은특성들을가진사용자그룹별, 세션별로분석깔대기 (Funnel) 일련의단계를을정의하여특정사용자그룹이각단계를통과하는비율을도시화사용자유지 (Retention) 특정서비스를이용한특정사용자그룹이다시어플리케이션에접속하여특정 action을수행하는비율
사례 4. Continuous Monitoring Integration, Unit Test, 배포, Beta, Production 각단계에서 Continuous Monitoring 적용하여 상시 Feedback Loop 를구축 CodeLens 개발시 Visual Studio 상에서 Code Lens 를통해 Application Insights 가제공하는해당코드의실행회수및 Exception 발생 회수등코드변경이서비스에주는영향을확인 단계별모니터링 각 Gate 단계별로상시가용성테스트및성능모니터링을통 해각 metric 이기준치미만시 Alert 을수신하여다음단계로넘어가기전에사전대응 Work(Bug) Item VSTS 및 GitHub 연동기능을통해 Application Insights 에서감지된성능및 Exception 문제들에대해 Application Insights 상에서 bug item 을생성
사례 5. PowerBI 연동 PowerBI 를연동하여더욱효율적인 데이터가시화 / 데이터접근성제공 커스텀쿼리기반으로맞춤형지표및편리한차트가시화제공 DAU / PC방 vs 집최신빌드의예외발생률
사례 6. 성능모니터링및 Profiling 애플리케이션성능문제를빠르게인지하고병목페이지, 함수를손쉽게진단 성능병목 API 인지 Client 요청별또는백앤드서비스호출별로성능에문제가있는구간, 조건들을쉽게판별성능분석 (Profiling) Profiler 기능을통해 Production 환경에서서비스성능에영향을주지않으면서코드레벨로실행된시간수치를제공 Visual Studio 연동 Azure Portal에서또는 ETL 파일을다운받아 Visual Studio에서도성능분석가능
Summary Application Insights 도입효과 기존의개발환경및 DevOps 워크플로우와쉽게결합하여 Continuous Monitoring 수행 애플리케이션의성능및예외 (Exception) 문제들을빠르게발견하고서비스품질을높이고고객지원비용을줄임 강력한분석및 query engine 을통해 Business Decision 을위한다양한사용자분석데이타를빠르게수집