모니터링이란?
애플리케이션이 프로덕션에 배포되면 모니터링은 애플리케이션의 성능 및 사용 패턴에 대한 정보를 제공하므로 문제를 식별, 완화 또는 해결할 수 있습니다.
모니터링 목표
모니터링의 한 가지 목표는 시간 측면에서 측정되는 주요 메트릭을 최소화하여 고가용성을 달성하는 것입니다.
- TTD(감지 시간): 성능 또는 기타 문제가 발생하면 문제에 대한 풍부한 진단 데이터가 자동화된 모니터링을 통해 개발 팀에 다시 공급됩니다.
- TTM(완화 시간): DevOps 팀은 사용자가 더 이상 영향을 받지 않도록 가능한 한 빨리 문제를 완화하기 위해 정보를 사용합니다.
- TTR(수정 시간): 해결 시간을 측정하고 팀은 시간이 지남에 따라 개선하기 위해 노력합니다. 완화 후 팀은 문제가 재발하지 않도록 근본 원인에서 문제를 해결하는 방법을 고민합니다.
모니터링의 두 번째 목표는 사용량을 추적하여 유효성이 검사된 학습을 사용하도록 설정하는 것입니다. 유효성이 검사된 학습의 핵심 개념은 모든 배포가 배포로 이어진 가설을 지원하거나 줄이는 실험적 결과를 추적할 수 있는 기회라는 것입니다. 버전 간의 사용량 및 차이를 추적하면 팀에서 변경의 영향을 측정하고 비즈니스 의사 결정을 내릴 수 있습니다. 가설이 축소되면 팀은 빠르게 실패하거나 피벗할 수 있습니다. 가설이 지원되는 경우 팀은 두 번 다운하거나 인내할 수 있습니다. 이러한 데이터 정보에 입각한 결정으로 인해 백로그의 새로운 가설과 우선 순위가 지정됩니다.
주요 개념
원격 분석은 모니터링에서 데이터를 수집하기 위한 메커니즘입니다. 원격 분석은 배포 환경에 설치된 에이전트, 소스 코드에 삽입된 마커, 서버 로깅 또는 이러한 조합에 의존하는 SDK를 사용할 수 있습니다. 일반적으로 원격 분석은 실시간 경고 및 대시보드에 최적화된 데이터 파이프라인과 문제 해결 또는 사용 현황 분석에 필요한 대용량 데이터를 구분합니다.
가상 모니터링 은 일관된 트랜잭션 집합을 사용하여 성능 및 가용성을 평가합니다. 가상 트랜잭션은 예측 가능한 방식으로 릴리스에서 릴리스로의 비교를 허용하는 이점이 있는 예측 가능한 테스트입니다. 반면, RUM(실제 사용자 모니터링 )은 사용자의 브라우저, 모바일 디바이스 또는 데스크톱의 환경을 측정합니다. 셀룰러 네트워크, 인터넷 라우팅 및 캐싱과 같은 마지막 마일 조건을 고려합니다. 합성과 달리 RUM은 일반적으로 시간이 지남에 따라 반복 가능한 측정값을 제공하지 않습니다.
모니터링은 프로덕션 환경에서 테스트하는 데 자주 사용됩니다. 잘 모니터링된 배포는 프로덕션 인시던트를 즉시 발견할 수 있도록 상태 및 성능에 대한 데이터를 스트리밍합니다. 지속적인 배포 릴리스 파이프라인과 결합된 모니터링은 새로운 변칙을 검색하고 프롬프트 완화를 허용합니다. 이렇게 하면 사전 프로덕션 환경에서는 예측할 수 없는 애플리케이션 동작에서 알 수 없는 미지의 개체를 검색할 수 있습니다.
효과적인 모니터링은 DevOps 팀이 신속하게 제공하고, 프로덕션에서 피드백을 받고, 고객 만족도, 획득 및 보존을 높일 수 있도록 하는 데 필수적입니다.
다음 단계
Azure Monitor의 모니터링 기능에 대해 자세히 알아보세요.
Application Insights를 설정하고 모니터링에 사용하는 방법을 알아봅니다.