Projects and Close Readings in Software Systems:
Serverless Computing

CS 260r Spring 2019

Lectures:      MW 10:30–11:45am, Pierce 213 (Brooks Room)
Anonymous feedback
Instructor:      Eddie Kohler
Office hours:      MW 4:15+, Pierce 301 and then MD 327

Week 1 Mon 1/29
Wed 1/25
From computer utility to current serverless
“The Computer Utility and the Community.” R. M. Fano. In Proc. 1967 IEEE International Convention Record.
“Serverless Computing: One Step Forward, Two Steps Back.” Joseph M. Hellerstein, Jose Faleiro, Joseph E. Gonzalez, Johann Schleier-Smith, Vikram Sreekanti, Alexey Tumanov and Chenggang Wu. In Proc. CIDR 2019.

Survey question (Google Form)! Both Fano and Hellerstein et al. discuss consequences of the computer utility for “community,” especially in Fano’s concluding section and the last paragraphs of Hellerstein et al.’s §3.2. How do you think Fano would react to Hellerstein et al.’s notion of API simplicity “chang[ing] the mindset of the developer community”?

Week 2 Mon 2/4
The Xen virtual machine monitor (presented by James Larisch)
“Xen and the art of virtualization.” Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, and Andrew Warfield. In Proc. SOSP 2003.

Survey question (Google Form)! If Xen were part of the software management plane for a serverless computing offering, such as Amazon Lambda, which of its components would manage starting and stopping serverless functions? Outline at a high level how you think the start process would work.

Wed 2/6
Unikernels (presented by Vincent Viego)
“Unikernels: The Rise of the Virtual Library Operating System.” Anil Madhavapeddy and David J. Scott. In Comm. ACM 57(1), Jan. 2014.

Survey question (Google Form!) The Xen paper contrasts with Denali as follows: Denali “does not address the problem of supporting application multiplexing, nor multiple address spaces…each virtual machine essentially hosts a single-user single-application unprotected ‘operating system’.” Outline one important way unikernels differ from Denali-style single-user/app OSes, if there is one.

Week 3 Mon 2/11
KVM and Firecracker (presented by Michael Colavita)
“kvm: The Linux Virtual Machine Monitor.” Avi Kivity, Yaniv Kamay, Dor Laor, Uri Lublin, and Anthony Ligouri. In Proc. 2007 Ottawa Linux Symposium.
“The Firecracker Virtual Machine Monitor.” Azhar Desai. Linux Weekly News, Jan. 2019.
“Firecracker Design.” Amazon Firecracker design document.
Further information:
“KVM: The First Year.” Avi Kivity. In Proc. 2007 KVM Forum.

Survey question (Google Form!) The KVM paper we read was published soon after KVM was developed; Firecracker is a recent KVM-based technology. Name some problems the KVM developers have addressed since the KVM paper’s publication, based on the evidence of Firecracker.

Wed 2/13
Lambda show-and-tell
Week 4 Mon 2/18
Presidents’ Day holiday
Wed 2/20
Evaluating serverless systems (presented by Alisha Ukani)
“Peeking Behind the Curtains of Serverless Platforms ”, Liang Wang, Mengyuan Li, Yinqian Zhang, Thomas Ristenpart, and Michael Swift, Proc. USENIX ATC 2018.

Survey questions (Google Form!) 1. I was very surprised that Google’s “infrastructure update in February 2018” made coldstart latencies 4x slower on average! Why might this have occurred? 2. Describe something else the authors discovered that surprised you.

Week 5 Mon 2/25
Pywren and Numpywren (presented by Juan Vicente Esteller)
“Occupy the Cloud: Distributed Computing for the 99%”, Eric Jonas, Qifan Pu, Shivaram Venkataraman, Ion Stoica, and Benjamin Recht, Proc. ACM SoCC 2017.
“numpywren: Serverless Linear Algebra”, Vaishaal Shankar, Karl Krauth, Qifan Pu, Eric Jonas, Shivaram Venkataraman, Ion Stoica, Benjamin Recht, and Jonathan Ragan-Kelley, arXiv 1810.09679 (2018).

Note: There’s a lot to read here! Don’t worry and don’t get bogged down; the numpywren paper has some linear algebra stuff not particularly important for our purposes.

Survey question (Google Form!) Both papers end with some suggestions for future work for serverless providers and for serverless users. (As have some of the other papers we’ve read.) Respond to these suggestions. (Example jumping-off points: Do the suggestions overlap? Which suggestions seem most difficult, or to require research?)

Wed 2/27
ExCamera (presented by Alex Wendland)
“Encoding, Fast and Slow: Low-Latency Video Processing Using Thousands of Tiny Threads”, Sadjad Fouladi, Riad S. Wahby, Brennan Shacklett, Karthikeyan Vasuki Balasubramaniam, William Zeng, Rahul Bhalerao, Anirudh Sivaraman, George Porter, and Keith Winstein, Proc. USENIX NSDI 2017.

Survey question (Google Form!) ExCamera inspired pywren (see p374). Contrast the designs of ExCamera with pywren or numpywren (your choice). For instance, does one of the systems use more AWS services than the other?

Week 6 Mon 3/4
A project in progress (presented by Benjamin Lee)
“ an entirely serverless web tool for DNA sequence visualization”, Benjamin D. Lee, Michael A. Timony, and Pablo Ruiz, under submission.

Survey question (Google Form!) Describe, as precisely as you’d like, an experiment that Ben could run to evaluate systems aspects of his serverless DNA visualization system.

Wed 3/6
Pocket (presented by Yang Zhou)
“Pocket: Elastic Ephemeral Storage for Serverless Analytics”, Ana Klimovic, Yawen Wang, Patrick Stuedi, Animesh Trivedi, Jonas Pfefferle, and Christos Kozyrakis, Proc. OSDI 2018.

Survey question (Google Form!) Section 2.1 lists four requirements for ephemeral storage. How do these requirements map onto features of the Pocket system design described in Section 3.2 and Figure 4? Which systems features correspond to which requirements?

Week 7 Mon 3/11
Resource containers and Linux containers
“Resource Containers: A New Facility for Resource Management in Server Systems”, Gaurav Banga, Peter Druschel, and Jeffrey C. Mogul, Proc. OSDI 1999
Skim: “An Updated Performance Comparison of Virtual Machines and Linux Containers”, Wes Felter, Alexandre Ferreira, Ram Rajamony, and Juan Rubio, IBM Research Report 2014.

Survey question (Google Form!) Which Linux container/namespace features correspond most closely to resource containers? Which Linux container/namespace features provide features not supported by resource containers?

Wed 3/13
Project pitches
Week 8 Mon 3/25
Wed 3/27
Language-runtime serverless (presented by Mark Wilkening)
“Putting the ‘Micro’ Back in Microservice”, Sol Boucher, Anuj Kalia, David G. Andersen, and Michael Kaminsky, Proc. USENIX ATC 2018
AND “Spectre is here to stay: An analysis of side-channels and speculative execution”, Ross Mcilroy, Jaroslav Sevcik, Tobias Tebbi, Ben L. Titzer, and Toon Verwaest, arXiv:1902.05178v1, only §1 and §3.5–5

Survey questions (Google Form!) Discuss how the Spectre results impact the arguments in the microservice paper. Are Spectre-based arguments the best arguments against language-only microservice isolation, or are there others?

Week 9 Mon 4/1
Cluster scheduling (presented by Athena Kan)
“Large-scale cluster management at Google with Borg”, Abhishek Verma, Luis Pedrosa, Madhukar Korupolu, David Oppenheimer, Eric Tune, and John Wilkes, Proc. EuroSys 2015

Survey question (Google Form!) The Borg design defines a number of abstractions and algorithms, but these algorithms include many special cases for specific parameters. Describe two or more special cases and explain why you think these special cases are important.

Wed 4/3
Serverless function composition (presented by Dan Inge)
“The serverless trilemma: function composition for serverless computing”, Ioana Baldini, Perry Cheng, Stephen J Fink, Nick Mitchell, Vinod Muthusamy, Rodric Rabbah, Philippe Suter, and Olivier Tardieu, Proc. ACM SIGPLAN Onward! 2017

Survey question (Google Form!) The paper gives multiple syntaxes for composing serverless functions, including Table 1 (BNF), Table 2 (JavaScript), and sections 2.1–2.3 (OpenWhisk). Describe how these syntaxes can be translated into one another, or why that is not possible.

Week 10 Mon 4/8
Formal models of serverless computing (presented by Harshita Gupta and Eric Lu)
“Formal Foundations of Serverless Computing”, Abhinav Jangda, Donald Pinckney, Samuel Baxter, Breanna Devore-McDonald, Joseph Spitzer, Yuriy Brun, and Arjun Guha, arXiv:1902.05870v2 (2019)
Note! This paper has an extensive appendix that you do not need to read.

Survey questions (Google Form!) (1) Does the SPL programming language solve the serverless trilemma? Why or why not? (2) Some SPL programs would be easier for a service provider to run than others. Describe an SPL program that would be expensive or difficult for the service provider to run.

Wed 4/10
Cloud attacks (presented by William Wang)
“Bolt: I Know What You Did Last Summer… In the Cloud”, Christina Delimitrou and Christos Kozyrakis, Proc. ASPLOS 2017

Survey questions (Google Form!) (1) Bolt can “correctly identif[y] the job’s resource characteristics” 385 out 436 times. What does this mean, specifically? Why does it matter? (2) Figure 12 is the heart of the evaluation. What is an anomaly you observe in this figure?

Week 11 Mon 4/15
Information flow (presented by Kristen Eberts)
“Secure serverless computing using dynamic information flow control”, Kalev Alpernas, Cormac Flanagan, Sadjad Fouladi, Leonid Ryzhyk, Mooly Sagiv, Thomas Schmitz, and Keith Winstein, Proc. of ACM on PL 2(118), Nov. 2018

Survey questions (Google Form)! (1) Discuss how results of our other readings, including “Peeking Behind the Curtain” and Bolt, impact Trapeze’s security guarantees. (2) Discuss how Trapeze relates to your project (how it complements your project, how its ideas might inspire your project—anything), or say why Trapeze and your project don’t usefully relate.

Wed 4/17
Debugging (presented by William Qian)
“Canopy: An End-to-End Performance Tracing And Analysis System”, Jonathan Kaldor, Jonathan Mace, Michał Bejda, Edison Gao, Wiktor Kuropatwa, Joe O’Neill, Kian Win Ong, Bill Schaller, Pingjia Shan, Brendan Viscomi, Vinod Venkataraman, Kaushik Veeraraghavan, and Yee Jiun Song, Proc. SOSP 2017

Survey question! Applications orchestrate multiple serverless functions in several different ways—using an orchestration language (Amazon Step Functions, the SPL), using a scheduler (gg, numpywren), or dynamically (OpenWhisk conductors). Pick one of these and describe how it could be adapted to Canopy.

Week 12 Mon 4/22
Virtual machine cloning and primitives (presented by David Gardner)
“Scalability, Fidelity, and Containment in the Potemkin Virtual Honeyfarm”, Michael Vrable, Justin Ma, Jay Chen, David Moore, Erik Vandekieft, Alex C. Snoeren, Geoffrey M. Voelker, and Stefan Savage, Proc. SOSP 2005

Survey question! (1) Some aspects of Potemkin apply to serverless deployments, some do not. Name a specific aspect of serverless computing that Potemkin could improve, and describe which Potemkin ideas would help. (2) Name a component of Potemkin that would not be useful in serverless computing. Explain briefly.

Wed 4/24
No class; optionally visit Eddie’s office to check in
Week 13 Mon 4/29
GPU virtualization (presented by David Ralph Hughes)
“A Full GPU Virtualization Solution with Mediated Pass-Through”, Kun Tian, Yaozu Dong, and David Cowperthwaite, Proc. USENIX ATC 2014
Wed 5/1
Summary and retrospective
“Cloud Programming Simplified: A Berkeley View on Serverless Computing”, Eric Jonas, Johann Schleier-Smith, Vikram Sreekanti, Chia-Che Tsai, Anurag Khandelwal, Qifan Pu, Vaishaal Shankar, Joao Menezes Carreira, Karl Krauth, Neeraja Yadwadkar, Joseph Gonzalez, Raluca Ada Popa, Ion Stoica, and David A. Patterson, Technical Report No. UCB/EECS-2019-3, 2019