Master Defense - Garrett McGrath
|Start:||4/4/2017 at 12:00PM|
|End:||4/4/2017 at 2:30PM|
|Location:||257G Fitzpatrick Hall|
Faculty and students are welcome to attend the presentation portion of the defense.
April 4, 2017 12:30 pm 257G Fitzpatrick
Adviser: Dr. Paul Brenner
Dr. Peter Bui Dr. Douglas Thain
Serverless Computing: Applications, Implementation, and Performance
Following the lead of AWS Lambda, services such as Azure Functions, Google Cloud Functions, Apache OpenWhisk, Iron.io IronFunctions, and OpenLambda have emerged as a new cloud offering coined "serverless computing", where application logic is split into multiple functions and executed in response to events, allowing developers to easily compose applications distributed across many services within a cloud. Serverless computing is the newest tool in the rapidly evolving suite of application infrastructure technologies which have progressed from bare metal hardware provisioning, to traditional virtualization, to cloud IaaS, to containerization, and now to function and event-based computing. This infrastructure evolution and the new application engineering paradigms it introduces motivate study of serverless computing as a disruptive force in commercial cloud technologies.
In this work, I study the implementation and behavior of both serverless platforms and the applications built upon them. I detail real world applications utilizing these platforms, discuss how serverless computing enables and/or limits these applications compared to IaaS technologies, and explore how existing applications can be adapted to run in serverless environments. These applications motivate new software design paradigms and highlight compelling use case scenarios and barriers to entry for serverless computing. Additionally, I 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. Metrics are proposed to evaluate the execution performance of serverless platforms and conduct tests on the prototype as well as AWS Lambda, Azure Functions, Google Cloud Functions, and IBM's Apache OpenWhisk. Measurements of these metrics show the prototype achieving greater throughput than other platforms at most concurrency levels, and I examine the scaling and instance expiration trends in the implementations.