devops 환경을위한 continuous monitoring 소 개및게 적용사례 · 2018-03-22 ·...
TRANSCRIPT
DevOps 환경을위한Continuous Monitoring 소개및게임적용사례이길복팀장, NCSOFT 서비스플랫폼개발실
김현동 Cloud Solution Architect, Microsoft
• Monitoring on Azure
• Continuous Monitoring with Application Insights
• Application Insights 활용사례
Agenda
Platform Services
Infrastructure Services
Compute Storage
Datacenter Infrastructure
Application Platform
WebApps
MobileApps
API Apps
Notification Hubs
HybridCloud
Backup
StorSimple
Azure SiteRecovery
Import/Export
Networking
Data
SQL Database DocumentDB
Redis Cache
AzureSearch
StorageTables
SQL DataWarehouse
Azure AD Health Monitoring
Virtual Network
ExpressRoute
Blob Files DisksVirtual Machines
AD PrivilegedIdentity Management
Traffic Manager
AppGateway
OperationalAnalytics
Compute Services
Cloud Services
BatchRemoteApp
ServiceFabric
Developer Services
Visual Studio
ApplicationInsights
VS Team Services
Containers DNSVPN Gateway
Load Balancer
Domain Services
Analytics & IoT
HDInsight MachineLearning Stream Analytics
Data Factory
EventHubs
Data LakeAnalytics Service
IoT Hub
Data Catalog
Security & Management
Azure ActiveDirectory
Multi-FactorAuthentication
Automation
Portal
Key Vault
Store/Marketplace
VM Image Gallery& VM Depot
Azure ADB2C
Scheduler
Xamarin
HockeyApp
Power BI Embedded
SQL Server Stretch Database
MobileEngagement
Functions
Intelligence
Cognitive Services Bot Framework Cortana
Security Center
Container Service
Queues
VM Scale Sets
Data Lake Store
Dev/Test Lab
Integration
BizTalkServices
Service Bus
Logic Apps
API Management
Media & CDN
Content DeliveryNetwork
Media Services
Media Analytics
Azure가 제공하는 모니터링 솔루션
https://aka.ms/monitoring-overview
각 Application단, 미들웨어, 서버
백앤드 및 클라이언트 단에서
Telemetry와로그를 Application
Insights endpoint 로 송부
Telemetry는 Azure 상으로
전달되어저장, 처리됨
기본 telemetry 및 custom
telemetry를통해이슈들을확인,
Application Insights의분석기능을이용하여문제를해결
어플리케이션의성능을점검하여최적화
어플리케이션의에러를탐지하고디버그
클라우드상의어플리케이션, VM, 네트워크 , PaaS 서비스
전반의문제를진단 서비스 SLA 및 KPI 대시보드를임원에게보고
서비스이용현황, 재방문율, 사용자참여도는?
보안위협이있는가?
Application Insights가 필요한 이유
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 프로세스와의연동성및확장성제공
Sub Title엔씨소프트게임론처
Application Insights활용사례
엔씨소프트서비스플랫폼개발실이길복팀장
WPF / C#
BETA 3개월
2월 20일출시
NC Launcher 2
고객의 Voice가들어오기전에서비스 Failure를빠르게인지하고진단
간편한수집
기존에수집하기어려웠던다양한Exception들을간편하고빠르게수집
다양한정보
예외를발생시킨사용자메뉴내비게이션순서및 OS, Application version 등의사용자환경정보를쉽게확인
사례 1. 런타임 예외 (Exceptions) 수집
고객의 Voice가들어오기전에서비스 Failure를빠르게인지하고진단
스냅샷디버거
Production 환경에서도 Call Stack 및변수들을확인하여손쉬운디버깅이가능
현재 ASP.NET 이나 .NET Core 2.0 기반의Windows 애플리케이션만지원
사례 1. 런타임 예외 (Exceptions) 수집
사례 2. Users Flow (사용자 플로우) 분석
사용자들의서비스사용플로우를도식화하여사용자들의행동을분석
메뉴이동
서비스설계시의도한대로사용자들이서비스를이용하고있는지?
장애포인트
막히는곳, 특히 Exception이발생하지않지만문제가되는곳은없는지
서비스이탈
사용자들이주로어느메뉴에서서비스사용을종료했는지? 좀더오래사용하게하려면어떻게해야하는지?
다양한종류의특성을공유한사용자그룹을정의하여 Business Decision에
필요한사용자및세션통계를제공
사용자/세션분석
Built-in 또는 Custom 특성 (property)들로필터링
하여같은특성들을가진사용자그룹별, 세션
별로분석
깔대기(Funnel)
일련의단계를을정의하여특정사용자그룹이
각단계를통과하는비율을도시화
사용자유지(Retention)
특정서비스를이용한특정사용자그룹이다시
어플리케이션에접속하여특정 action을수행하
는비율
사례 3. 사용자 분석
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을생성
사례 4. Continuous Monitoring
PowerBI를연동하여더욱효율적인
데이터가시화 / 데이터접근성제공
커스텀쿼리기반으로맞춤형지표
및편리한차트가시화제공
DAU / PC방 vs 집
최신빌드의예외발생률
사례 5. PowerBI 연동
애플리케이션성능문제를빠르게인지하고병목 페이지, 함수를손쉽게진단
성능병목 API 인지
Client 요청별또는백앤드서비스호출별로성
능에문제가있는구간, 조건들을쉽게판별
성능분석(Profiling)
Profiler 기능을통해 Production 환경에서서비스
성능에영향을주지않으면서코드레벨로실행
된시간수치를제공
Visual Studio 연동
Azure Portal에서또는 ETL 파일을다운받아
Visual Studio에서도성능분석가능
사례 6. 성능 모니터링 및 Profiling
Summary
Application Insights 도입효과
• 기존의개발환경및DevOps 워크플로우와쉽게결합하여Continuous Monitoring 수행
• 애플리케이션의성능및예외(Exception) 문제들을빠르게발견하고서비스품질을높이고고객지원비용을줄임
• 강력한분석및query engine을통해Business Decision을위한다양한사용자분석데이타를빠르게수집