본문 바로가기

Research Log/Performance modeling

[20 ATC] Serverless in the Wild: Characterizing and Optimizing the Serverless Workload at a Large Cloud Provider

FaaS(Function as a Service)는 클라우드의 서버리스 백엔드에 compuation을 제공하는 방식으로 배포된다. 이 패러다임에서는 클라우드 공급자에게 리소스를 할당하고 프로비저닝하는 복잡성을 전환하여 가능한 가장 낮은 리소스 비용으로 항상 사용 가능한 리소스(즉, cold start가 ​​없는 빠른 function call)를 제공하는 것이 중요하다. 이를 위해서 클라우드 공급자는 FaaS 워크로드의 특성을 깊이 이해해야 한다. 하지만 이러한 특성에 대해 공개된 정보는 거의 또는 전혀 없었다. 따라서 이 논문에서는 먼저 Azure Functions의 전체 프로덕션에서 FaaS 워크로드를 특성화한다. 예를 들어 대부분의 함수가 매우 드물게 호출된다는 것을 보여주지만 호출 빈도는 8단계로 나눌 수 있다는 것을 보인다. 관찰을 통해 얻은 특성들을 통해 적은 리소스를 사용하면서 function의 cold start ​​수를 크게 줄이는 실용적인 리소스 관리 정책을 제안한다.

 

구현물은 Apache OpenWhisk에서 개발되고 있으며 pre-warm을 통해 function의 latency를 줄이고, 불필요한 keep-alive를 제거하여 memory 효율을 높이는 것을 목적으로 하고 있다.