애플리케이션 성능 모니터링(APM)과 옵저버빌리티는 소프트웨어 성능을 이해하고 개선하는 접근 방식으로 밀접하게 관련되어 있지만 동일하지는 않습니다. APM은 알려진 또는 예상되는 오류에 대해 대시보드 및 알림을 사용하는 옵저버빌리티 관행 중 하나의 단계입니다. 옵저버빌리티는 복잡한 시스템을 이해하고 생각지도 못했던 문제에 대한 답을 발견하는 데 도움이 되는 총체적이고 역동적인 관행입니다. 옵저버빌리티에는 여러 계층의 소프트웨어 아키텍처에서 데이터를 수집하고, 실시간으로 분석하고, 특정 신호에 맞게 데이터에 대한 질문을 하는 것이 포함됩니다. 이를 통해 어떤 문제에 집중해야 할지 알 수 있습니다.
APM은 사용자에게 대시보드와 알림을 제공하여 운영 환경에서 애플리케이션 성능 문제를 해결하는 데 도움을 줍니다. 이러한 인사이트는 일반적으로 알려진 오류 또는 예상되는 시스템 오류를 기반으로 하며, SRE 황금 신호와 관련이 있습니다. 사전에 정의된 문제가 발생할 때 알림을 제공하고 브레드크럼 및 문제 해결 방법에 대한 권장 사항을 제공합니다.
하지만 미리 정의되지 않았거나 예상하지 못했던 문제가 발생하면 어떻게 될까요? 오늘날의 소프트웨어 환경은 점점 더 분산되어 있고, 소프트웨어는 분산된 팀들에 의해 구축, 구현, 배포, 유지관리되고, 온프레미스, 클라우드 등 다양한 호스트에서 실행됩니다. 이러한 분산 시스템을 개념화하고, 문제를 해결하며, 개선하는 것은 중요한 문제입니다. 옵저버빌리티 관행은 팀에게 동적 시스템에서 "알 수 없는 미지의 요소"를 쿼리하고 이상 징후가 발생하는 대로 조사하여 문제를 해결할 수 있는 유연성을 제공합니다. 옵저버빌리티 플랫폼은 운영 데이터를 한곳에서 연관시켜 실시간으로 볼 수 있는 역량을 제공하여, 시스템 동작을 더 잘 이해하고 전체 시스템을 지속적으로 개선할 수 있도록 합니다.
애플리케이션 성능 모니터링의 필요성
IT 팀은 일반적으로 APM을 시스템 성능을 이해하고 개선하기 위한 모범 사례로 도입하여 애플리케이션이 느리거나 작동하지 않는 경우를 식별하고 사용자에게 영향을 미치기 전에 문제를 해결합니다. APM은 사전에 구성된 알림 및 시각화를 통해 응답 시간, 처리량, 오류 같은 메트릭을 이해하는 데 도움을 줍니다.
다음과 같은 툴, 제품 및 솔루션을 사용해 웹사이트, 모바일 앱, 서버, 네트워크, API, 클라우드 기반 서비스, 기타 기술 등 모든 것의 성능을 모니터링할 수 있습니다.
APM은 애플리케이션의 성능에 대한 개괄적인 뷰를 제공하며, 다음과 같이 미리 물어봐야 할 질문이나 조건에 적합합니다.
- "내 애플리케이션의 처리량은 얼마나 되지?"
- “특정 오류 한도를 초과하면 알림을 보내줘.”
- “컴퓨터 용량은 어떻게 되지?”
대부분의 현대적인 애플리케이션 아키텍처는 너무 복잡해서 APM으로 모니터링하고 관리하기 어렵습니다. 여러 데이터 소스와 다양한 텔레메트리 데이터 유형(메트릭뿐만 아니라)을 고려해야 하고, 로깅에 대해서도 생각해봐야 합니다. 각 런타임은 여러 다른 곳에서 로그를 방출할 가능성이 있으며, 애플리케이션의 맥락에서 그 데이터를 통합하고 평가할 방법이 필요합니다. 그리고 아키텍처에 지속적으로 더 많은 서비스와 마이크로서비스 구성 요소가 추가되고 있기 때문에, 사용자가 이러한 서비스 중 하나에 액세스해 오류가 발생하는 경우 여러 서비스에서 그 요청을 추적할 수 있어야 합니다. 또한 맥락을 잃지 않고 평균 복구 시간(MTTR) 같은 KPI를 개선할 수 있도록 모든 데이터를 한 곳에서 조사할 수 있어야 합니다.
여러 개의 런타임과 아키텍처가 있는 경우 문제의 근본 원인을 파악하려면, 보다 총체적이고 선제적인 접근 방식이 필요합니다. APM은 집계된 메트릭을 제공하지만 동적인 스택을 이해하려면 다른 인사이트도 필요합니다.
옵저빌리버티가 절대적으로 필요한 이유
옵저버빌리티는 시스템의 규모나 복잡성에 관계없이, 전체 시스템의 상태에 대한 심도 있는 기술적 인사이트를 제공합니다. 이러한 인사이트는 데브옵스 팀이 오늘날의 단편화된 분산 시스템들로 야기되는 도전 과제를 해결하는 데 도움이 됩니다. 옵저버빌리티는 이전에는 고려하지 못했던 데이터의 패턴과 연관성을 이해할 수 있는 역량도 제공합니다.
옵저버빌리티 플랫폼은 한 곳에서 소스와 서비스에서 자동으로 데이터를 수집하고, 전체 스택의 맥락에서 성능을 시각화하여 애플리케이션의 상태를 모니터링하고 적절한 조치를 취하는 데 필요한 인사이트를 제공합니다. 이러한 인사이트는 무슨 일이 일어났는지 뿐만 아니라 왜 일어났는지 이해하는 데 도움이 되며, 문제를 해결하는 데 필요한 모든 툴을 제공해 쉽게 조치를 취할 수 있도록 합니다.
뉴렐릭은 사용자가 어디에 주의를 집중해야 할지 정확히 알려주는 옵저버빌리티 플랫폼입니다. 뉴렐릭 Lookout에서는 색상이 밝을수록 변화가 심하고, 크기가 클수록 범위가 큽니다. 상관 관계와 비정상인 이력을 세부적으로 살펴보고, 전체 시스템에 미치는 영향을 확인할 수 있습니다.
옵저버빌리티 플랫폼을 평가할 때 다음 기능을 지원하는지 확인해야 합니다.
- 개방형 계측 에이전트를 사용해 오픈소스로부터 또는 데이터를 생성하는 공급업체의 엔터티에 종속되지 않고 텔레메트리 데이터를 수집할 수 있어야 합니다. 텔레메트리 데이터 예로는 메트릭, 이벤트, 로그, 트레이스(줄여서 MELT)를 들 수 있고, 엔터티의 예로는 서비스, 호스트, 애플리케이션, 컨테이너 등이 있습니다.
- 최종 사용자 경험을 최적화하기 위해 전체 스택을 시각화, 탐색, 디버그, 개선할 수 있어야 합니다.
- 높은 카디널리티에서 상호 연관 및 맥락을 위해 수집된 엄청난 양의 원시 텔레메트리 데이터를 분석하여, 발생하는 모든 패턴과 이상 징후를 이해할 수 있도록 해주어야 합니다.
- AIOps 관행의 일부로 인공 지능과 머신 러닝을 활용해 알림 노이즈 감소, 거짓 알림 제거, 인시던트의 상호 연관, 이상 징후 자동 감지가 가능해야 합니다. 이러한 기능들은 인시던트를 더 빠르게 찾고, 진단하여, 해결하는 데 도움이 됩니다. 가장 개선이 필요한 영역을 보여주는 인사이트는 앞으로 개발자의 노력을 어디에 집중해야 할지 결정하는 데 도움이 되며, 앱의 최종 사용자에게 큰 영향을 미칠 수 있습니다.
APM과 옵저버빌리티는 어떻게 다를까요?
앞서 언급했듯이 APM과 옵저버빌리티는 관련이 있는 개념이지만 중점 영역이 다릅니다.
APM은 이름에서 알 수 있듯이 주로 애플리케이션의 성능을 모니터링하고 관리하는 데 중점을 둡니다. APM은 응답 시간, 오류율, 트랜잭션 트레이스처럼 애플리케이션의 성능과 관련된 특정 메트릭을 추적합니다. APM은 애플리케이션의 성능과 사용자 경험에 영향을 미치는 문제를 식별하고 해결하도록 설계되었습니다.
반면, 옵저버빌리티는 더 광범위한 관점을 취해 복잡한 시스템을 이해하고 문제를 효과적으로 해결하는 역량에 중점을 둡니다. 옵저버빌리티에는 APM 메트릭이 포함되어 있지만, 로그, 이벤트 및 트레이스 같은 다양한 데이터 유형으로도 확장됩니다. 옵저버빌리티는 시스템 동작에 대한 전반적인 이해를 높여 전체 스택의 문제를 보다 쉽게 식별하고 해결할 수 있도록 합니다.
본질적으로 APM은 옵저버빌리티의 하위 집합으로 하나의 섹션(애플리케이션 성능)에 중점을 두고, 옵저버빌리티는 전체 시스템 동작에 중점을 둡니다. APM 툴에서는 각 애플리케이션의 모니터링 메트릭을 최적화하는 것이 중요하지만, 옵저버빌리티 툴은 문제 해결 및 복잡한 시스템의 유지 관리를 위해 더 넓은 맥락을 제공합니다.
옵저버빌리티와 모니터링의 주요 차이점은 무엇일까요?
모니터링은 옵저버빌리티의 중요한 일부이지만, 이 두 가지는 그 범위와 목적이 다릅니다. 모니터링은 주로 사전 정의된 메트릭 데이터를 추적하고 수집하며, 특정 성능 메트릭과 알려진 문제에 초점을 맞춥니다. 옵저버빌리티는 복잡한 시스템을 탐색하고 이해하며 진단하는 역량을 포함하며 보다 광범위한 관점을 취합니다. 옵저버빌리티는 다양한 유형의 데이터를 수집하여 전체 시스템의 동작에 대한 인사이트에서 파악하고 이전에는 알려지지 않았던 문제점을 발견하는 데 초점을 맞춥니다.
APM과 로그 모니터링은 어떻게 다를까요?
APM과 로그 모니터링은 모두 소프트웨어 애플리케이션을 유지하고 최적화하는 데 중요한 역할을 하지만, 애플리케이션 수명주기의 다른 측면에 중점을 둡니다. APM은 애플리케이션의 전반적인 성능에 초점을 맞추는 반면, 로그 모니터링은 디버깅, 문제 해결 및 보안 목적으로 로그 데이터를 수집하고 분석하는 데 중점을 둡니다.
APM은 옵저버빌리티 관행의 일부입니다.
오늘날의 소프트웨어 스택이 애플리케이션 위주라는 사실을 고려하면, 강력한 APM 없이는 옵션저버빌리티를 확보할 수 없습니다.
이렇게 생각할 수 있습니다. 옵저버빌리티(명사)는 복잡한 시스템을 얼마나 잘 이해할 수 있는지에 대한 접근 방식입니다.애플리케이션 성능 모니터링(동사)은 이 접근 방식을 돕기 위해 취하는 조치입니다. 옵저버빌리티로 인해 모니터링의 필요성이 사라지지는 않습니다. APM은 옵저버빌리티를 확보하는 데 사용되는 기법 중 하나입니다.
APM이란? 섹션에서 애플리케이션 성능 모니터링에 대해 자세히 알아볼 수 있습니다. 옵저버빌리티에 대해 더 자세히 알아보려면 옵저버빌리티란?섹션을 참조하십시오. APM을 사용하는 고객들의 성공 사례를 확인해 보십시오.
지금 뉴렐릭으로 APM과 옵저버빌리티를 시작하세요.
APM와 옵저버빌리티에 대해 더 자세히 알 수 있는 가장 좋은 방법은 옵저버빌리티 솔루션을 직접 경험해보는 것입니다.
- 무료 뉴렐릭 계정을 신청하십시오. 무료 계정에는 매월 100GB의 무료 데이터 수집과 1명의 무료 전체 액세스 사용자 및 무제한 무료 기본 사용자가 포함됩니다.
- APM 문서와 옵저버빌리티 문서를 확인해보십시오.
이 블로그에 표현된 견해는 저자의 견해이며 반드시 New Relic의 견해를 반영하는 것은 아닙니다. 저자가 제공하는 모든 솔루션은 환경에 따라 다르며 New Relic에서 제공하는 상용 솔루션이나 지원의 일부가 아닙니다. 이 블로그 게시물과 관련된 질문 및 지원이 필요한 경우 Explorers Hub(discuss.newrelic.com)에서만 참여하십시오. 이 블로그에는 타사 사이트의 콘텐츠에 대한 링크가 포함될 수 있습니다. 이러한 링크를 제공함으로써 New Relic은 해당 사이트에서 사용할 수 있는 정보, 보기 또는 제품을 채택, 보증, 승인 또는 보증하지 않습니다.