아키텍처 요구 사항
요약
오픈텔레메트리(OpenTelemetry) 커뮤니티 데모 애플리케이션은 경량화된 프로덕션 환경의 클라우드 네이티브 애플리케이션에서 오픈텔레메트리 API, SDK, 도구를 시연하기 위한 것이다. 이 애플리케이션의 전반적인 목표는 오픈텔레메트리 컴포넌트의 표준적인 ‘데모’를 제공하는 것뿐만 아니라, 최종 사용자, 벤더 및 기타 이해관계자가 추가로 커스터마이징할 수 있는 프레임워크 역할을 하는 것이다.
요구 사항
애플리케이션 목표
- 개발자가 오픈텔레메트리 계측을 학습하는 데 활용할 수 있는 견고한 샘플 애플리케이션을 제공한다.
- 옵저버빌리티(Observability) 벤더에게 추가로 커스터마이징할 수 있는(또는 별도의 설정 없이 바로 사용할 수 있는) 지원이 잘 갖춰진 단일 데모 플랫폼을 제공한다.
- OTel API, SDK 및 도구의 기능과 활용 가능성을 보여 주며 지속적으로 발전하는 예제를 오픈텔레메트리 커뮤니티에 제공한다.
- 오픈텔레메트리 메인테이너와 워킹 그룹(WG)이 ‘실제 환경에서’ 새로운 기능과 개념을 시연할 수 있는 플랫폼을 제공한다.
다음은 데모 애플리케이션의 논리적 컴포넌트에 대한 전반적인 설명이다.
주요 애플리케이션
데모 앱의 핵심은 전자상거래 사이트처럼 ‘실제 환경’에서 유용한 작업을 수행하는 독립형 마이크로서비스 기반 애플리케이션이다. 이 애플리케이션은 gRPC와 HTTP를 통해 서로 통신하는 여러 서비스로 구성되며, 쿠버네티스(혹은 로컬 도커)에서 실행된다.
각 서비스는 (적용·지원 가능한 범위에서) 트레이스, 메트릭, 로그를 위해 오픈텔레메트리로 계측해야 한다.
각 서비스는 동일한 비즈니스 로직을 수행하고 동일한 gRPC 엔드포인트를 구현하되, 다른 언어나 방식으로 작성된 서비스로 상호 교체가 가능한 것이 좋다.
각 서비스는 피처 플래그(feature flag) 서비스와 통신하여 장애를 활성화하거나 비활성화할 수 있는 것이 좋다. 이를 통해 텔레메트리가 분산 애플리케이션의 문제 해결에 어떻게 도움이 되는지 보여줄 수 있다.
피처 플래그 컴포넌트
피처 플래그는 클라우드 네이티브 애플리케이션 개발의 핵심 요소이다. 데모는 CNCF 인큐베이팅 프로젝트인 OpenFeature를 사용하여 피처 플래그를 관리한다.
피처 플래그는 flagd 설정 도구의 사용자 인터페이스를 통해 설정할 수 있다.
오케스트레이션 및 배포
모든 서비스는 쿠버네티스에서 실행된다. 오픈텔레메트리 컬렉터는 오픈텔레메트리 오퍼레이터를 통해 배포하고, 사이드카 + 게이트웨이 모드로 실행하는 것이 좋다. 각 파드의 텔레메트리는 에이전트에서 게이트웨이로 라우팅하고, 게이트웨이는 기본적으로 오픈 소스 트레이스 및 메트릭 시각화 도구로 텔레메트리를 내보내는 것이 좋다.
로컬 환경이나 쿠버네티스를 사용하지 않는 환경에서는 compose 파일을 통해 컬렉터를
배포하는 것이 좋다. 컬렉터는 애플리케이션의 트레이스와 메트릭뿐만 아니라
dockerstatsreceiver를 통해 도커 컨테이너도 모니터링하는 것이 좋다.
이 프로젝트의 설계 목표 중 하나는 클라우드 환경에 자체적으로 배포하기 위한 CI/CD 파이프라인을 포함하는 것이다. 로컬 개발에서는 이를 생략할 수 있다.
피드백
이 페이지가 도움이 되었나요?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!