Formal Foundations of Serverless Computing

被引:51
作者
Jangda, Abhinav [1 ]
Pinckney, Donald [1 ]
Brun, Yuriy [1 ]
Guha, Arjun [1 ]
机构
[1] Univ Massachusetts, Amherst, MA 01003 USA
来源
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL | 2019年 / 3卷 / OOPSLA期
基金
美国国家科学基金会;
关键词
serverless computing; distributed computing; formal language semantics;
D O I
10.1145/3360575
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Serverless computing (also known as functions as a service) is a new cloud computing abstraction that makes it easier to write robust, large-scale web services. In serverless computing, programmers write what are called serverless functions, which are programs that respond to external events. When demand for the serverless function spikes, the platform automatically allocates additional hardware and manages load-balancing; when demand falls, the platform silently deallocates idle resources; and when the platform detects a failure, it transparently retries affected requests. In 2014, Amazon Web Services introduced the first serverless platform, AWS Lambda, and similar abstractions are now available on all major cloud computing platforms. Unfortunately, the serverless computing abstraction exposes several low-level operational details that make it hard for programmers to write and reason about their code. This paper sheds light on this problem by presenting lambda(lambda), an operational semantics of the essence of serverless computing. Despite being a small (half a page) core calculus, lambda(lambda), models all the low-level details that serverless functions can observe. To show that lambda(lambda) is useful, we present three applications. First, to ease reasoning about code, we present a simplified naive semantics of serverless execution and precisely characterize when the naive semantics and coincide. Second, we augment lambda(lambda) with a key-value store to allow reasoning about stateful serverless functions. Third, since a handful of serverless platforms support serverless function composition, we show how to extend A with a composition language and show that our implementation can outperform prior work.
引用
收藏
页数:26
相关论文
共 49 条
[1]  
Akkus IE, 2018, PROCEEDINGS OF THE 2018 USENIX ANNUAL TECHNICAL CONFERENCE, P923
[2]   Secure Serverless Computing using Dynamic Information Flow Control [J].
Alpernas K. ;
Flanagan C. ;
Fouladi S. ;
Ryzhyk L. ;
Sagiv M. ;
Winstein K. .
Proceedings of the ACM on Programming Languages, 2018, 2 (OOPSLA)
[3]  
Amazon, 2018, AWS LAMBD DEV GUID I
[4]   Sprocket: A Serverless Video Processing Framework [J].
Ao, Lixiang ;
Izhikevich, Liz ;
Voelker, Geoffrey M. ;
Porter, George .
PROCEEDINGS OF THE 2018 ACM SYMPOSIUM ON CLOUD COMPUTING (SOCC '18), 2018, :263-274
[5]   Supporting Multi-Provider Serverless Computing on the Edge [J].
Aske, Austin ;
Zhao, Xinghui .
47TH INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING (ICPP '18), 2018,
[6]   Verifying distributed programs via canonical sequentialization [J].
Bakst, Alexander ;
Gleissenthall, Klaus V. ;
Kici, Rami Gökhan ;
Jhala, Ranjit .
Proceedings of the ACM on Programming Languages, 2017, 1 (OOPSLA)
[7]  
Baldini Ioana, 2017, S NEW IDEAS NEW PARA
[8]  
Baudart Guillaume, 2018, ACM SIGPLAN INT S NE
[9]  
Bernstein P., 2014, Orleans: Distributed virtual actors for programmability and scalability, MSR-TR-2014-41
[10]  
Bjorkqvist Mathias, 2016, NETW OP MAN S NOMS