Skip to main content
QUICK REVIEW

[논문 리뷰] FaaSter Troubleshooting -- Evaluating Distributed Tracing Approaches for Serverless Applications

Maria C. Borges, Sebastian Werner|arXiv (Cornell University)|2021. 10. 07.
Software System Performance and Reliability참고 문헌 17인용 수 11
한 줄 요약

이 논문은 장애 가시성 모델을 제안하고, 서버리스 애플리케이션의 장애 진단을 향상시키기 위한 두 가지 분산 추적 기법—개발자 중심 및 플랫폼 지원—을 평가한다. 두 기법 모두 성능 오버헤드를 최소화하면서도 장애의 모호성을 크게 감소시킴을 입증하였으며, 특히 플랫폼 추적 기능이 제공되지 않을 경우 생산 환경에서 사용하기에 적합한 개발자 중심 추적 기법은 거의 영향을 주지 않는 지연 시간을 유발한다.

ABSTRACT

Serverless applications can be particularly difficult to troubleshoot, as these applications are often composed of various managed and partly managed services. Faults are often unpredictable and can occur at multiple points, even in simple compositions. Each additional function or service in a serverless composition introduces a new possible fault source and a new layer to obfuscate faults. Currently, serverless platforms offer only limited support for identifying runtime faults. Developers looking to observe their serverless compositions often have to rely on scattered logs and ambiguous error messages to pinpoint root causes. In this paper, we investigate the use of distributed tracing for improving the observability of faults in serverless applications. To this end, we first introduce a model for characterizing fault observability, then provide a prototypical tracing implementation - specifically, a developer-driven and a platform-supported tracing approach. We compare both approaches with our model, measure associated trade-offs (execution latency, resource utilization), and contribute new insights for troubleshooting serverless compositions.

연구 동기 및 목표

  • 서버리스 애플리케이션에서 관리 서비스의 복잡하고 분산된 조합으로 인해 장애를 고립하기 어려운 관찰 가능성의 제한성 문제를 해결하기 위해.
  • 서버리스 함수 조합 내 다양한 구성 요소에서 장애가 얼마나 가시적인지를 특성화하는 장애 관찰 가능성 모델을 개발하기 위해.
  • 서버리스 환경에서 장애 진단을 향상시키는 것을 목표로 하는 두 가지 추적 기법—개발자 중심 및 플랫폼 지원—을 구현하고 평가하기 위해.
  • 실제 서버리스 워크로드에서 관찰 가능성 향상과 성능 오버헤드(지연 시간, 자원 사용량) 간의 상호 교환 관계를 정량화하기 위해.
  • 개발자와 플랫폼 제공자에게 서버리스 장애 진단을 위한 효과적인 추적 솔루션을 선택하고 구현하는 데 실질적인 통찰을 제공하기 위해.

제안 방법

  • 로그 및 추적에서 증거의 일관성과 모호성에 기반해 장애의 가시성을 분류하는 서버리스 장애 관찰 가능성 모델을 제안한다.
  • OpenWhisk 내에서 커스텀 인스트루멘테이션을 사용하여 개발자 중심 추적의 프로토타입을 구현함으로써, 애플리케이션 코드 내에서 종단 간 추적 수집을 가능하게 한다.
  • OpenWhisk 컨트롤러 및 인보커 노드를 인스트루먼트하여 함수 호출 간에 자동으로 추적을 캡처하는 플랫폼 지원 추적 접근법을 설계한다.
  • 다양한 함수 호출과 외부 서비스를 포함한 실제 이커머스 대량 임포트 워크로드 사례를 활용하여, 현실적인 조건에서 두 기법을 평가한다.
  • 실행 지연 시간, CPU 및 메모리 사용량, 추적 완전성 등을 측정하여 성능 및 관찰 가능성 간의 상호 교환 관계를 비교한다.
  • 실험에서 100% 샘플링 비율을 적용하여 최악의 상황을 시뮬레이션하고 성능 영향에 대한 최대 가능한 오버헤드를 평가한다.

실험 결과

연구 질문

  • RQ1서버리스 애플리케이션에서 장애 관찰 가능성은 어떻게 체계적으로 특성화할 수 있는가, 특히 가시성과 모호성 측면에서?
  • RQ2서버리스 플랫폼에서 개발자 중심과 플랫폼 지원 추적 기법을 구현할 경우의 성능 상호 교환 관계는 어떠한가?
  • RQ3분산 추적은 함수 조합 간의 장애 증거에서의 모호성과 일관성 없는 문제를 어느 정도 감소시키는가?
  • RQ4실제 서버리스 배포 환경에서 다양한 추적 기법을 적용했을 때 실행 지연 시간과 자원 사용량은 어떻게 변화하는가?
  • RQ5장애 진단을 위한 추적 기술을 도입할 경우 개발자와 플랫폼 제공자에게 실질적인 영향은 무엇인가?

주요 결과

  • 개발자 중심 추적은 거의 영향을 주지 않는 성능 오버헤드를 유발하며, 기준 대비 평균 실행 시간 증가가 0초이고 최대 3초 이내로 매우 효율적이다.
  • 플랫폼 지원 추적은 더 높은 성능 비용을 유발하며, 평균 실행 시간 증가가 2초이고 최대 82초로, 핵심 컴포넌트에 대한 100% 샘플링 및 인스트루먼테이션으로 인해 발생한다.
  • 플랫폼 지원 기법은 측정 가능한 자원 비용을 유발하며, 추가로 128~256MB의 메모리 소비가 발생하고, 기능당 가용 런타임을 1~2% 감소시킬 수 있다.
  • 성능 비용에도 불구하고, 두 기법 모두 함수 경계를 넘는 장애 증거의 모호성과 일관성 없는 문제를 크게 줄여 장애 관찰 가능성을 향상시킨다.
  • 플랫폼 추적 기능이 제공되지 않을 경우, 개발자 중심 추적 기법은 낮은 오버헤드와 뛰어난 관찰 가능성 이점으로 인해 생산 환경에서 사용하는 것을 권장한다.
  • 본 연구는 분산 추적이 복잡한 다중 함수 조합 환경에서 서버리스 애플리케이션의 장애 진단을 향상시키는 실현 가능하고 효과적인 솔루션임을 입증한다.

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

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

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

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