옵저버빌리티를 간단하게 설명하자면, 출력으로 시스템을 얼마나 잘 이해할 수 있는지입니다. 제어 이론에서, 옵저버빌리티는 엔지니어가 시스템의 외부 출력에 대한 지식을 통해 시스템의 내부 상태를 추론할 수 있는 방법으로 정의됩니다.

옵저버빌리티는 엔지니어가 생성된 데이터를 기반으로 시스템을 분석하고 최적화할 수 있도록 하는 선제적인 접근 방식을 제공합니다. 옵저버빌리티 플랫폼은 로그, 메트릭, 트레이스를 수집, 저장, 분석 및 시각화하는 중앙화된 방식을 제공하여, 소프트웨어 시스템의 모든 운영 데이터에 대한 연결된 실시간 뷰는 물론 애플리케이션과 인프라에 대해 질문을 하여 시스템의 동작을 이해하고 시스템 성능을 개선하는 데 필요한 답변을 얻을 수 있는 유연성을 제공합니다.

 

현대의 디지털 비즈니스에 옵저버빌리티가 중요한 이유

현대의 시스템들은 쿠버네티스 클러스터와 클라우드 인프라에서 실행되는 복잡한 오픈소스 클라우드 기반 마이크로서비스입니다. 이러한 서비스들은 분산된 팀과 구성 요소들을 통해 그 어느 때보다 빠르게 개발 및 배포되고 있습니다. 

오늘날의 조직들은 데브옵스 팀, 연속 배포, 애자일 개발에 의존해 전체 소프트웨어 배포 프로세스를 그 어느 때보다 빠르게 만들고 있기 때문에, 문제가 발생할 때 이를 감지하기가 더 어렵습니다.

메인프레임에 기반해 정적으로 운영하던 시절에는 문제가 발생했을 때 이유를 이해하기가 쉬웠고, 알려진 매개변수를 기반으로 사전에 설정된 정적 알림을 통해 운영자에게 문제가 발생했음을 알렸습니다. 이러한 시스템들에서 발생하는 장애는 모두 유사했기 때문에 그것으로 충분했습니다.

시스템이 복잡해지면서 모니터링 툴로 소프트웨어 성능에 어떤 일이 일어나고 있는지를 조명하려고 했습니다. 모니터링 데이터와 시계열 분석을 통해 애플리케이션 성능을 추적할 수 있을 것이었기 때문이었고, 이는 관리할 수 있는 수준이었습니다.

 

2023년 옵저버빌리티 전망
Observability Forecast 2023
옵저버빌리티의 현재와 미래에 대한 인사이트를 확보하세요.
보고서 전문 보기 보고서 전문 보기

오늘날에는 시스템들이 이와 비할데 없이 복잡합니다. 장애의 가능한 원인이 너무 다양하기 때문에, 좌절감을 느끼며 화면을 응시하노라면 그 가능성이 무한하다고 느껴질 수 있습니다. 서버가 다운되었는가? 클라우드 제공업체 서비스가 중단되었는가? 누군가 엔드유저의 행동에 영향을 미치는 새로운 코드를 푸시했는가?

옵저버빌리티 솔루션이 없다면, 이러한 복잡한 분산 시스템에서 작업할 때, 체인의 어느 부분이 끊어졌는지를 발견해낸다는 것이 거의 불가능합니다. 이제 마이크로서비스 아키텍처가 보편화되고 책임이 여러 팀들에 분산되어 있기 때문에 별도의 앱 소유자가 없어 많은 팀들이 관여를 해야 합니다. 팀은 직접적으로 소유하지 않은 애플리케이션 영역들을 이해하고, 분석하고, 문제를 해결해야 합니다. 이제 분산 추적 같은 현대적인 툴이 필요합니다. 이러한 툴로 분산 시스템의 모든 부분에서 요청과 병목 지점을 추적할 수 있습니다.

조직 내에 옵저버빌리티를 구현하면 확실한 비즈니스 혜택을 얻을 수 있습니다. 2023년 옵저버빌리티 전망 설문 조사에서, 5명 중 2명(40%)의 응답자들은 옵저버빌리티가 시스템의 업타임과 안정성을 향상해준다고 답했습니다. 응답자 중 절반 이상은 옵저버빌리티 관행을 통해 연간 총 50만 달러에 달하는 가치를 얻었다고 답했습니다. 수치를 분석해 본 결과, 옵저버빌리티 지출에 대해 모든 응답자의 ROI 평균값은 100%였습니다.

옵저버빌리티와 모니터링은 어떤 차이가 있을까요?

두 가지의 차이점을 이해하는 것은 ‘전통적인 모니터링’ 시스템의 허점을 이해하는 것부터 시작됩니다. 

기존 모니터링의 문제점

기존 모니터링에서는 ‘알고 있는 알려지지 않은 문제’만 추적할 수 있습니다. 이는 마이크로서비스와 분산 시스템이 존재하는 복잡한 세상에서는 도움이 되지 않습니다. 기존 모니터링은 사전에 물어봐야 하는 사항만 추적합니다. (예: "내 애플리케이션의 처리량은 얼마인가?", "컴퓨팅 용량은 어떤가?", "특정 오류 한도를 초과하면 알림을 보내주세요.")

옵저버빌리티가 핵심

옵저버빌리티는 이전에 생각지도 못했던 패턴을 이해할 수 있는 유연성을 제공합니다. 바로 알고 있지 않은 알려지지 않은 문제입니다.

무언가 잘못되었다는 것을 아는 것 뿐만 아니라 그 이유를 이해하는 역량을 확보할 수 있습니다.

옵저버빌리티와 모니터링

분명히 말하자면, 옵저버빌리티가 있다고 모니터링이 필요하지 않은 것은 아닙니다. 모니터링은 옵저버빌리티를 달성하는 데 사용되는 기법 중 하나가 되었습니다. 

이렇게 생각할 수 있습니다. 옵저버빌리티(명사)는 복잡한 시스템을 얼마나 잘 이해할 수 있는지에 대한 접근 방식입니다. 모니터링(동사)은 이 접근 방식을 돕기 위해 취하는 조치입니다.

더 효과적인 옵저버빌리티는 어떤 요소들로 구성될까요?

현대 시스템에서 옵저버빌리티는 메트릭, 이벤트, 로그, 트레이스(합쳐서 MELT), 이 네 가지 기본 요소로 구성됩니다. 그러나 이것만으로는 더 나은 소프트웨어 시스템을 구축하고 운영하는 데 필요한 인사이트를 얻을 수 없습니다. 다음은 옵저버빌리티를 최대한 활용하는 데 도움이 되는 중점 영역입니다.

개방형 계측은 소프트웨어 애플리케이션에서 데이터의 흐름을 추적하고 측정하기 위해 코드(에이전트)를 사용합니다. 개방형 계측은 텔레메트리 데이터를 생성하는 각 공급업체의 엔터티에 묶이지 않고 그 데이터를 수집하는 것을 의미합니다. 오픈텔레메트리(OpenTelemetry)와 프로메테우스(Prometheus) 처럼 공급업체에 종속되지 않는 옵저버빌리티 프레임워크가 오픈소스나 텔레메트리 데이터 소스의 예입니다.

상호 연관과 문맥

특히 엄청난 양의 대규모 엔터프라이즈 원시 텔레메트리 데이터가 생성되는 애플리케이션의 경우, 더 큰 그림을 이해하는 것이 중요합니다. 수집된 텔레메트리 데이터는 상호 연관시켜 문맥을 분석해야 발생하는 모든 패턴과 이상 현상을 이해할 수 있습니다.

프로그래머빌리티

조직은 고유한 비즈니스 목표를 기반으로 한 맞춤형 애플리케이션을 사용해 자체적인 문맥을 생성하고 큐레이션할 수 있는 유연성이 필요합니다.

AIOps 툴

현대의 인프라를 상시 사용할 수 있게 만들려면 더 신속하게 인시던트에 대응해야 합니다. AIOps 솔루션은 머신 러닝 모델을 사용하여 인시던트 데이터의 상호 연관, 집계 및 우선순위 지정 같은 IT 운영 프로세스를 자동화합니다. 이러한 툴은 허위 알림을 제거하고 문제를 선제적으로 감지하며 평균 해결 시간(MTTR)을 가속화하는 데 도움이 됩니다.

그렇다면 옵저버빌리티 툴은 어떤 가치가 있을까요?

고객 경험 향상

옵저버빌리티 툴은 디지털 기업의 복잡성이 증가하더라도 엔지니어와 개발자가 더 나은 고객 경험을 구축할 수 있도록 지원합니다. 옵저버빌리티를 통해 모든 텔레메트리 데이터 유형을 수집 및 탐색하고 상호 연관시키며 알림을 설정해 사용자 행동을 이해하며 사용자에게 더 만족스러운 디지털 경험을 제공할 수 있습니다. 이는 더 높은 구매 전환율, 고객 유지율, 브랜드 충성도로 연결됩니다.

다운타임 및 MTTR 개선

옵저버빌리티는 또한 보다 쉽게 운영 효율성을 높이고 혁신과 성장을 촉진할 수 있도록 합니다. 예를 들어, 팀은 옵저버빌리티 플랫폼을 사용하여 발생한 중요한 인시던트를 이해하고 재발을 미연에 방지할 수 있습니다.

팀 효율성과 혁신 향상

새 빌드를 출시하는 경우, 애플리케이션 성능을 확인한 다음 오류율이 급증하거나 애플리케이션 지연 시간이 증가하는 이유를 자세히 알아볼 수 있습니다. 어떤 특정 노드에 문제가 있는지 확인할 수 있습니다.

그 밖에도 수많은 혜택이 있지만, 고객들이 말하는 주요 혜택은 다음과 같습니다.

  • 운영 데이터에 대한 단일 데이터 소스
  • 입증된 업타임과 성능
  • 디지털 비즈니스 성능의 변화를 실시간으로 확인
  • 팀 간 협업을 향상하여 문제를 보다 빠르게 해결
  • 혁신의 문화
  • 운영 효율성을 높여 대규모로 고품질 소프트웨어를 구축하고 출시 시간 단축
  • 더 나은 데이터 기반 비즈니스 결정을 내리고 투자를 최적화하기 위한 구체적인 세부 정보 확보

옵저버빌리티를 도입하기 위한 일반적인 촉매제 

2023년 옵저버빌리티 전망 설문 조사에 참여한 1,700명의 응답자 중 거의 절반(49%)이 옵저버빌리티의 필요성을 추진하는 핵심 전략 또는 추세로 보안, 거버넌스, 위험 및 규정 준수에 대한 관심 증가를 꼽았습니다.

기타 주요 동인으로는 비즈니스 앱의 워크플로우 통합(38%), 인공 지능(AI) 기술 도입(38%), 클라우드 네이티브 애플리케이션 아키텍처 개발(38%), 멀티 클라우드 환경으로의 마이그레이션(37%), 고객 경험 관리에 대한 중점 증가(35%)를 들었습니다.

성숙한 옵저버빌리티 관행의 특징 15가지를 모두 구현했다고 대답한 응답자는 1%에 불과했습니다.

  • 소프트웨어 배포에서는 CI/CD 방식 사용(44%)
  • 자동화 툴을 사용하여 인프라 프로비저닝 및 조율(43%)
  • 즉각적인 데이터 쿼리 가능(35%)
  • 인시던트 대응의 일부 자동화(34%)
  • 팀 전체가 사용할 수 있는 단일 화면으로 텔레메트리(메트릭, 이벤트, 로그, 트레이스) 통합(31%)
  • 텔레메트리 데이터에 이벤트와 인시던트가 비즈니스에 미치는 영향을 수치화하는 비즈니스 컨텍스트 포함(27%)
  • 텔레메트리 데이터 및 시각화에 대한 사용자의 광범위한 액세스(27%)
  • 계측 자동화(25%)
  • 전체 기술 스택에서 텔레메트리 수집(24%)
  • 카디널리티가 높은 데이터 인제스트(21%)

가장 일반적인 옵저버빌리티 사용 사례

사이트 안정성 엔지니어링(SRE) 팀과 IT 운영 팀은 사람들이 매일 사용하는 앱인 복잡한 시스템의 가동과 실행을 담당합니다. 그러나 소프트웨어 개발 수명주기 전반에서 옵저버빌리티는 모두에게 관심의 대상입니다.

소프트웨어 엔지니어링 팀은 옵저버빌리티를 사용해 언제, 그리고 오류가 발생했는지를 포함해 소프트웨어 시스템의 상태, 성능 및 상태를 이해합니다. 엔지니어는 이벤트, 메트릭, 로그, 트레이스 같은 시스템의 출력을 살펴보면서 그 시스템이 얼마나 잘 작동하는지 확인할 수 있습니다.

소규모 팀과 옵저버빌리티

소규모 팀은 특히 리소스가 제한된 경우 옵저버빌리티 툴로부터 상당한 이점을 얻을 수 있습니다. 

각 구성원들이 여러 감투를 쓰는 소규모 다기능 팀의 경우, 시스템 성능을 모니터링하고 분석하는 역량이 매우 중요합니다.

옵저버빌리티 툴은 애플리케이션과 인프라의 상태 및 동작에 대한 포괄적인 뷰를 제공하기 때문에 팀이 문제를 신속하게 식별하고 해결할 수 있습니다. 소규모 팀에는 스택의 각 구성 요소를 맡을 전담 인력이 부족할 수 있으므로 이는 특히 중요합니다. 

데이터 수집을 자동화하고 실시간 인사이트를 제공함으로써, 옵저버빌리티 툴은 팀 구성원이 보다 효율적으로 노력을 집중하고 개별 서버를 검토하고 디버깅하는 데 소요되는 시간을 줄일 수 있도록 합니다. 

이것이 실제로 어떻게 작동하는지 보고 싶다면 실제 뉴렐릭 고객이 어떻게 뉴렐릭을 사용해 효율성을 크게 향상했는지 확인해보시기 바랍니다.

옵저버빌리티 툴은 소규모 팀이 생산성을 극대화하고 문제 해결을 간소화하며 궁극적으로 제한된 리소스에 부담을 주지 않으면서 보다 안정적이고 대응력이 뛰어난 사용자 경험을 제공할 수 있도록 지원합니다.

옵저버빌리티와 데브옵스(DevOps)

마이크로서비스를 통해 배포 빈도가 크게 증가했습니다. 팀이 각 환경에서 일어날 수 있는 모든 장애 상황을 미리 정의하기에는 현실적으로 너무나 많은 변수가 존재합니다. 단지 애플리케이션 코드에만 있는 것이 아니라, 이를 지원하는 인프라, 소비자 행동 및 수요에도 변화가 생길 수 있습니다.

옵저버빌리티는 데브옵스 팀이 운영 환경에서 시스템을 테스트하고, 질문하고, 이전에는 예측할 수 없었던 문제를 조사하는 데 필요한 유연성을 제공합니다.

데브옵스 팀에 도움을 주는 옵저버빌리티

  • 명확한 서비스 수준 목표(SLO)를 설정하고 측정 가능한 성공을 위해 힘을 합치고 준비하는 데 필요한 계측 방법을 마련할 수 있습니다.
  • 팀 대시보드를 중심으로 팀이 한 데 모여, 대응 조치를 조율하고, 모든 변경 사항의 효과를 측정하여 데브옵스 관행을 향상할 수 있습니다.
  • 진행 상황을 검토하고, 애플리케이션의 종속성과 인프라 리소스를 분석하며, 소프트웨어에 대한 사용자 경험을 지속적으로 개선할 방법을 찾을 수 있습니다.

옵저버빌리티 요약 정보

옵저버빌리티는 소프트웨어 시스템의 문제를 효과적으로 해결하고 최적화하기 위한 선제적인 접근 방식을 제공합니다. 소프트웨어 시스템 내의 모든 운영 데이터에 대해 상호 연관된 실시간 관점을 제공하여 애플리케이션과 인프라에 관해 즉각적으로 질문할 수 있도록 합니다. 

분산된 여러 팀들이 개발하는 복잡한 시스템들이 존재하는 현대에는 옵저버빌리티가 필수적입니다. 옵저버빌리티는 엔지니어가 무엇이 잘못되었는지 뿐만 아니라 그 이유도 이해할 수 있도록 한다는 점에서 기존 모니터링을 뛰어 넘습니다. 

이는 텔레메트리 데이터를 이해하기 위한 개방형 계측, 상호 연관, 문맥 분석, 프로그래머빌리티 및 AIOps 툴을 포함합니다. 옵저버빌리티 툴은 고객 경험을 향상하고, 다운 타임을 줄이고, 팀 효율성을 개선하고, 모든 팀에서 혁신 문화를 조성해줍니다.