관측성이란?

URL 복사

관측성은 시스템 또는 애플리케이션의 출력, 로그, 성능 메트릭을 검사하여 시스템 또는 애플리케이션의 상태를 모니터링, 측정, 파악하는 기능을 뜻합니다. 현대적인 소프트웨어 시스템과 클라우드 컴퓨팅에서 관측성은 애플리케이션과 인프라의 신뢰성, 성능, 보안을 보장하는 데 있어 그 역할이 더욱 중요해지고 있습니다.

소프트웨어 시스템의 복잡성이 증가하고, 마이크로서비스가 광범위하게 채택되고, 분산형 아키텍처에 대한 의존도가 증가하면서 관측성의 중요성이 커졌습니다.

관측성은 기존 모니터링 시스템을 흡수하고 확장하며 팀이 문제의 근본 원인을 파악하는 데 도움을 줍니다. 이를 통해 이해관계자는 애플리케이션과 비즈니스에 관련한 전망과 잠재적인 문제 예측을 비롯한 질문에 답할 수 있습니다. 다양한 툴과 기술이 사용되고 있으며, 이로 인해 가능한 배포 옵션의 대규모 매트릭스가 형성됩니다. 이는 구조적인 결과를 초래하므로, 팀은 조직에 적합한 방식으로 관측성 시스템을 설정하는 방법을 파악해야 합니다.  

인공지능과 머신 러닝

인공지능(AI)머신 러닝(ML)은 자동화된 이상 징후 감지, 근본 원인 분석, 예측적 인사이트를 제공하기 위해 관측성 플랫폼에서 점차적으로 많이 사용되고 있습니다. 이러한 기술은 복잡한 시스템에서 문제를 식별하고 해결하기 위해 필요한 시간과 노력을 줄이는 데 도움이 됩니다.

하이브리드 및 멀티클라우드 환경

조직에서 점점 더 하이브리드 클라우드와 멀티클라우드 전략을 채택함에 따라 애플리케이션과 서비스가 배포되는 위치와 관계없이 전체 인프라를 볼 수 있는 기능을 제공하는 관측성 툴이 필요합니다.

엣지 기기

미래에 엣지 기기, 사물인터넷(IoT) 기기 또는 기타 로컬 컴퓨팅 기기가 증가하면 이러한 환경을 모니터링하고 관리하는 데 있어 새로운 과제가 발생하게 됩니다. 이를 해결하기 위해서는 실시간 인사이트와 빠른 응답 시간을 제공해야 합니다. 여기에는 데이터 수집을 위한 경량 에이전트를 생성하고, 엣지에 적합한 데이터 형식과 프로토콜을 사용하며, 강력한 보안 및 개인정보 보호 기능을 갖춘 분산형 데이터 처리 및 분석 기술을 통합하는 작업 등이 포함될 수 있습니다.

DevOps의 관측성

클라우드 네이티브 애플리케이션의 신뢰성과 성능을 보장하기 위해 관측성이 점점 더 중요해짐에 따라 DevOps 프로세스에서의 관측성에 대한 관심이 높아지고 있습니다. 여기에는 관측성 툴을 DevOps 툴체인에 통합하는 것은 물론 관측성 데이터를 사용하여 애플리케이션 성능과 신뢰성을 지속적으로 개선하는 것도 포함됩니다.

오픈소스 관측성 툴의 사용 증가

Grafana, Jaeger, Kafka, OpenTelemetry, Prometheus와 같은 오픈소스 관측성 툴은 최근 몇 년간 더욱 인기가 높아지고 있으며 이러한 추세는 계속될 것으로 예상됩니다. 이러한 추세의 부분적인 요인으로는 독점 관측성 툴과 관련된 비용을 줄이고자 하는 욕구와, 오픈소스 툴이 제공하는 유연성과 사용자 정의 옵션을 들 수 있습니다.

클라우드 네이티브 인프라 채택 증가

클라우드 네이티브 인프라를 채택하는 조직이 증가함에 따라 이러한 환경을 위해 특별히 설계된 관측성 툴에 대한 필요성이 증가할 것입니다. 클라우드 네이티브 애플리케이션과 인프라에서 생성되는 데이터의 양이 증가하면서 ML과 AI는 클라우드 네이티브 관측성 영역에서 그 중요성이 더욱 커질 것입니다. 이러한 기술을 사용하면 최종 사용자에게 영향을 미치기 전에 이상 징후와 성능 문제를 식별할 수 있으므로 조직에서 중대한 문제가 발생하기 전에 사전 예방적으로 해결할 수 있습니다.

신뢰성 개선

문제가 확대되기 전에 감지하고 해결하여 다운타임을 최소화하고 사용자가 시스템을 계속 사용할 수 있도록 보장합니다.

효율적인 트러블슈팅

시스템 동작에 대한 심층적인 인사이트를 활용하여 문제의 근본 원인을 신속하게 파악하고 효율적으로 해결합니다.

성능 최적화

시스템 병목 현상이나 활용률이 낮은 리소스와 같은 최적화 영역을 식별하여 리소스를 더욱 효율적으로 할당하고 성능을 개선할 수 있습니다.

데이터 기반 의사 결정

시스템 성능과 동작에 대한 최신 정보를 수신하여 데이터에 기반한 의사 결정을 내리고 지속적으로 개선하도록 지원합니다.

관측성과 모니터링은 서로 관련된 개념이지만, 주요한 차이점이 있습니다. 관측성은 시스템 동작을 외부에서 조사하여 시스템에 대한 질문을 할 수 있는 기능입니다.

클라우드 네이티브 인프라를 채택하는 조직이 증가함에 따라 이러한 환경을 위해 특별히 설계된 관측성 툴에 대한 필요성이 증가할 것입니다. 클라우드 네이티브 관측성 툴은 마이크로서비스, 컨테이너, 기타 클라우드 네이티브 기술에서 데이터를 수집, 분석하고 이러한 환경의 시스템 성능에 대한 인사이트를 제공하도록 설계되었습니다.

즉, 클라우드 네이티브 관측성은 마이크로서비스 아키텍처를 사용하여 구축되고 컨테이너 또는 서버리스 환경에 배포된 현대적인 클라우드 네이티브 애플리케이션을 모니터링, 분석, 트러블슈팅하는 프랙티스입니다. 일반적으로 클라우드 네이티브 관측성은 다음과 같은 요소를 포함합니다.

메트릭: 쿠버네티스 환경과 애플리케이션에 대한 정량적 데이터 수집에 중점을 둡니다. 메트릭에는 CPU와 메모리 사용량, 네트워크 트래픽, 요청 대기 시간과 같은 데이터가 포함될 수 있습니다. 쿠버네티스는 다양한 메트릭을 기본 제공하지만, 추가 툴이나 라이브러리를 사용하여 더욱 상세한 메트릭을 수집해야 할 수도 있습니다.

로그: 쿠버네티스 환경과 애플리케이션에서 로그 데이터를 수집하고 분석하는 데 중점을 둡니다. 로그는 애플리케이션 동작에 대한 가치 있는 인사이트를 제공할 수 있으며, 문제를 트러블슈팅하고 성능 병목 현상을 식별하며 보안 위협을 감지하는 데 사용할 수 있습니다.

추적: 쿠버네티스 환경과 애플리케이션에서 요청 또는 트랜잭션 실행에 대한 데이터를 수집하는 데 중점을 둡니다. 추적을 통해 애플리케이션에서 요청 또는 트랜잭션이 처리되는 방식을 이해하고, 성능 문제를 파악하고, 애플리케이션 성능을 최적화할 수 있습니다.

이벤트: 애플리케이션 배포, 확장 이벤트, 오류 등 쿠버네티스 환경에서 발생하는 중요한 이벤트 관련 데이터 수집에 중점을 둡니다. 이벤트를 통해 쿠버네티스 환경 상태를 모니터링하고 문제가 발생할 때 신속하게 대응할 수 있습니다.

관측성은 안정적이고 효율적인 시스템 운영을 보장하므로 사이트 신뢰성 엔지니어링(SRE)과 DevOps에 매우 중요합니다. 관측성의 중요성은 시스템 성능과 동작에 대한 심층적인 인사이트를 제공하여 사전 예방적 모니터링, 트러블슈팅, 최적화를 가능하게 하는 기능에 있습니다. 

개발자, 운영 팀 또는 사이트 신뢰성 엔지니어의 경우 관측성 데이터를 사용하여 소프트웨어 시스템 문제를 파악, 분석, 해결하는 특정 단계를 수행해야 합니다. 이를 "디버그 여정"이라고 합니다.

모니터링, 경고 또는 사용자가 보고한 인시던트에서 문제가 발생하는 경우, 이 문제를 감지하는 것에서부터 관측성 여정을 시작합니다.

문제를 감지하면 팀에서 심각도를 결정하고 우선순위를 정해야 합니다. 이 분류 프로세스에는 사용자, 시스템, 전체 성능에 미치는 영향을 평가하는 작업이 포함됩니다.

우선순위가 지정된 항목에 대해 수집된 관측성 데이터를 조사하여 패턴과 상관 관계를 파악합니다.

잠재적인 상관 관계와 패턴을 파악한 후, 팀은 데이터를 심층 조사하여 문제의 근본 원인을 찾아냅니다.

원인을 파악한 다음에는 코드 변경, 핫픽스 또는 인프라 조정을 통해 해결책을 구현할 수 있으며, 팀은 시스템을 계속 모니터링하여 해결책이 효과가 있는지 확인합니다.

DevOps와 SRE를 위한 관측성에는 시스템을 효과적으로 모니터링, 트러블슈팅, 최적화하기 위한 툴, 프로세스, 전문 지식이 모두 필요하며, 이는 기업이 고객에게 고품질 디지털 서비스를 제공할 수 있도록 하는 데 중요한 역할을 합니다. Red Hat OpenShift Observability는 시스템 기준을 개발하는 데 필요한 정보를 제공하고, 해당 기준에서의 편차를 모니터링하고 경고함으로써 평균 탐지 시간(MTTD)과 평균 해결 시간(MTTR)을 줄여줍니다.

Red Hat® OpenShift® Observability는 관측성 툴과 기술을 연계하여 통합된 관측성 경험을 생성함으로써 현대적인 아키텍처 복잡성을 해결합니다. 이 플랫폼은 다양한 시스템 메트릭, 로그, 추적, 이벤트에 대한 실시간 가시성, 모니터링, 분석 기능을 제공하여 문제가 애플리케이션 또는 최종 사용자에게 영향을 미치기 전에 신속하게 진단하고 트러블슈팅할 수 있도록 설계되었습니다.

Red Hat OpenShift는 클라우드 애플리케이션의 성능과 신뢰성을 향상시킬 수 있는 관측성 기능을 제공합니다. 이를 통해 문제가 고객에게 영향을 미치기 전에 이를 식별하고, 인프라를 최적화하며, 애플리케이션에서 데이터를 수집, 분석하여 비용을 절감할 수 있습니다. 또한 애플리케이션의 동작을 더 정확하게 이해하고 사전 예방적인 문제 해결을 지원할 수 있습니다. 사용자는 이러한 기능을 통해 퍼블릭 클라우드, 온프레미스, 엣지를 비롯한 모든 풋프린트에서 애플리케이션과 인프라의 성능과 상태에 대한 심층적인 인사이트를 얻을 수 있습니다.

이 플랫폼은 다양한 시스템 메트릭, 로그, 추적, 이벤트에 대한 실시간 가시성, 모니터링, 분석 기능을 제공하여 문제가 애플리케이션 또는 최종 사용자에게 영향을 미치기 전에 신속하게 진단하고 트러블슈팅할 수 있도록 설계되었습니다.

Red Hat OpenShift Observability의 5가지 요소

데이터 스토리지

로그, 메트릭, 추적과 같은 다양한 관측성 툴과 플랫폼에서 생성된 데이터를 중앙화된 위치에 저장하여 분석하고 모니터링할 수 있습니다. 이러한 툴을 사용하여 시스템 성능에 대한 인사이트를 얻고, 문제를 감지하고 진단하며, 운영을 최적화하는 기업의 경우 이러한 데이터를 저장하는 것이 매우 중요합니다. Red Hat OpenShift Observability는 Prometeus와 Thanos를 사용하여 메트릭을 저장하고, Loki를 사용하여 로그를 저장하며, Jager와 Elasticsearch를 사용하여 추적 정보를 저장합니다.

데이터 수집

시스템, 네트워크 또는 애플리케이션 내의 다양한 소스에서 로그, 메트릭, 추적과 같은 다양한 유형의 데이터를 수집하고, 분석과 모니터링을 위해 중앙화된 위치에 저장합니다. Red Hat OpenShift Observability는 Prometheus를 사용하여 메트릭을 수집하고, Vector를 사용하여 로그를 수집하고, OpenTelemetry를 사용하여 추적 정보를 수집합니다.

데이터 분석

관측성 요소에서 수집한 데이터를 분석하고 해석하여 시스템, 네트워크 또는 애플리케이션의 동작과 성능에 대한 인사이트를 얻을 수 있습니다. 이 프로세스에는 데이터 분석 기술을 사용하여 데이터 내에서 추세, 이상 징후와 상관 관계를 파악하는 작업이 포함됩니다. Red Hat OpenShift Observability는 데이터를 분석하여 Red Hat OpenShift 콘솔에 기본적으로 표시합니다.

데이터 제공

관측성 요소에서 수집한 데이터를 적절한 이해관계자에게 적시에 효율적으로 전달합니다. 이 프로세스에는 데이터 제공 워크플로우를 정의하고, 전송 채널을 구성하고, 문제가 발생할 때 관련 이해관계자에게 알리도록 경고와 알림을 설정하는 작업이 포함됩니다.  이를 위해 Red Hat OpenShift Observability에서는 데이터를 집계, 정규화하고 경고를 준비할 수 있도록 Observability Operator를 제공합니다.

데이터 시각화

관측성 요소에서 수집한 데이터를 이해하고 해석하기 쉬운 시각적 형식으로 나타냅니다. Red Hat OpenShift Observability는 Red Hat OpenShift 콘솔에 기본 제공되는 그래프, 차트, 대시보드를 사용하여 사용자가 데이터 내에서 패턴, 추세, 이상 징후를 신속하게 파악할 수 있도록 데이터를 표시합니다.

Red Hat 솔루션의 관측성 기능

선택한 인프라에서 애플리케이션 출시 테스트를 마친 통합 서비스 세트를 포함하는 엔터프라이즈 애플리케이션 플랫폼입니다.

Red Hat Advanced Cluster Management for Kubernetes 로고

Red Hat Advanced Cluster Management for Kubernetes에는 멀티클러스터 관리를 통합하고, 정책 기반 거버넌스를 제공하며, 애플리케이션 라이프사이클 관리를 확장하는 기능과 사전 예방적 클러스터 상태 및 성능 모니터링 기능이 포함되어 있습니다.

Red Hat Insights는 플랫폼과 애플리케이션을 지속적으로 분석하여 위험을 예측하고, 조치를 권장하고, 비용을 추적함으로써 기업이 하이브리드 클라우드 환경을 더 잘 관리할 수 있도록 지원합니다.

소프트웨어 복잡성이 심화됨에 따라, 신뢰할 수 있는 계측 구성 요소를 제공하기 위해서는 더 많은 리소스가 필요합니다. 독점 관측성 제품의 경우 이러한 추세로 인해 중복성과 비효율성을 야기합니다. 시장은 변곡점에 도달했으며, 경쟁업체가 오픈소스 코어에서 협업하고 더 높은 수준의 기능과 가격을 통해 경쟁하는 것이 더 효율적인 것으로 인식되고 있습니다. 또한 오픈소스 관측성 프로젝트가 너무 많아지면서 오퍼레이터가 분리되고 단절되어 사용자가 통합 스택을 생성하는 데 어려움을 겪을 수 있습니다. Red Hat OpenShift Observability는 수많은 오픈소스 관측성 오퍼레이터를 연결하고, 협력하여 통합된 관측성 경험을 생성할 수 있도록 함으로써 이 문제를 해결합니다.  오픈 하이브리드 클라우드 전반에서 고객의 선택권과 유연성을 향상하기 위한 Red Hat의 노력은 우리가 사용하는 모든 관측성 오픈소스 프로젝트에 대한 Red Hat의 기여에도 반영되어 커뮤니티를 위한 오픈소스 구성 요소를 개선합니다. Red Hat은 퍼블릭 클라우드, 온프레미스, 엣지를 비롯한 모든 풋프린트에서 통합되고 일관되며 간소화된 하나의 통합 관측성 경험을 제공합니다.

추가 자료

문서

머신 러닝이란?

머신 러닝(ML)은 알고리즘을 사용하여 데이터 세트 내에서 패턴을 식별하고 예측하는 인공지능(AI)의 하위 범주입니다. 

문서

컨테이너의 이해

컨테이너는 실행에 필요한 모든 파일을 포함한 전체 실행(runtime) 환경에서 애플리케이션을 패키징하고 격리할 수 있는 기술입니다.

문서

쿠버네티스란?

쿠버네티스는 컨테이너화된 애플리케이션을 배포, 관리, 확장하는 데 필요한 대부분의 수동 프로세스를 자동화하는 오픈소스 컨테이너 오케스트레이션 플랫폼입니다.