A Serverless Architecture for Application-Level Orchestration
This thesis examines the problem of building large-scale applications using the serverless computing model and proposes decentralized, application-level orchestration for serverless workloads. We
demonstrate that application-level orchestration is possible and practical using just the basic APIs
of existing serverless infrastructures, and benefits both cloud users and cloud providers, compared
with standalone orchestrators, the state-of-the-art solution to building large-scale serverless applications. It empowers cloud users with the flexibility of application-specific optimizations. It frees
cloud providers from hosting and maintaining yet another performance-critical service. Furthermore,
the performance and efficiency of application-level orchestration improve as the underlying systems
develop. Thus, cloud providers can direct freed-up resources to core services in their serverless
infrastructure and automatically reaps the benefits of a better orchestrator.
This thesis describes mechanisms and implementations that help realize the goal of applicationlevel orchestration. In particular, we explain the necessity and challenges of decentralizing orchestration and present a system for decentralized orchestration named Unum. Unum introduces an
intermediate representation (IR) language to express execution graphs using only node-local information to decentralize the orchestration logic of applications. Unum implements orchestration as
a library that runs in-situ with user-defined FaaS functions, rather than as a standalone service.
The library relies on a minimal set of existing serverless APIs—function invocation and a few basic
datastore operations—that are common across cloud platforms. Unum ensures workflow correctness
despite multiple executions of non-deterministic functions by using checkpoints to commit to exactly
one output for a function invocation.
Our results show that a representative set of applications scale better, run faster, and cost
significantly less with Unum than a state-of-the-art centralized orchestrator. We also show that
Unum’s IR allows hand-tuned applications to run faster by using application-specific optimizations
and supporting a richer set of application patterns.
We hope the results of this thesis inspire cloud practitioners to reconsider the approach of supporting new functionalities by simply adding more services to the cloud infrastructure. And we
hope to encourage the building of other application-level orchestration systems from the serverless