CS349D: Cloud Computing Technology

Instructors: Christos Kozyrakis and Matei Zaharia
TA: Qian Li
Autumn 2018, Mon/Wed 10:30 AM - 12:20 PM, room 200-030
3 units
Piazza: Class Homepage, Signup Link

The largest change in the computer industry over the past five years has arguably been the emergence of cloud computing: organizations are increasingly moving their workloads to managed public clouds and using new, global-scale services that were simply not possible in private datacenters. However, both building and using cloud systems remains a black art with many difficult research challenges. This research seminar will cover industry and academic work on cloud computing and survey key technical issues. Students will read and discuss a paper per class meeting and do a quarter-long project in groups of 2-3.

Grading: The main evaluation will be around a project that students propose and execute during the course. Apart from that, each student is expected to present one of the papers and to participate in class. The grading rubric will be 70% project, 15% paper presentation and 15% participation.


Class Format: You will need to fill out a Google form with answers to a few summary questions before each class starts. The form will be emailed to students each week. During class, one or two students will spend 10-15 minutes presenting the day's paper, and will then lead the subsequent discussion. Another student will take notes on the presentation and discussion.

Class Presentations/Notes Google Folder: If you are assigned to take notes for a class, please take the notes in a Google Doc and add them to this folder once you are done. If you are presenting, please put Google Slides for your presentation in this folder. Request write permissions to the folders by clicking on the "CS 349D-Aut1819-Notes/Presentations" dropdown, then the "Share" item, then the "Advanced" button in the lower right corner.

DateTopicReadingsClass Notes
9/24 Introduction A View of Cloud Computing Slides
9/26 Storage Dynamo: Amazon's Highly Available Key-value Store Slides
10/1 CAP Theorem CAP Twelve Years Later: How the "Rules" Have Changed Slides
10/3 Cloud Economics Guest Lecture: Solomon Boulos (Google)
Cloud computing is upending how people and companies do their work. Understanding the economics of cloud computing is unfortunately confusing and sometimes complex. The web is awash in articles arguing that cloud is either ridiculously overpriced or obviously cheaper than DIY. Even economic comparisons between two cloud providers can be rife with errors and incorrect assumptions.
This talk seeks to give a background in some of the core economic models in cloud computing, along with detailed examples. By the end, the hope is that you know how to think about the tradeoffs of various cloud services, different providers, and how to do your own analysis.
Suggested Reading: AWS vs. GCP, GCP vs. AWS , and DIY vs. AWS
Background: GCP and AWS
10/8 Databases Guest Lecture: Sailesh Krishnamurthy (Amazon)
Amazon Aurora: Design Considerations for High Throughput Cloud-Native Relational Databases
Background: Database Recovery Slides from UC Berkeley
10/10 Analytics Systems Spark SQL: Relational Data Processing in Spark Slides
10/15 Streaming Systems The Dataflow Model: A Practical Approach to Balancing Correctness, Latency, and Cost in Massive-Scale, Unbounded, Out-of-Order Data Processing Slides
10/17 Resource Managers Large-scale cluster management at Google with Borg
Skim: Borg, Omega, and Kubernetes
10/22 Resource Allocation Resource Central: Understanding and Predicting Workloads for Improved Resource Management in Large Cloud Platforms Slides
10/24 Serverless SAND: Towards High-Performance Serverless Computing, and
Occupy the Cloud: Distributed Computing for the 99%
10/29 Monitoring and Debugging Performance Analysis of Cloud Applications Slides
10/31 Programming Models Erlang - A survey of the language and its industrial applications
Skim: Go Concurrency, Reactive Programming
11/5 ML Platforms Michelangelo and FBLearner Flow
Optional: TFX
11/7 ML Serving PRETZEL: Opening the Black Box of Machine Learning Prediction Serving Systems Slides
11/12 Hardware A Configurable Cloud-Scale DNN Processor for Real-Time AI
Optional: Azure Accelerated Networking: SmartNICs in the Public Cloud
11/14 Security Ryoan: A Distributed Sandbox for Untrusted Computation on Secret Data Slides
11/19 Thanksgiving
11/21 Thanksgiving
11/26 Privacy Privacy Integrated Queries
Optional: Apple Differential Privacy Overview, Details
11/28 SRE Guest Lecture: Benjamin Treynor Sloss (Google) Slides
12/3 Edge Computing The Emergence of Edge Computing Slides
12/5 Project Presentations

Paper Presentations

Each student will be assigned a paper to present during the class. You should prepare a 10-15 minute presentation on the paper. In your presentation, cover each of the following:


Students will propose and run a quarter-long project, ideally in groups of 2-3. It is fine to use your existing research project if it is relevant to the course and the instructor approves. You will present the project at the end of the course and write a 10-12 page report. See here for a list of project ideas.

Project timeline:

See here for instructions for instructions on each phase of the project.

Adapted from a template by Andreas Viklund.