OpenTelemetry(OTEL) 적용기 - 1
OpenTelmetry
(OTel)
OpenTelemetry를 회사내 사이드 프로젝트(MSA)에 적용하기 까지에 대한 내용을 짧게 정리해보려고 합니다.
■ 정의
OpenTelemetry(OTEL) 란 observability를 지원하는 오픈소스 프레임워크로서
애플리케이션에서 발생하는 데이터( Trace, Metric, Log )를 수집하고 통합하여 개발자, 운영자가 시스템의 성능 및 작동 방식을 보다 쉽게 이해하고 문제를 해결할 수 있도록 돕습니다.
■ 특징
1. 개방형 규격
2. 언어별 특성에 맞춘 API와 SDK
3. 원격 측정 데이터 수집을 위한 에이전트 제공
■ 단점
1. 복잡성
OTEL은 다양한 기능을 제공하기 때문에 완벽하게 사용하려면 나름의 학습 곡선이 존재합니다.
2. 오버헤드
OTEL을 사용하면 시스템 성능에 오버헤드가 발생할 수 있습니다.
3. 모니터링 도구와의 통합
OTEL은 아직 모든 모니터링 도구와 통합되지 않았기에, 기 사용중인 모니터링 솔루션이 있다면 호환이 안될 수 있습니다.
■ 그래서 왜? WHY?
가장 중요한 부분이 아닐까 싶습니다. 농부가 농사를 짓기 위한 도구를 고를때 아무거나 사지 않듯이.
IT 업종에 있는 우리들도 본인의 시스템에 무언가를 적용하기 전, 항상 그 WHY에 대한 고찰을 해야 하는 것 같습니다.
그래서 제가 생각한 OTEL을 선택했던 이유는 다음과 같습니다.
첫째, 표준화된 도구의 필요성 입니다.
OTEL은 Cloud Natvie Computing Foundation(CNCF)에 의해 지원되는 observability를 위한 표준화된 도구입니다.
다양한 도구와 프레임워크가 존재하는 현재 환경에서, OTEL을 사용함으로써 트레이싱, 매트릭, 로깅 등의 관찰 가능성 데이터를 표준화된 방식으로 수집하고 처리하고 전달할 수 있게 되었습니다. 이는 회사 내외부의 커뮤니케이션에 효율성을 높이고, 다양한 도구 간의 호환성 문제를 줄일 수 있습니다.
둘째, 벤더 중립성 입니다.
OTEL은 벤더 중립적인 API,SDK를 제공합니다. 이는 우리가 사용하는 모니터링 도구나 데이터가 플랫폼을 변경하더라도, 코드 레벨에서 큰 변경 없이 유연하게 대응할 수 있게 해줍니다.
장기적인 관점으로 보였을 때 시스템의 유연성을 크게 향상 시키며, 기술 스택의 변화에 따른 비용과 노력을 줄일 수 있습니다.
셋째, 확장성과 커스터마이징의 용이성 입니다.
OTEL은 다양한 프로그래밍 언어와 플랫폼을 지원하며, 필요에 따라 사용자가 정의한 시점과 요건에 맞게 데이터 수집이 가능합니다. 이는 시스템 운영시 직명할 수 있는 다양한 시나리오와 요구 사항에 맞춤화된 모니터링 시스템을 구축할 수 있도록 해줍니다.
넷째, 성능과 오버헤드의 균형 입니다.
OTEL은 고성능을 목표로 설계되었으며, 최소한의 오버헤드로 동작한다고 알고 있습니다. 이는 MSA 환경에서 필수로 모니터링을 구축할 때 필수로 고려해야할 부분 중 하나입니다.
다섯째, 커뮤니티와 지원 입니다.
OTEL은 전 세계 수많은 개발자와 조직의 기여를 받는 활발한 오픈소스 프로젝트입니다. 이는 문제가 발생했을 때 다양한 경험을 공유하고 해결책을 찾을 수 있는 강력한 커뮤니티 지원을 의미합니다.
개인적으로 이러한 이유들로 OTEL을 선택했고, 이 기술이 우리 시스템의 요구 사항을 얼마만큼 충족시킬 수 있을지, 운영 효율성이 장기적인 관점에서 얼마나 좋을지 등은 결국 더 활용해봐야 알겠습니다만..
단순 신기술을 적용시킨다는 의미를 떠나 이러한 고민을 갖는 과정들은 더 좋은 시스템을 만드는데 있어서 중요하다고 생각합니다.
다음 적용기-2 에서는 기본적인 OTEL 사용법을 공유 하겠습니다. :)