devops 환경을위한 continuous monitoring 소 개및게 적용사례 · 2018-03-22 ·...

21
DevOps 환경을 위한 Continuous Monitoring 개 및 게임 적용 사례 이길복 팀장, NCSOFT 서비스 플랫폼 개발실 김현동 Cloud Solution Architect, Microsoft

Upload: others

Post on 20-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DevOps 환경을위한 Continuous Monitoring 소 개및게 적용사례 · 2018-03-22 · Networking Data SQL Database DocumentDB Redis Cache Azure Search Storage Tables SQL Data

DevOps 환경을위한Continuous Monitoring 소개및게임적용사례이길복팀장, NCSOFT 서비스플랫폼개발실

김현동 Cloud Solution Architect, Microsoft

Page 2: DevOps 환경을위한 Continuous Monitoring 소 개및게 적용사례 · 2018-03-22 · Networking Data SQL Database DocumentDB Redis Cache Azure Search Storage Tables SQL Data

• Monitoring on Azure

• Continuous Monitoring with Application Insights

• Application Insights 활용사례

Agenda

Page 3: DevOps 환경을위한 Continuous Monitoring 소 개및게 적용사례 · 2018-03-22 · Networking Data SQL Database DocumentDB Redis Cache Azure Search Storage Tables SQL Data

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

Page 4: DevOps 환경을위한 Continuous Monitoring 소 개및게 적용사례 · 2018-03-22 · Networking Data SQL Database DocumentDB Redis Cache Azure Search Storage Tables SQL Data

Azure가 제공하는 모니터링 솔루션

https://aka.ms/monitoring-overview

Page 5: DevOps 환경을위한 Continuous Monitoring 소 개및게 적용사례 · 2018-03-22 · Networking Data SQL Database DocumentDB Redis Cache Azure Search Storage Tables SQL Data

각 Application단, 미들웨어, 서버

백앤드 및 클라이언트 단에서

Telemetry와로그를 Application

Insights endpoint 로 송부

Telemetry는 Azure 상으로

전달되어저장, 처리됨

기본 telemetry 및 custom

telemetry를통해이슈들을확인,

Application Insights의분석기능을이용하여문제를해결

Page 6: DevOps 환경을위한 Continuous Monitoring 소 개및게 적용사례 · 2018-03-22 · Networking Data SQL Database DocumentDB Redis Cache Azure Search Storage Tables SQL Data

어플리케이션의성능을점검하여최적화

어플리케이션의에러를탐지하고디버그

클라우드상의어플리케이션, VM, 네트워크 , PaaS 서비스

전반의문제를진단 서비스 SLA 및 KPI 대시보드를임원에게보고

서비스이용현황, 재방문율, 사용자참여도는?

보안위협이있는가?

Application Insights가 필요한 이유

Page 7: DevOps 환경을위한 Continuous Monitoring 소 개및게 적용사례 · 2018-03-22 · Networking Data SQL Database DocumentDB Redis Cache Azure Search Storage Tables SQL Data

Develop + Build Test + Stabilize Deploy + Maintain

Traditional Monitoring

Page 8: DevOps 환경을위한 Continuous Monitoring 소 개및게 적용사례 · 2018-03-22 · Networking Data SQL Database DocumentDB Redis Cache Azure Search Storage Tables SQL Data

Develop + Build Test + Stabilize Deploy + Maintain

Continuous Monitoring

Page 9: DevOps 환경을위한 Continuous Monitoring 소 개및게 적용사례 · 2018-03-22 · Networking Data SQL Database DocumentDB Redis Cache Azure Search Storage Tables SQL Data

Application Insights 가 제공하는 기능들

Intelligent APM:선제적으로성능문제및예외를발견하고진단

다양한 built-in metric 및custom query에대한즉각적인분석기능제공

DevOps 프로세스와의연동성및확장성제공

Page 10: DevOps 환경을위한 Continuous Monitoring 소 개및게 적용사례 · 2018-03-22 · Networking Data SQL Database DocumentDB Redis Cache Azure Search Storage Tables SQL Data

Sub Title엔씨소프트게임론처

Application Insights활용사례

엔씨소프트서비스플랫폼개발실이길복팀장

Page 11: DevOps 환경을위한 Continuous Monitoring 소 개및게 적용사례 · 2018-03-22 · Networking Data SQL Database DocumentDB Redis Cache Azure Search Storage Tables SQL Data

WPF / C#

BETA 3개월

2월 20일출시

NC Launcher 2

Page 12: DevOps 환경을위한 Continuous Monitoring 소 개및게 적용사례 · 2018-03-22 · Networking Data SQL Database DocumentDB Redis Cache Azure Search Storage Tables SQL Data

고객의 Voice가들어오기전에서비스 Failure를빠르게인지하고진단

간편한수집

기존에수집하기어려웠던다양한Exception들을간편하고빠르게수집

다양한정보

예외를발생시킨사용자메뉴내비게이션순서및 OS, Application version 등의사용자환경정보를쉽게확인

사례 1. 런타임 예외 (Exceptions) 수집

Page 13: DevOps 환경을위한 Continuous Monitoring 소 개및게 적용사례 · 2018-03-22 · Networking Data SQL Database DocumentDB Redis Cache Azure Search Storage Tables SQL Data
Page 14: DevOps 환경을위한 Continuous Monitoring 소 개및게 적용사례 · 2018-03-22 · Networking Data SQL Database DocumentDB Redis Cache Azure Search Storage Tables SQL Data
Page 15: DevOps 환경을위한 Continuous Monitoring 소 개및게 적용사례 · 2018-03-22 · Networking Data SQL Database DocumentDB Redis Cache Azure Search Storage Tables SQL Data

고객의 Voice가들어오기전에서비스 Failure를빠르게인지하고진단

스냅샷디버거

Production 환경에서도 Call Stack 및변수들을확인하여손쉬운디버깅이가능

현재 ASP.NET 이나 .NET Core 2.0 기반의Windows 애플리케이션만지원

사례 1. 런타임 예외 (Exceptions) 수집

Page 16: DevOps 환경을위한 Continuous Monitoring 소 개및게 적용사례 · 2018-03-22 · Networking Data SQL Database DocumentDB Redis Cache Azure Search Storage Tables SQL Data

사례 2. Users Flow (사용자 플로우) 분석

사용자들의서비스사용플로우를도식화하여사용자들의행동을분석

메뉴이동

서비스설계시의도한대로사용자들이서비스를이용하고있는지?

장애포인트

막히는곳, 특히 Exception이발생하지않지만문제가되는곳은없는지

서비스이탈

사용자들이주로어느메뉴에서서비스사용을종료했는지? 좀더오래사용하게하려면어떻게해야하는지?

Page 17: DevOps 환경을위한 Continuous Monitoring 소 개및게 적용사례 · 2018-03-22 · Networking Data SQL Database DocumentDB Redis Cache Azure Search Storage Tables SQL Data

다양한종류의특성을공유한사용자그룹을정의하여 Business Decision에

필요한사용자및세션통계를제공

사용자/세션분석

Built-in 또는 Custom 특성 (property)들로필터링

하여같은특성들을가진사용자그룹별, 세션

별로분석

깔대기(Funnel)

일련의단계를을정의하여특정사용자그룹이

각단계를통과하는비율을도시화

사용자유지(Retention)

특정서비스를이용한특정사용자그룹이다시

어플리케이션에접속하여특정 action을수행하

는비율

사례 3. 사용자 분석

Page 18: DevOps 환경을위한 Continuous Monitoring 소 개및게 적용사례 · 2018-03-22 · Networking Data SQL Database DocumentDB Redis Cache Azure Search Storage Tables SQL Data

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

Page 19: DevOps 환경을위한 Continuous Monitoring 소 개및게 적용사례 · 2018-03-22 · Networking Data SQL Database DocumentDB Redis Cache Azure Search Storage Tables SQL Data

PowerBI를연동하여더욱효율적인

데이터가시화 / 데이터접근성제공

커스텀쿼리기반으로맞춤형지표

및편리한차트가시화제공

DAU / PC방 vs 집

최신빌드의예외발생률

사례 5. PowerBI 연동

Page 20: DevOps 환경을위한 Continuous Monitoring 소 개및게 적용사례 · 2018-03-22 · Networking Data SQL Database DocumentDB Redis Cache Azure Search Storage Tables SQL Data

애플리케이션성능문제를빠르게인지하고병목 페이지, 함수를손쉽게진단

성능병목 API 인지

Client 요청별또는백앤드서비스호출별로성

능에문제가있는구간, 조건들을쉽게판별

성능분석(Profiling)

Profiler 기능을통해 Production 환경에서서비스

성능에영향을주지않으면서코드레벨로실행

된시간수치를제공

Visual Studio 연동

Azure Portal에서또는 ETL 파일을다운받아

Visual Studio에서도성능분석가능

사례 6. 성능 모니터링 및 Profiling

Page 21: DevOps 환경을위한 Continuous Monitoring 소 개및게 적용사례 · 2018-03-22 · Networking Data SQL Database DocumentDB Redis Cache Azure Search Storage Tables SQL Data

Summary

Application Insights 도입효과

• 기존의개발환경및DevOps 워크플로우와쉽게결합하여Continuous Monitoring 수행

• 애플리케이션의성능및예외(Exception) 문제들을빠르게발견하고서비스품질을높이고고객지원비용을줄임

• 강력한분석및query engine을통해Business Decision을위한다양한사용자분석데이타를빠르게수집