관찰성이란?

관찰성은 외부 출력을 기반으로 시스템의 모든 상태를 설명하는 소프트웨어 기반 기능입니다.

시스템이 더 강력하고 뛰어난 기능을 제공할수록 더욱 복잡해질 수 있습니다. 그러나 이렇게 복잡성이 커지면 예측할 수 없는 가능성이 높아집니다. 장애, 성능 병목 현상, 버그 등이 나타나고 이러한 발생의 근본 원인을 파악하는 것은 항상 단순한 문제가 아닙니다. 복잡한 현대 시스템에서는 예기치 않은 장애에 대한 가능성이 높아지는 것은 물론 가능한 장애 모드의 수도 증가합니다. 이러한 추이에 대응하기 위해 IT, 개발 및 운영 팀은 시스템 자체를 확인할 수 있는 모니터링 도구를 구현하기 시작했습니다.

그러나 발전은 계속 이어지고 있으며 오늘날 시스템의 복잡성은 기존 모니터링 기능을 능가하고 있습니다. 현재 알려지지 않은 장애로부터 시스템을 보호하기 위한 입증된 전략은 모니터링이 아닙니다. 관찰성과 함께 시스템을 더 면밀하게 모니터링 가능하도록 구성하는 것입니다.

관찰성과 모니터링 간에는 미묘한 차이가 있지만 서로 구분하는 것이 중요합니다. 각각의 기능과 목표를 검토하면 팀에서 이러한 차이점을 제대로 이해하고 관찰성 전략을 최대한 활용할 수 있습니다.

모니터링 전략으로 사용자는 미리 정의된 일련의 메트릭 및 로그를 이용하여 시스템 상태를 주시하고 해석할 수 있습니다. 즉, 알려진 장애 모드 세트를 탐지할 수 있는 기능을 제공합니다. 모니터링은 추세를 분석하고 대시보드를 구축하며, 문제 발생 시 대응 팀에 경보를 보내는 데 중요합니다. 애플리케이션 작동 방식, 개발 상태 및 활용 방법에 대한 정보를 제시합니다. 그러나 모니터링은 잠재적인 장애 모드에 대한 명확한 이해에 따라 결정됩니다. “알려진 무지”(이미 알고 있는 위험)를 식별하는 데 도움이 될 수 있지만, 알려지지 않은 무지(전혀 예상치 못한 위험, 고려되지 않았으므로 완전히 모니터링할 수 없는 위험)를 다룰 때에는 유용하지 않습니다.

대부분의 복잡한 시스템에서 알려지지 않은 무지는 비교적 대비하기 쉬운 알려진 무지보다 훨씬 많기 때문에 문제가 됩니다. 더 심각한 점은 이러한 알려지지 않은 무지의 대부분이 사각지대로 알려진 곳에서 발생하는 경우가 많아 각각을 식별하고 계획하기란 막대한 노력이 소모된다는 사실입니다. 시스템을 위험하게 만드는 것은 나타날 가능성이 있으면서 알려지지 않은 무지의 절대적인 양입니다. 따라서 이러한 문제가 무엇인지 또는 문제를 모니터링하는 방법을 예측할 수 없으므로 대신 시스템 자체에서 가능한 한 많은 컨텍스트를 지속적으로 수집해야 합니다. 관찰성은 바로 이러한 컨텍스트를 제공합니다. 관찰성은 상태 점검을 하지 않고 소프트웨어 자체가 어떻게 작동하는지 심층적으로 분석합니다. 외부 출력을 기반으로 시스템의 내부 상태에 대한 이해도를 측정하며, 통찰력을 얻고 모니터링을 지원하는 도구를 사용합니다.

모니터링은 어떤 것을 관찰한 후에 이어지는 단계입니다. 관찰성이 없으면 모니터링은 불가능합니다.

소프트웨어는 시간이 지날수록 점점 복잡해지고 있습니다. 마이크로서비스, 다중 언어 지속성 및 대형 컨테이너를 복잡하고 더 작은 시스템으로 계속 분해하는 컨테이너와 같은 인프라에는 여러 패턴이 결합되어 있습니다.

동시에 제품이 다양해지면서 조직에서 새롭고 혁신적인 작업을 수행할 수 있는 플랫폼과 방법이 많이 있습니다. 환경도 갈수록 더 복잡해지고 있으며 모든 조직에서 증가하는 문제를 해결하지 못하고 있습니다. 옵저버블 시스템 없이는 문제 원인을 파악할 수 없으며 표준 시작점이 없습니다.

신뢰성

관찰성의 기본 목표는 신뢰성입니다. 고객 요구에 따라 적절하고 안정적으로 작동하는 효과적인 IT 인프라는 성능 측정이 필요합니다. 관찰성 도구는 사용자 행동, 시스템 가용성, 용량 및 네트워크 속도 등의 정보를 제공하여 모든 것을 최적으로 수행할 수 있습니다.

보안 및 준수

규정을 준수해야 하는 조직은 컴퓨팅 환경을 관찰할 수 있어야 합니다. 이벤트 로그를 통한 관찰성으로 완전한 가시성을 제공받아 조직은 잠재적인 침입자, 보안 위협, 브루트 포스 공격 시도 또는 가능한 DDoS 공격을 탐지할 수 있습니다.

수익 향상

이벤트를 분석하는 기능은 행동과 관련된 유익한 정보와 애플리케이션 형식, 속도 등과 같은 변수에 따라 받을 수 있는 영향에 대한 중요한 지식을 제공합니다. 이 모든 데이터는 수익을 창출하고 신규 고객을 유치하기 위해 네트워크 및 애플리케이션 최적화에 대한 실행 가능 통찰력으로 분석될 수 있습니다.

관찰성은 로그, 메트릭, 추적의 세 가지 핵심 요소로 나누어집니다.

로그

시스템에서 발생한 이벤트의 기록입니다. 로그는 자동으로 생성되고 타임스탬프가 기록되며, 수정할 수 없는 파일에 작성됩니다. 시스템 상태 및 이벤트 발생 시기에 대한 메타데이터를 비롯하여 이벤트에 포함된 완전한 기록을 제공합니다. 이러한 데이터는 일반 텍스트로 작성되거나 특정 형식으로 구성될 수 있습니다.

메트릭

메트릭에는 시간이 지나면서 측정된 수치 데이터가 표시됩니다. 이벤트 로그가 특정 이벤트에 대한 정보를 수집하는 동안 전체 시스템 성능에서 파생된 값이 메트릭에 측정됩니다. 일반적으로 애플리케이션 SLI에 대한 정보를 제공합니다.

추적

네트워크에서 발생하는 인과 관계 이벤트의 기록입니다. 이벤트는 단일 애플리케이션 내에서 발생할 필요는 없지만 동일한 요청 흐름에 속해야 합니다. 추적은 요청 이행에 관한 별도의 시스템에서 수집된 이벤트 로그 목록으로 형식을 지정할 수 있습니다.

관찰성의 세 가지 핵심 요소는 단독으로 결론을 도출하기 어려운 데이터 소스를 결합하는 데 도움이 됩니다. 이는 본질적으로 관찰성이 다음과 같은 두 요인에 의존하기 때문입니다.

  • 런타임 컨텍스트가 다량 포함된 상위 컨텍스트 원격 측정 데이터.
  • 코드를 배포하지 않고도 새로운 통찰력을 얻기 위해 해당 데이터와 반복적으로 상호작용하는 기능.

이 두 가지 요소가 충족되면 비즈니스는 시스템 및 애플리케이션 관찰성을 개선하는 데 필요한 원시 리소스를 사용할 수 있습니다.

관찰성은 실현할 수 있는 만큼만 효과적입니다. 팀에 실행 가능한 리소스가 부족하면 전 세계에 있는 모든 상황별 원격 측정 데이터는 무용지물이 됩니다.

컨텍스트 및 토폴로지

컨텍스트 및 토폴로지는 상호 연결된 구성요소가 많이 포함된 동적 멀티 클라우드 환경에서 관계를 파악할 수 있는 방식으로 계측하는 것을 나타냅니다. 컨텍스트 메타데이터는 실시간 토폴로지 매핑을 형성할 수 있으며 스택은 물론 서비스, 프로세스 및 호스트 전체에서도 인과 관계 종속성에 대한 이해력을 높여 줍니다.

지속적인 자동화

IT에 쏟는 노력은 수동 구성으로부터 모든 시스템 구성요소에 대한 자동 검색, 계측 및 기준 설정을 통해 전환됩니다. 지속적인 자동화는 중요한 문제에 대한 이해를 우선시하는 혁신 프로젝트를 추가합니다. 관찰성은 확장 가능하므로 제한된 팀이 더 적은 리소스로 더 많은 작업을 수행할 수 있습니다.

AI 지원

코드 수준 가시성과 함께 철저한 결함 트리 분석은 시행착오, 추측 또는 상관관계에 의존하지 않고 예외 사항의 근본 원인을 식별하는 기능을 제공합니다. 인과 관계 기반 AI는 비정상 상태를 탐지하여 알려지지 않은 항목을 발견합니다.

개방형 에코시스템

관찰성을 확장하여 외부 데이터 소스를 포함하는 것이 좋습니다. 대규모 관찰성에 필요한 토폴로지 매핑, 자동 검색 및 계측, 실행 가능한 답변을 제공할 수 있습니다.

비즈니스에 따라 확장되는 역량

ServiceNow를 사용하여 문제가 발생하기 전에 문제를 예측할 수 있습니다.