위대로운 Deming의 말씀에 따르면 “측정하지 않으면 관리할 수 없습니다“. 관찰 가능성과 모니터링은 우리의 서비스를 측정하는 방법입니다.
쿠버네티스는 배포와 확장을 다루는 방식에서 혁명적입니다. 그러나 컨테이너가 지속적으로 생성되고 파괴되는 방식은 때로 모니터링에 어려움을 줄 수 있습니다. 이것이 바로 관찰 가능성이 필요한 이유이며, 시스템이 어떻게 작동하고 문제가 발생하는지에 대한 중요한 통찰을 제공합니다.
쿠버네티스 용어를 다시 살펴보고 싶으신가요? 5분 안에 쿠버네티스를 이해하다를 읽어보세요Demystifying Kubernetes in 5 Minutes.
쿠버네티스에서의 관찰 가능성이란 무엇인가요?
사람들은 관측 가능성을 우산 용어로 사용하는 것을 좋아합니다. 그러나 일반적으로 메트릭, 로그 및 추적을 의미합니다. 이는 애플리케이션 및 인프라의 핵심을 들여다볼 수 있는 렌즈와 같습니다. 이러한 출력물을 수집하고 분석함으로써 관측 가능성은 서비스를 방해하기 전에 잠재적인 문제를 발견하고 전반적인 시스템 성능을 최적화하는 데 도움을 줍니다.
떠오르는 세 가지는 다음과 같습니다:
메트릭
이들은 숫자이며 자원 사용량, 오류율 및 성능에 대한 데이터를 제공합니다. 인기 있는 메트릭 몇 가지는 CPU 사용량 및 메모리 사용량(백분율)과 함께 메트릭 자체에 대한 추가 메타데이터(때로는 차원이라고도 함)입니다.
로그
로그는 시스템 내의 이벤트에 대한 상세한 이력을 제공하며, 오류 또는 사용자 작업과 같은 것들이 포함됩니다. 이것들은 문제 해결 및 응용프로그램 동작을 이해하는 데 맥락을 제공합니다. 아마도 이전에 “로그”를 보신 적이 있을 것입니다:
[20250101 12:30:00] ERROR: Failed to connect to database on attempt 3, retrying...
추적
추적은 서비스를 통해 요청이 전달되는 과정을 end-to-end로 보여주어 병목 현상이나 지연 문제를 식별하는 데 도움이 됩니다. 여러 마이크로서비스를 통해 요청을 추적함으로써 성능 문제가 발생한 곳을 정확히 파악할 수 있습니다.
로그와 추적은 비슷할 수 있지만 다릅니다. 로그는 발생한 일의 스냅숏으로 생각할 수 있고, 추적은 전체 시스템을 통해 어떻게 그리고 왜 일어났는지를 알려줍니다.
가시성은 조직 내의 한 역할로 제한되지 않으며, 다른 역할 사이에서 주고받는 중요한 정보의 한 부분입니다. 예를 들어, 소프트웨어 엔지니어로서 응용프로그램 코드에 메트릭, 로그 및 추적을 삽입합니다. 이제 이 데이터를 수집, 저장 및 분석하기 위한 도구인 Prometheus (메트릭) 및 Jaeger (추적)과 같은 도구를 사용해야 합니다.
이미 가시성에 대해 설득되지 않았다면, 간단히 정리하겠습니다:
- 성능 병목 현상을 식별하여 모든 것이 원활하고 효율적으로 작동하도록 합니다.
- 시스템 내구성을 향상시키고 앱이 (희망적으로) 빠르게 장애를 복구할 수 있도록 돕습니다.
- 지속적인 모니터링을 통해 팀이 이상 현상을 일찍 감지하여 보안 침해를 방지하고 민감한 데이터가 보호되도록 합니다.
- 멋진 대시보드를 구축할 수 있으며, 이는 시스템 성능에 대한 더 나은 통찰력을 제공합니다. 이는 상당한 인프라 비용을 절감하는 데도 도움이 될 수 있습니다(당신을 바라보고 있습니다, AWS!).
잠깐, 위에서 모니터링에 대해서도 언급했습니다. 그게 뭐고, 그게 어떻게 다릅니까?
가시성과 모니터링은 관련이 있지만 서로 다른 목적을 가지고 있습니다. 모니터링은 시스템이 허용 가능한 매개변수 내에서 작동하는지 확인하기 위해 미리 정의된 검사/알림을 설정하는 것을 포함합니다. 이는 귀하의 SLA/SLO에 해당합니다. 반면 가시성은 시스템 동작에 대한 포괄적인 이해를 제공함으로써 한 걸음 더 나아갑니다. 단순히 무언가가 고장났을 때를 아는 것이 아니라, 그것이 왜 그리고 어떻게 발생했는지를 이해하는 것입니다. 모니터링과 가시성은 효과적인 시스템 관리를 위해 필수적입니다.
주목할 점: OpenTelemetry
OpenTelemetry (약칭 OTel)는 선도적인 오픈 소스 API, SDK 및 도구 모음입니다. 소프트웨어의 성능과 동작을 분석하는 데 도움이 되는 텔레메트리 데이터(메트릭, 로그 및 트레이스)를 수집, 생성, 수출하는 데 사용하십시오. OpenTelemetry는 많은 인기 라이브러리 및 프레임워크와 통합되며, 다양한 Kubernetes 환경에서 코드 기반 및 제로 코드 계측을 지원합니다.
결론
결론적으로, 관찰 가능성은 기술적 요구사항 이상으로, 오늘날 경쟁적인 시장에서 앞서 나가려는 조직에게 전략적 필수 요소입니다. OTel과 같은 적절한 도구와 전략을 활용함으로써 조직은 Kubernetes 애플리케이션을 모니터링, 문제 해결 및 지속적으로 최적화할 수 있습니다. 시스템 성능에 대한 더 나은 가시성을 통해 조직은 데이터 기반 결정을 내릴 수 있고, 애플리케이션 신뢰성을 향상시키며, 비즈니스 목표를 더 효과적으로 달성할 수 있습니다.
누가 말했는지는 모르겠지만, 이 격언을 좋아합니다: 추측하지 말고, 알아라!
Source:
https://dzone.com/articles/the-must-have-guide-to-kubernetes-observability