Skip to main content
QUICK REVIEW

[논문 리뷰] Ripple: A Practical Declarative Programming Framework for Serverless Compute

Shannon Joyner, Michael J. MacCoss|arXiv (Cornell University)|2020. 01. 01.
Cloud Computing and Resource Management참고 문헌 58인용 수 11
한 줄 요약

Ripple는 개발자가 머신러닝, 유전체학, 단백질체학과 같은 데이터 병렬 응용 프로그램을 AWS Lambda와 같은 서버리스 플랫폼으로 최소한의 코드 변경으로 이식할 수 있도록 해주는 선언형 프로그래밍 프레임워크입니다. 사용자가 정의한 QoS 목표를 충족시키기 위해 작업 및 데이터 분할, 스케줄링, 장애 내성, 자원 프로비저닝을 자동화하여 IaaS/PaaS 대비 최대 80배의 성능 향상을 이룹니다. 비용은 유사한 수준을 유지합니다.

ABSTRACT

Serverless computing has emerged as a promising alternative to infrastructure- (IaaS) and platform-as-a-service (PaaS)cloud platforms for applications with ample parallelism and intermittent activity. Serverless promises greater resource elasticity, significant cost savings, and simplified application deployment. All major cloud providers, including Amazon, Google, and Microsoft, have introduced serverless to their public cloud offerings. For serverless to reach its potential, there is a pressing need for programming frameworks that abstract the deployment complexity away from the user. This includes simplifying the process of writing applications for serverless environments, automating task and data partitioning, and handling scheduling and fault tolerance. We present Ripple, a programming framework designed to specifically take applications written for single-machine execution and allow them to take advantage of the task parallelism of serverless. Ripple exposes a simple interface that users can leverage to express the high-level dataflow of a wide spectrum of applications, including machine learning (ML) analytics, genomics, and proteomics. Ripple also automates resource provisioning, meeting user-defined QoS targets, and handles fault tolerance by eagerly detecting straggler tasks. We port Ripple over AWS Lambda and show that, across a set of diverse applications, it provides an expressive and generalizable programming framework that simplifies running data-parallel applications on serverless, and can improve performance by up to 80x compared to IaaS/PaaS clouds for similar costs.

연구 동기 및 목표

  • 서버리스 플랫폼에 데이터 병렬 응용 프로그램을 배포하는 복잡성을 줄여주기 위해 저수준 시스템 관련 문제를 추상화합니다.
  • 단일 머신 응용 프로그램을 서버리스 실행 환경으로 원활하게 마이그레이션할 수 있도록 최소한의 개발자 노력으로 가능하게 합니다.
  • 사용자가 정의한 품질의 서비스(QoS) 요구사항을 충족시키기 위해 자원 프로비저닝, 작업 스케줄링, 장애 내성 자동화를 수행합니다.
  • 머신러닝, 유전체학, 단백질체학을 포함한 다양한 과학 및 분석 워크로드를 일반 목적의 선언형 인터페이스를 통해 지원합니다.
  • 조기 스트래글러 작업 탐지 및 재스케줄링을 통해 성능 예측 가능성과 비용 효율성을 향상시킵니다.

제안 방법

  • 일련의 순차적 및 병렬 실행 단계를 명시적으로 표현할 수 있는 고수준 선언형 API를 제공하여 데이터 플로우 파이프라인을 정의합니다.
  • 입력 데이터를 조각으로 자동 분할하고, 각 조각을 서버리스 함수에 매핑하여 단계 간 데이터 의존성을 관리합니다.
  • 이전 작업 프ofile링을 활용해 QoS 목표를 충족시키기 위한 최적의 동시성 정도(각 단계당 동시 실행되는 람다 수)를 추론합니다.
  • 라운드로빈, FIFO, 마감일 기반 스케줄링과 같은 동적 스케줄링 정책을 구현하여 작업 우선순위를 정합니다.
  • 실행 진행 상황을 모니터링하여 스트래글러 작업을 조기에 탐지하고 재실행하여 전체 작업 완료 시간을 개선합니다.
  • 지속적인 인프라나 장시간 실행되는 클러스터가 필요 없도록 서버리스 프리미티브(예: AWS Lambda)를 모든 계산에 활용합니다.

실험 결과

연구 질문

  • RQ1기존 아키텍처 재설계 없이도 선언형 프레임워크가 단일 모듈형 데이터 병렬 응용 프로그램을 서버리스 워크로드로 자동 변환할 수 있는가?
  • RQ2사용자가 지정한 성능 및 QoS 목표를 충족시키기 위해 프레임워크가 필요한 동시성 정도를 얼마나 정확하게 예측할 수 있는가?
  • RQ3조기 스트래글러 탐지에 의한 자동 장애 내성 기능이 작업 완료 시간과 성능 예측 가능성 향상에 얼마나 기여하는가?
  • RQ4다양한 데이터 액세스 패턴과 계산 강도를 가진 워크로드에서 프레임워크의 성능은 어떠한가?
  • RQ5서버리스 백엔드에서 복잡한 다단계 데이터 플로우 파이프라인을 지원하면서도 높은 효율성과 낮은 비용을 유지할 수 있는가?

주요 결과

  • Ripple는 동일한 비용에서 전통적인 IaaS/PaaS 배포 대비 최대 80배의 성능 향상을 달성하여 뚜렷한 효율성 향상을 입증했습니다.
  • 이전 프ofile링을 기반으로 신규 작업에 필요한 동시성 정도를 정확하게 추론하여 신뢰할 수 있는 QoS 제공이 가능했습니다.
  • 스트래글러 작업을 조기에 탐지하고 재스케줄링함으로써 다양한 워크로드에서 작업 완료 시간을 단축하고 성능 예측 가능성을 향상시켰습니다.
  • Ripple는 머신러닝, 유전체학, 단백질체학의 세 가지 대규모 응용 프로그램을 성공적으로 지원하여 과학 분야 전반에 걸친 일반화 가능성을 입증했습니다.
  • 작업 도착 패턴과 동시성 수준이 변화하더라도 프레임워크는 견고한 성능을 유지하여 유연성과 확장성의 타당성을 입증했습니다.
  • Ripple의 오픈소스 구현체는 AWS Lambda 기반으로 여러 연구 그룹에서 채택되어 실용성과 사용성의 확립을 확인했습니다.

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

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

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

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