Skip to main content
QUICK REVIEW

[논문 리뷰] Using Microservice Telemetry Data for System Dynamic Analysis

Abdullah Al Maruf, Alexander Bakhtin|arXiv (Cornell University)|2022. 07. 06.
Software System Performance and Reliability인용 수 6
한 줄 요약

이 논문은 로그, 트레이서, 메트릭스와 같은 마이크로서비스 텔레메트리 데이터를 활용하여 아키텍처 반칙 패턴을 자동으로 탐지하고, 품질 메트릭을 계산하며, 시스템 종속성 그래프를 재구성하는 동적 분석 방법을 제안한다. 이 방법은 언어에 종속되지 않고 확장 가능한 방식으로 변화하는 마이크로서비스 시스템을 모니터링할 수 있게 하며, 42개의 서비스로 구성된 벤치마크에서 높은 정밀도로 핵심 병목 현상, 순환 종속성, 서비스의 중요도를 성공적으로 식별하였다.

ABSTRACT

Microservices bring various benefits to software systems. They also bring decentralization and lose coupling across self-contained system parts. Since these systems likely evolve in a decentralized manner, they need to be monitored to identify when possibly poorly designed extensions deteriorate the overall system quality. For monolith systems, such tasks have been commonly addressed through static analysis. However, given the decentralization and possible language diversity across microservices, static analysis tools are lacking. On the other hand, there are available tools commonly used by practitioners that offer centralized logging, tracing, and metric collection for microservices. In this paper, we assess the opportunity to combine current dynamic analysis tools with anomaly detection in the form of quality metrics and anti-patterns. We develop a tool prototype that we use to assess a large microservice system benchmark demonstrating the feasibility and potential of such an approach.

연구 동기 및 목표

  • 언어 이질성이 도구 지원을 어렵게 하는 분산형, 다중 프로그래밍 언어 기반 마이크로서비스 시스템에서 정적 분석의 한계를 해결하기 위해.
  • 기존 텔레메트리 파이프라인을 활용하여 런타임에서 아키텍처 반칙 패턴과 품질 메트릭을 탐지할 수 있도록 하기 위해.
  • 시스템 전체의 아키텍처 통찰을 위한 동적 분석의 타당성을 입증하고, 변화 추적 및 확장성 우선순위 정하기를 포함하기 위해.
  • 소스 코드 접근 권한 없이도 비즈니스 프랙티셔너가 핵심 서비스와 설계 결함을 자동으로 식별할 수 있는 확장 가능한 방법을 제공하기 위해.

제안 방법

  • 분산 트레이싱 및 로깅 텔레메트리에서 서비스 간 통신을 추출하여 서비스 종속성 그래프(SDG)를 구축한다.
  • 그래프 분석을 적용하여 주요 메트릭을 계산한다: 서비스의 절대 중요도(AIS), 서비스의 절대 종속도(ADS), 서비스의 절대 비중(ACS), 시스템 내 서비스 상호의존도(SIY).
  • SDG의 구조와 엔드포인트 패tern을 분석하여 순환 종속성, 공유 영속성, API 버전 관리와 같은 반칙 패턴을 탐지한다.
  • API 버전 관리 히ュ리스틱(예: /api/v1 접두어)을 사용하여 버전화된 엔드포인트를 식별하고, 후행 호환성 여부를 평가한다.
  • 버전 간(SDG 비교: v0.1.0 및 v0.2.1)의 변화를 분석하여 서비스 아키텍처 구조와 테스트 커버리지의 변화를 탐지함으로써 시스템의 진화를 평가한다.
  • 입력/출력 엣지 수와 비중 메트릭을 기반으로 확장 권고 사항을 우선순위 정렬한다.
Figure 1 : Architecture of a service mesh where proxy sidecars handles all the network activity of a service.
Figure 1 : Architecture of a service mesh where proxy sidecars handles all the network activity of a service.

실험 결과

연구 질문

  • RQ1생산 유사 워크로드에서 생성된 텔레메트리 데이터를 사용하여 시스템의 서비스 종속성 그래프를 자동으로 재구성할 수 있는가?
  • RQ2동적 분석이 마이크로서비스에서 순환 종속성과 서비스 병목 현상과 같은 아키텍처 반칙 패턴을 어느 정도 탐지할 수 있는가?
  • RQ3AIS, ADS, ACS와 같은 주요 품질 메트릭은 버전 간 변화와 시스템 행동에 어떻게 관련되어 있는가?
  • RQ4소스 코드 없이도 동적 분석이 아키텍처의 진화를 효과적으로 식별하고 회귀를 탐지할 수 있는가?
  • RQ5텔레메트리 기반 메트릭은 분산형 시스템에서 서비스 확장과 기술 부채 우선순위 정하기를 어떻게 안내할 수 있는가?

주요 결과

  • 프로토타입은 텔레메트리 데이터에서 서비스 종속성 그래프(SDG)를 성공적으로 재구성하여, 42개 서비스로 구성된 벤치마크에서 서비스 간 통신을 정확히 반영하였다.
  • 서비스 'ts-order-service.default'는 가장 높은 절대 중요도 점수(AIS = 9)를 기록하여 핵심 통신 허브임을 나타냈다.
  • 서비스 'ts-ui-dashboard.default'는 가장 높은 절대 종속도 점수(ADS = 12)를 기록하여 다른 서비스를 주로 소비하는 주요 소비자임을 보여주었다.
  • 두 버전 모두에서 'ts-travel-service.default'와 'ts-seat-service.default' 사이에 순환 종속성이 탐지되어 아키텍처 수준의 결합이 확인되었다.
  • 서비스 'ts-travel-service.default'는 가장 높은 절대 비중 점수(ACS)를 기록하여 시스템의 병목 현상이자 단일 장애 지점임을 나타냈다.
  • 모든 엔드포인트에서 일관되게 '/api/v1' 접두어를 통해 API 버전 관리를 관찰하여, 버전화된 인터페이스 사용이 확인되었다.
Figure 2 : A SDP prototype that can be generated from an access log. Each edge weight number represents the number of times the endpoint is called. When the weight value is greater, the edge thickens.
Figure 2 : A SDP prototype that can be generated from an access log. Each edge weight number represents the number of times the endpoint is called. When the weight value is greater, the edge thickens.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.