Microsoft AZ-400: 모니터링, 관찰 가능성 및 피드백 — 학습 가이드
다음의 일부입니다: Microsoft DevOps Engineer Expert AZ-400 — 학습 가이드. 검증된 답안으로 연습하기: Microsoft 시험 허브, 또는 다음에서 시간 제한 모의고사 풀기: ExamRoll.io.
개요
최신 DevOps 팀은 모니터링, 관찰 가능성(observability), 피드백을 엔지니어링, 운영, 제품 결정에 정보를 제공하는 지속적인 루프로 취급합니다. Azure에서는 원격 분석 데이터가 애플리케이션과 인프라에서 Azure Monitor와 Log Analytics로 흘러 들어가 쿼리, 상호 연관 분석, 시각화됩니다. 분산 추적은 서비스를 엔드투엔드 트랜잭션으로 연결하고, 경고 및 온콜(on-call) 통합은 빠른 문제 해결을 유도합니다. Azure DevOps 대시보드, 작업 항목 분석, 실험은 통찰력을 다시 계획 및 제공 단계로 피드백하여 루프를 완성합니다. 이 섹션은 모든 단계에서 실행 가능한 피드백을 제공하는 통합된 관찰 가능성 스택을 설계하는 데 필요한 깊이 있는 내용을 제공합니다.
원격 분석, 추적 및 Azure Monitor
Application Insights는 Azure Monitor의 애플리케이션 성능 모니터링(APM) 구성 요소입니다. 계측(Instrumentation)은 다음을 통해 추가됩니다:
- SDK 및 자동 계측: .NET/.NET Core, Java, JavaScript, Node.js, Python 및 .NET과 Java용 Application Insights Agent. 연결 문자열을 사용하고
cloud_RoleName을 설정하여 구성 요소를 구분합니다. - 원격 분석 이니셜라이저 및 프로세서: 속성(예: tenantId)을 추가 또는 변경하고, 전송 전에 개인 식별 정보(PII)를 필터링합니다.
- 사용자 지정 원격 분석: 비즈니스 활동을 위한
TrackEvent, 숫자 KPI를 위한TrackMetric, 오류 컨텍스트를 위한TrackException, 명시적으로 모델링해야 하는 외부 호출을 위한TrackDependency.
원격 분석 유형에는 요청, 종속성(HTTP, SQL, Azure SDK), 추적, 예외, 페이지 뷰, 페이지 로드 성능, 가용성 테스트 결과, 사용자 지정 이벤트/메트릭, 라이브 메트릭이 포함됩니다. 샘플링은 신호를 보존하면서 데이터 양과 비용을 제어합니다: SDK 적응 샘플링은 유형별로 비율을 자동 조정하여 목표 처리량과 상관 관계를 유지하고, 고정 비율 샘플링은 규정 준수를 위해 결정론적 샘플링을 제공합니다. 삭제된 항목을 다운스트림 시스템에서 처리하지 않도록 SDK 측 샘플링을 사용하는 것이 좋습니다. 엔드투엔드 추적 무결성을 위해 고정(sticky) 샘플링을 유지합니다.
분산 추적은 엔드투엔드 트랜잭션 가시성을 제공합니다. Application Insights는 W3C Trace-Context 표준(traceparent/tracestate)을 구현하여 HTTP를 통해 상관 관계 ID를 자동으로 전파합니다. 끊어진 추적을 방지하기 위해 비동기 경계와 사용자 지정 프로토콜을 통해 컨텍스트를 전파해야 합니다. 종속성 추적은 일반적인 아웃바운드 호출을 자동으로 수집합니다. 호출 그래프를 완성하기 위해 메시지 큐 홉이나 비표준 RPC에 대한 사용자 지정 종속성을 내보냅니다. App Map과 Transaction Search는 서비스 간 흐름, 지연 시간, 장애 핫스팟을 시각화합니다. 프런트엔드와 백엔드 간의 상관 관계를 위해 JavaScript SDK를 활성화하고, 실제 페이지 로드 시간과 사용자 여정을 측정하기 위해 서버 측에서 상관 관계 헤더를 수락하도록 해야 합니다.
Azure Monitor는 플랫폼 및 애플리케이션 원격 분석을 통합합니다:
- 메트릭: 다차원, 거의 실시간(1분 이하의 세분성). 빠르고 지연 시간이 짧은 탐지를 위해 정적 또는 동적 임계값을 사용하는 메트릭 경고를 사용합니다.
- 로그: Log Analytics 작업 영역의 반정형 원격 분석 데이터로, 심층 분석 및 이상 징후 탐지를 위해 KQL로 쿼리합니다.
- 경고: 메트릭, 로그, 활동 로그 규칙은 작업 그룹으로 라우팅됩니다. 일관된 처리를 위해 동적 임계값, 다중 리소스 타기팅, 공통 경고 스키마를 사용합니다.
- 작업 그룹: 이메일/SMS/음성, 푸시 알림, 웹훅(PagerDuty/OpsGenie 포함), ITSM 커넥터, Logic Apps, Azure Functions 및 문제 해결을 위한 Automation runbook.
- 진단 설정: 각 Azure 리소스를 구성하여 플랫폼 메트릭/로그를 Log Analytics, Azure Storage(보관용), Event Hubs(SIEM 수집용)로 스트리밍합니다. 정책 기반 배포를 통해 일관성을 보장합니다.
Log Analytics(KQL)를 사용한 쿼리 및 분석
Log Analytics 작업 영역은 로그에 대한 쿼리 및 거버넌스 경계입니다. 환경 및 데이터 주권에 따라 계획합니다. 프로덕션과 비프로덕션 환경에 대해 별도의 작업 영역을 사용하면 RBAC 및 보존 정책을 단순화할 수 있으며, 중앙 집중화는 서비스 간 상관 관계 분석을 용이하게 합니다. 데이터 원본에는 Azure Diagnostics(플랫폼 로그/메트릭), VM 에이전트(Syslog/Windows 이벤트, 성능 카운터), Container Insights/AKS, Application Insights 구성 요소 로그(Azure Monitor Logs 아래에 통합), Azure AD 로그인, 수집 API를 통한 사용자 지정 로그, 정밀한 스트림 라우팅 및 변환을 위한 데이터 수집 규칙이 포함됩니다.
Kusto Query Language(KQL)는 시계열 및 원격 분석에 최적화되어 있습니다:
- 핵심 연산자:
where(필터),project(선택),extend(파생),summarize by(집계),join/union(상관 관계 분석),parse/parse_json(추출),mv-expand(배열), 시간 버킷팅을 위한make-series및bin, 차트 작성을 위한render. - 패턴: 오류 예산 소진(시간 가중 실패율), p50/p95 지연 시간 분포, 종속성 이상값 탐지, 트래픽 대비 요청 성공률, 계절성을 고려한 경고를 위한
series_decompose_anomalies를 사용한 이상 징후 탐지. - 거버넌스: 저장된 쿼리와 함수는 재사용성을 높이고, RBAC 및 테이블 수준 액세스는 민감한 데이터 세트를 제한합니다.
- 리소스 간 및 작업 영역 간:
workspace("workspaceNameOrId").Table및workspaces()함수를 사용하여 여러 환경 및 구독에 걸친 데이터 세트를 결합하고,resource()를 사용하여 리소스 간 조인을 수행합니다. 대규모 조인 시 성능을 제어하기 위해let바인딩과materialize()를 적용합니다.
Azure DevOps의 시각화 및 애자일 피드백
Azure DevOps의 대시보드는 운영 상태와 프로세스 상태를 모두 전달합니다. 팀 수준 대시보드는 팀의 백로그, 반복(iteration), WIP에 중점을 두고, 프로젝트 수준 대시보드는 여러 팀에 걸친 뷰와 포트폴리오 뷰를 보여줍니다. 위젯에는 Sprint Burndown, Burnup, Velocity, 누적 흐름 다이어그램(CFD), Cycle Time, Lead Time, 작업 항목 차트/쿼리 결과, 빌드/릴리스 요약, 그리고 런북 및 SLO 상태를 위한 Markdown이 포함됩니다. 대시보드 권한으로 위젯을 보호하고, 팀 간 정보 유출을 방지하기 위해 쿼리 범위를 팀/영역 경로에 맞게 엄격하게 설정하십시오.
Boards 쿼리(쿼리 빌더 또는 WIQL 사용)는 많은 위젯의 기반이 됩니다. 재사용을 위해 팀 영역 경로/반복(iteration)으로 쿼리를 매개 변수화하고, 정확성과 성능을 위해 가능하면 Analytics 기반 위젯을 사용하는 것이 좋습니다. 주요 흐름 메트릭:
- Cycle time: ‘활성’(진행 중)에서 ‘완료’까지 경과된 시간. 실행 효율성을 추적하는 데 Cycle Time 위젯을 사용합니다.
- Lead time: 생성/약정부터 ‘완료’까지 경과된 시간. 고객이 인지하는 총 시스템 지연을 나타냅니다.
- Throughput: 시간 간격당 완료된 항목 수. 병목 현상을 감지하기 위해 WIP 정책과 비교합니다.
- Cumulative Flow Diagram: 시간 경과에 따른 상태별 큐 크기를 시각화합니다. 넓어지는 밴드는 제약 조건과 컨텍스트 전환을 드러냅니다. 스프린트 추적을 위해서는 Burndown(남은 작업이 0에 가까워지는 추세)과 Burnup(총 범위 대 완료된 작업, 범위 변경에 탄력적)을 사용합니다. Velocity는 스프린트당 완료된 평균 작업량을 보고하며 용량 계획에 정보를 제공합니다. 팀 간에는 동일한 종류의 추정 단위만 집계해야 합니다.
제품 분석이 필요한 경우, Azure DevOps Analytics를 Power BI에 연결하여 제공 메트릭을 운영 원격 측정 데이터(예: lead time 대 결함 유출률)와 혼합하여 개선 사항의 우선순위를 정할 수 있습니다.
안정성, 알림 및 지속적인 피드백
SLI/SLO/SLA는 안정성을 최우선 기능으로 확립합니다:
- SLI: 사용자 경험에 대한 정량적 측정 지표. 예: 요청 성공률, p95 지연 시간, 중요 엔드포인트의 가용성, UI에서의 작업 완료율.
- SLO: 특정 기간 동안의 목표. 예: 월 99.9% 가용성 또는 p95 < 300ms. SLO는 인프라가 아닌 사용자 여정에 연결해야 합니다.
- 오류 예산(Error budgets): 1 − SLO. 릴리스 위험, 롤백 기준, 인시던트 대응을 관리합니다. 빠른 위반과 느린 위반 모두에 대해 KQL 또는 메트릭 알림을 사용하여 소진율 알림(예: 2배 및 14배 예산 소진)을 구현합니다.
- SLA: 고객에 대한 외부 약속. 일반적으로 SLO보다 느슨하며 페널티를 포함합니다. 엔지니어링 가드레일을 지시하는 것이 아니라 이끌어냅니다.
알림 및 온콜(On-call):
- 지연 시간에 민감한 조건에는 메트릭 알림을 사용하고, 복잡한 조건문(예: 다중 신호 상관관계 또는 이상 점수)에는 로그 알림을 사용합니다.
- 중복 제거(알림 처리 규칙), 동적 임계값, 심각도 조정, 계획된 유지보수 중 자동 억제를 통해 알림 피로도를 줄입니다.
- 공통 알림 스키마를 사용하는 작업 그룹 웹훅을 통해 PagerDuty/OpsGenie와 통합합니다. 인시던트 중복 제거를 위해 알림 상관관계 키를 매핑하고 서비스별 에스컬레이션 정책을 정의합니다.
- Azure Automation runbook, Functions 또는 Logic Apps를 사용하여 해결 조치를 자동화합니다(예: 큐 깊이에 따른 스케일 아웃, 실패한 인스턴스 재시작, 기능 플래그 토글). 감사 가능성을 위해 모든 자동 조치를 Application Insights에 사용자 지정 이벤트로 기록합니다.
지속적인 피드백 및 실험:
- A/B 테스트 및 점진적 배포: Azure Front Door 또는 Traffic Manager를 사용하여 에지(edge)에서 트래픽을 분할하거나, Azure App Configuration Feature Manager로 기능 플래그를 구현하여 사용자별 또는 코호트 기반으로 배포합니다. 플래그로 코드 경로를 보호하고 변형(variant)별로 이벤트 원격 측정(텔레메트리)을 수집합니다.
- 사용자 원격 측정(텔레메트리): 기능 플래그 상태, 사용자 속성(비-PII), 시나리오 식별자와 함께 TrackEvent를 내보냅니다. Application Insights에서 퍼널, 사용자 흐름, 리텐션, 코호트 성과를 분석하여 가설을 검증합니다.
- 기능 사용량 분석: DAU/WAU/MAU, 기능 채택률, 전환 지표를 추적하는 대시보드를 구축합니다. 결과를 백로그 우선순위 결정에 반영합니다. Azure Pipelines 게이트를 사용하여 스테이징 SLI 기준선이 실패하거나 실험 KPI 회귀가 감지될 때 프로덕션 배포를 차단합니다.
실용적인 문제 시나리오
Spotify는 Azure Kubernetes Service(AKS) 및 Azure App Service API에 배포된 팟캐스트 수집 및 재생 서비스의 엔드투엔드 가시성과 피드백을 개선해야 합니다. 인시던트가 늦게 감지되고, 제품 팀은 새로운 재생 기능에 대한 신뢰할 수 있는 채택 지표가 부족합니다.
- 애플리케이션 원격 측정(텔레메트리) 계측 및 상관관계 분석
- .NET 및 Node.js 서비스에 Application Insights SDK를 추가하고, 웹 클라이언트에서 Application Insights JavaScript SDK를 활성화합니다. cloud_RoleName 및 연결 문자열을 구성하고, 마이크로서비스와 메시지 큐 간에 W3C 추적 컨텍스트 전파를 활성화합니다. 이유: 브라우저에서 서비스 및 종속성에 이르기까지 완전한 트랜잭션 가시성을 위해 일관된 상관관계 ID와 분산 추적을 보장합니다.
- 플랫폼 진단 정보를 Log Analytics로 스트리밍
- Azure Policy를 통해 모든 AKS 클러스터, App Service 계획, Application Gateway, Cosmos DB, Storage 계정에 진단 설정을 적용하여, 90일 보존 및 Storage로 아카이브하는 중앙 프로덕션 작업 영역으로 라우팅합니다. 이유: KQL 상관관계 분석 및 비용 효율적인 장기 보존을 위해 플랫폼 로그/메트릭의 균일한 커버리지를 보장합니다.
- SLI, SLO 및 오류 예산 정의
- SLI: p95 API 지연 시간, 요청 성공률, 수집 파이프라인 처리량, 플레이어 시작 성공률.
- SLO: 월 99.95% 성공률, p95 재생 시작 < 300ms, 수집 지연 < 2분.
- KQL 기반 오류 예산 소진율 알림(빠름/느림)과 동적 임계값을 가진 지연 시간에 대한 메트릭 알림을 생성합니다. 이유: 비즈니스 결과를 시기적절한 알림과 함께 측정 가능하고 실행 가능한 안정성 목표로 전환합니다.
- 실행 가능한 알림 및 온콜(On-call) 통합 구축
- 스마트 그룹화를 사용하여 Azure Monitor 알림 규칙을 생성하고, 공통 알림 스키마를 사용하여 웹훅을 통해 PagerDuty를 트리거하는 작업 그룹으로 라우팅합니다. 큐 깊이에 따라 자동 확장하고 비정상 파드를 재시작하도록 Azure Automation runbook을 연결합니다. 이유: 신뢰할 수 있는 페이징과 안전하고 감사 가능한 자동 해결 조치를 통해 MTTA/MTTR을 줄입니다.
- 엔지니어링 및 제품용 대시보드 구축
- Azure DevOps 팀 수준 대시보드: 스쿼드를 위한 사이클 타임(활성→완료), 리드 타임(생성→완료), CFD, 속도, 스프린트 번다운. 프로젝트 수준 대시보드: 릴리스에 대한 번업, 교차 팀 처리량, Markdown/Analytics 위젯을 통한 SLO 상태. 이유: 스쿼드에게 실행에 대한 통찰력을 제공하는 동시에 리더십에게는 포트폴리오 및 안정성 상태를 제공합니다.
- 실험 및 사용량 분석 구현
- Azure App Configuration 기능 플래그를 사용하여 새로운 ‘무음 구간 스마트 건너뛰기’ 기능을 점진적으로 배포합니다. 필요 시 에지에서 A/B 테스트를 위해 Front Door 규칙으로 코호트를 분할합니다. featureFlagState, 사용자 코호트, 결과 지표와 함께 TrackEvent를 내보냅니다. 이유: 증거 기반 의사 결정을 위해 고품질의 사용자 원격 측정(텔레메트리)을 캡처하면서 영향을 안전하게 검증합니다.
- 게이트(Gate)를 통해 릴리스 품질 강제
- Azure Pipelines에서 스테이징 KPI(p95 지연 시간, 실패율, 실험 변형 성능)에 대해 Application Insights/Log Analytics를 쿼리하는 게이트를 추가합니다. 기준선 또는 SLO에 부합하는 임계값을 충족하지 못하면 게이트를 실패시킵니다. 이유: 회귀(regression)가 프로덕션에 도달하는 것을 방지하고 배포 결정을 안정성 및 제품 KPI와 일치시킵니다.
← 테스트 전략 및 품질 엔지니어링 · 모든 도메인 · 패키지 관리 및 아티팩트 관리 →
이 문제 연습하기 → · ExamRoll.io에서 시간 제한 연습 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
시험 합격하기 →