Serverless Computing: Design, Implementation, and Performance

Garrett McGrath, Paul Brenner

2017 · 360 citations · 12 references

Concepts

TL;DR

The platform is built on .NET, deployed in Microsoft Azure, and uses Windows containers as function execution environments. The study designs a performance‑oriented serverless platform, proposes metrics for evaluating execution performance, tests it against major cloud services, and identifies gaps and future research directions. The platform is implemented on .NET in Azure using Windows containers, addressing function scaling, container discovery, lifecycle, and reuse, and evaluated with proposed metrics against AWS Lambda, Azure Functions, Google Cloud Functions, and IBM OpenWhisk. Measurements show the prototype achieves higher throughput than other platforms across most concurrency levels, with analysis of scaling and instance expiration trends, while also highlighting design gaps and proposing solutions.

Abstract

We present the design of a novel performance-oriented serverless computing platform implemented in. NET, deployed in Microsoft Azure, and utilizing Windows containers as function execution environments. Implementation challenges such as function scaling and container discovery, lifecycle, and reuse are discussed in detail. We propose metrics to evaluate the execution performance of serverless platforms and conduct tests on our prototype as well as AWS Lambda, Azure Functions, Google Cloud Functions, and IBM's deployment of Apache OpenWhisk. Our measurements show the prototype achieving greater throughput than other platforms at most concurrency levels, and we examine the scaling and instance expiration trends in the implementations. Additionally, we discuss the gaps and limitations in our current design, propose possible solutions, and highlight future research.

References

12