2장. 분산 추적 아키텍처


2.1. 분산 추적 아키텍처

사용자가 애플리케이션에서 작업을 수행할 때마다 응답을 생성하기 위해 참여하도록 다양한 서비스를 필요로 할 수 있는 아키텍처에 의해 요청이 실행됩니다. Red Hat OpenShift distributed tracing을 사용하면 애플리케이션을 구성하는 다양한 마이크로 서비스를 통해 요청의 경로를 기록하는 분산 추적을 수행할 수 있습니다.

분산 추적은 분산 트랜잭션에 있는 전체 이벤트 체인을 이해하기 위해 일반적으로 다양한 프로세스 또는 호스트에서 실행되는 다양한 작업 단위에 대한 정보를 결합하는 데 사용되는 기술입니다. 개발자는 분산 추적을 사용하여 대규모 마이크로 서비스 아키텍처에서 호출 흐름을 시각화할 수 있습니다. 직렬화, 병렬 처리 및 대기 시간 소스를 이해하는 데 유용합니다.

Red Hat OpenShift distributed tracing은 마이크로 서비스 스택에서 개별 요청 실행을 기록하고 이를 추적으로 제공합니다. 추적은 시스템을 통한 데이터/실행 경로입니다. 엔드 투 엔드 추적은 하나 이상의 기간으로 구성됩니다.

기간은 Red Hat OpenShift 분산 추적에서 작업 이름, 작업의 시작 시간, 기간 및 잠재적으로 태그 및 로그를 포함하는 작업 단위를 나타냅니다. 기간은 중첩되어 인과 관계를 모델링하도록 주문될 수 있습니다.

2.1.1. 분산 추적 개요

서비스 소유자는 분산 추적을 사용하여 서비스 아키텍처에 대한 정보를 수집할 수 있습니다. 분산 추적을 사용하여 최신 클라우드 네이티브, 마이크로 서비스 기반 애플리케이션의 구성 요소 간 상호 작용을 모니터링, 네트워크 프로파일링 및 문제 해결에 사용할 수 있습니다.

분산 추적을 사용하면 다음 기능을 수행할 수 있습니다.

  • 분산 트랜잭션 모니터링
  • 성능 및 대기 시간 최적화
  • 근본 원인 분석 수행

Red Hat OpenShift distributed tracing은 다음 두 가지 주요 구성 요소로 구성됩니다.

  • Red Hat OpenShift distributed tracing 플랫폼 - 이 구성 요소는 오픈 소스 Jaeger 프로젝트를 기반으로 합니다.
  • Red Hat OpenShift distributed tracing 데이터 수집 - 이 구성 요소는 오픈 소스 OpenTelemetry 프로젝트를 기반으로 합니다.
중요

Jaeger는 FIPS 검증 암호화 모듈을 사용하지 않습니다.

2.1.2. Red Hat OpenShift distributed tracing 기능

Red Hat OpenShift distributed tracing은 다음과 같은 기능을 제공합니다.

  • Kiali와의 통합 - 올바르게 구성된 경우 Kiali 콘솔에서 분산 추적 데이터를 볼 수 있습니다.
  • 높은 확장성 - 분산 추적 백엔드는 단일 장애 지점이 없고 비즈니스 요구 사항에 따라 확장할 수 있도록 설계되었습니다.
  • 분산 컨텍스트 전파 - 다양한 구성 요소의 데이터를 함께 연결하여 완전한 엔드 투 엔드 추적을 만들 수 있습니다.
  • Zipkin과의 역호환성 - Red Hat OpenShift distributed tracing에는 Zipkin의 드롭인 대체 기능으로 사용할 수 있는 API가 있지만 Red Hat은 이 릴리스에서 Zipkin 호환성을 지원하지 않습니다.

2.1.3. Red Hat OpenShift distributed tracing 아키텍처

Red Hat OpenShift distributed tracing은 추적 데이터를 수집, 저장 및 표시하기 위해 함께 작동하는 여러 구성 요소로 구성됩니다.

  • Red Hat OpenShift distributed tracing 플랫폼 - 이 구성 요소는 오픈 소스 Jaeger 프로젝트를 기반으로 합니다.

    • 클라이언트 (Jaeger 클라이언트, Tracer, Reporter, 조정된 애플리케이션, 클라이언트 라이브러리)- 분산 추적 플랫폼 클라이언트는 OpenTracing API의 언어별 구현입니다. 수동으로 또는 이미 OpenTracing과 통합된 Camel(Fuse), Spring Boot(RHOAR), MicroProfile(RHOAR/T©tail), Wildfly(EAP) 등의 다양한 기존 오픈 소스 프레임워크를 사용하여 분산 추적에 대해 애플리케이션을 조정하는 데 사용할 수 있습니다.
    • 에이전트 (Jaeger agent, Server Queue, Processor Workers) - 분산 추적 플랫폼 에이전트는 UDP(User Datagram Protocol)를 통해 전송되는 기간을 수신 대기하는 네트워크 데몬으로, 수집기를 배치하고 보냅니다. 에이전트는 조정된 애플리케이션과 동일한 호스트에 배치되어야 합니다. 일반적으로 Kubernetes와 같은 컨테이너 환경에서 사이드카를 보유하여 수행됩니다.
    • Jaeger 수집기 (Collector, Queue, Workers) - Jaeger 에이전트와 유사하게 Jaeger 수집기는 기간을 수신하여 처리를 위해 내부 큐에 배치합니다. 이를 통해 Jaeger 수집기는 기간이 스토리지로 이동할 때까지 기다리지 않고 클라이언트/에이전트로 즉시 돌아갈 수 있습니다.
    • 스토리지(데이터 저장소) - 수집기에는 영구 스토리지 백엔드가 필요합니다. Red Hat OpenShift distributed tracing 플랫폼에는 기간 스토리지를 위한 플러그 방식 메커니즘이 있습니다. 이 릴리스에서 지원되는 유일한 스토리지는 Elasticsearch입니다.
    • 쿼리(쿼리 서비스) - 쿼리는 스토리지에서 추적을 검색하는 서비스입니다.
    • Ingester (Ingester 서비스) - Red Hat OpenShift 분산 추적에서는 수집기와 실제 Elasticsearch 백업 스토리지 간의 버퍼로 Apache Kafka를 사용할 수 있습니다. Ingester는 Kafka에서 데이터를 읽고 Elasticsearch 스토리지 백엔드에 쓰는 서비스입니다.
    • Jaeger 콘솔 - Red Hat OpenShift distributed tracing platform 사용자 인터페이스를 사용하여 분산 추적 데이터를 시각화할 수 있습니다. 검색 페이지에서 추적을 찾고 개별 추적을 구성하는 기간의 세부 사항을 확인할 수 있습니다.
  • Red Hat OpenShift distributed tracing 데이터 수집 - 이 구성 요소는 오픈 소스 OpenTelemetry 프로젝트를 기반으로 합니다.

    • OpenTelemetry Collector - OpenTelemetry 수집기는 원격 분석 데이터를 수신, 처리 및 내보내는 벤더와 무관한 방법입니다. OpenTelemetry 수집기는 오픈 소스 관찰 기능 데이터 형식(예: Jaeger 및 Prometheus)을 지원하여 하나 이상의 오픈 소스 또는 상용 백엔드로 전송합니다. 수집기는 원격 분석 데이터를 내보내는 기본 위치 계측 라이브러리입니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.