CS 854: Cloud and Serverless Computing


Instructor: Bernard Wong
Email: bernard@uwaterloo.ca
Time: Every Monday at 1:00-3:50 Spring 2022
Location: DC 2568
URL : http://www.cs.uwaterloo.ca/~bernard/courses/cs854-S22


CS854 is a graduate course on current research topics in cloud and serverless computing. It is offered as a "paper-chase" course: we read and discuss important papers on different subtopics each week. Students must also complete a final project that explores a new idea in one of the sub-topics covered in the course. The goal is that by the end of the course, the final project can serve as a starting point for a workshop paper submission.


The following is the tentative course grades breakdown.

Paper Reviews

Before each class, each student must submit a review for two of the papers to be discussed that day. A review should include a paragraph summarizing the core contributions of the paper, and a second paragraph that identifies weaknesses in the paper and areas in which the paper can be expanded upon.

Please inform me via email the circumstances for each late or missed submission.

Paper Presentations

Each student is expected to present one or more papers to be discussed in class for at least one class. The paper presentations should follow the same format as a conference talk. The presenter should be prepared with sufficient background knowledge of the related works in the area to answer broad questions and lead the class discussion.

Presenters: Please send me a copy of your slides at least two days before your presentation. I will provide feedback on the slides the next day. Do not just re-use slides provided by the paper authors. You may borrow, with attribution, figures and animations, but your slides should be created independently.


Date Topic
5/2 Introduction: General course description. Cloud and serverless computing overview.

Above the Clouds: A Berkeley View of Cloud Computing

Cloud Programming Simplified: A Berkeley View on Serverless Computing

A Scalable, Commodity Data Center Network Architecture

Xen and the Art of Virtualization

MapReduce: Simplified Data Processing on Large Clusters

5/9 Understanding serverless platforms and workloads

Peeking Behind the Curtains of Serverless Platforms (Yixin Yang)

Serverless in the Wild: Characterizing and Optimizing the Serverless Workload at a Large Cloud Provider (Muhammad Hassan)

Characterizing serverless platforms with serverlessbench (Senyu Fu)

Firecracker: Lightweight Virtualization for Serverless Applications (Kriti Kathuria)

5/16 Cold starts

Catalyzer: Sub-millisecond Startup for Serverless Computing with Initialization-less Booting (Kangcheng Xu)

SEUSS: skip redundant paths to make serverless fast (Bernard)

Xanadu: Mitigating cascading cold starts in serverless function chain deployments (Bernard)

Particle: ephemeral endpoints for serverless networking (Joe Sun)

5/30 Platforms

Nightcore: Efficient and Scalable Serverless Computing for Latency-Sensitive, Interactive Microservices (Lasantha Fernando)

Faastlane: Accelerating Function-as-a-Service Workflows (Yifan Zhang)

Atoll: A Scalable Low-Latency Serverless Platform (Yandong Zhu)

Cloudburst: Stateful Functions-as-a-Service (Kriti Kathuria)

6/6 Storage

Pocket: Elastic Ephemeral Storage for Serverless Analytics (Bernard)

Faa$T: A Transparent Auto-Scaling Cache for Serverless Applications (Mohammad Khalaji)

Narrowing the Gap Between Serverless and its State with Storage Functions (Nimmi Rashinik Weeraddana)

Boki: Stateful Serverless Computing with Shared Logs (Zhenyang Xu)

6/13 Performance and QoS

ServerMore: Opportunistic Execution of Serverless Functions in the Cloud (Yaoyu Zhao)

FaasCache: keeping serverless computing alive with greedy-dual caching (Aravind Vellora Vayalapra)

IceBreaker: warming serverless functions better with heterogeneity (Gan Wang)

Sequoia: enabling quality-of-service in serverless computing (Muhammad Arsalan Khan)

6/20 Programming

Occupy the cloud: distributed computing for the 99% (Amy Bhatia)

From Laptop to Lambda: Outsourcing Everyday Jobs to Thousands of Transient Functional Containers (Xingyu Liu)

Kappa: A Programming Framework for Serverless Computing (Mohammad Moridi)

New Directions in Cloud Programming (Ru Ji)

6/27 Serverless for ML

A Case for Serverless Machine Learning (Divyang Arora)

Towards Demystifying Serverless Machine Learning Training (Yandong Zhu)

Cirrus: a Serverless Framework for End-to-end ML Workflows (Rohan Bhowmik)

Distributed Machine Learning with a Serverless Architecture (Odunayo Ogundepo)

7/4 Applications (1)

Lambada: Interactive Data Analytics on Cold Data Using Serverless Cloud Infrastructure (Xingyu Liu)

Caerus: NIMBLE Task Scheduling for Serverless Analytics (Bernard)

Jiffy: elastic far-memory for stateful serverless analytics (Gan Wang)

Shuffling, Fast and Slow: Scalable Analytics on Serverless Infrastructure (Nimmi Rashinika Weeraddana)

7/11 Applications (2) and Fault Tolerance

Llama: A Heterogeneous & Serverless Framework for Auto-Tuning Video Analytics Pipelines (Rohan Bhowmik)

Sprocket: A Serverless Video Processing Framework (Mohammad Khalaji)

A Fault-Tolerance Shim for Serverless Computing (Mohammad Moridi)

Fault-tolerant and transactional stateful serverless workflows (Hadi Omidi)

7/18 Security, Confidentiality, Multi-Cloud, and Harvested Resources

Confidential Serverless Made Efficient with Plug-In Enclaves (Bernard)

Valve: Securing Function Workflows on Serverless Computing Platforms (Bernard)

On Merits and Viability of Multi-Cloud Serverless (Yifan Zhang)

Faster and Cheaper Serverless Computing on Harvested Resources (Ru Ji)

7/25 Final Project Presentations

Last modified: May 17, 2022