Cloud Computing
Undergraduate, University of Maryland, CS, 2024
The course explores several fundamental topics of cloud computing, including IaaS (e.g., Open Stack, Kubernetes), key big data platforms, and data center networking. The course combines group reading and discussion of influential publications in the field, lectures by the instructor, talks by invited speakers, and a large project. Students will be a part of an agile development team, with extensive experience with GitHub, agile tools, and various technologies. Each course project is solicited from open-source community and will be mentored by an industry leader and/or engineer, or a senior graduate student/postdoc. A project is expected to be done by teams of 3 to 5 students working with a mentor. Projects may use public clouds from our industry partners.
Annoucements
- Thank you, Mark Shuttleworth (CEO and Founder, Cananical), for sharing the thoughts on Trusted Open Source and the Cloud!
- Thank you, Nick Gramsky (DC Site Lead, Microsoft), for lecturing on Large-scale Cloud Environments!
- Thank you, Marc Lichtman (Principal Software Engineer, Microsoft), for lecturing on Docker and Kubernetes!
- Thank you, Yi Fang (Senior Software Development Manager, AWS), for lecturing on Cloud Services!
- Thank you Microsoft Azure and Amazon AWS for agreeing to share their cloud development experience with our students!
- Thank you Microsoft for agreeing to sponsor our course projects with Azure credits!
- Please enroll CMSC498B and email the instructor for any questions.
- An updated speaker list and project descriptions will be available before the semester starts.
Instructors
- Instructor: Prof. Alan Zaoxing Liu
- Office Hours: Friday, 3-4pm, IRB 5138
- TA: Jaechan An, Nengneng Yu
- Office Hours: TBA.
Tentative Syllabus
Date | Topics | Readings | Notes |
---|---|---|---|
8/27 Tue | Course Overview | How to Read, You and Your Research | Project Template, Project Management Guidelines, Example Projects |
8/29 Thu | Overview of Cloud Computing + In-class lab: Intro to Cloud | The Datacenter as a Computer | |
9/3 Tue | Distributed Systems | Google File System, MapReduce | Lecture |
9/5 Thu | Big Data Frameworks | Spark, Hive | |
9/10 Tue | A Glimpse into Cloud Computing and Scale | Guest lecture: Nick Gramsky, Microsoft | |
9/12 Thu | Overview of Virtualization | Xen | |
9/17 Tue | Virtualization II | Container-based OS virtualization | |
9/19 Thu | Project Discussion | ||
9/24 Tue | Datacenter Architectures | ||
9/26 Thu | Datacenter Architectures II | VL2, Aquila | |
10/1 Tue | Cloud Services | Guest Talk: Yi Fang, AWS | |
10/3 Thu | In-class lab: Docker | Guest Lecture: Marc Lichtman, Microsoft | |
10/8 Tue | Storage Systems | Ceph, Flat Datacenter Storage | |
10/10 Thu | Storage Systems and Networking | Ceph, Flat Datacenter Storage | |
10/15 Tue | Resource Management | Mesos | |
10/17 Thu | Resource Management | Borg, Kubernetes | |
10/22 Tue | Advacned Datacenter Networking | DCTCP, P4 | |
10/24 Thu | In-class lab: Kubernates | Guest Lecture: Marc Lichtman, Microsoft | |
10/29 Tue | Resource Disaggregation | InfiniSwap(slides), LegoOS | |
10/31 Thu | Milestone Demos 2 Part I | Presentations from student groups | |
11/5 Tue | Milestone Demos 2 Part II | Presentations from student groups | |
11/7 Thu | Midterm Exam | ||
11/12 Tue | Distributed Systems II | Dynamo, Kafka | |
11/14 Thu | Cloud and Serverless | Serverless | |
11/19 Tue | Fireside Chat with Mark Shuttleworth | Mark Shuttleworth: Founder and CEO of Cananical Ltd. | |
11/21 Thu | Sprint Demo 3 | Presentations from student groups | |
11/26 Tue | Cloud System Reliability | Guest lecture: Chang Lou, UVA | |
11/28 Thu | Thanksgiving Recess | ||
12/3 Tue | Final Presentations I | ||
12/5 Thu | Final Presentations II | ||
TBD | Poster Session in Iribe Lobby | Invite Industry Partners |
Prerequisites
- CMSC 330: Organization of Programming Languages
- CMSC 351: Algorithms
Projects
In addition to paper readings, there will be a major project, starting from the course beginning, with a mentor, from industry, senior graduate student, or one of the instructors.
The project is due by the end of the exam week. The project presentations will be given in the form of a final poster and a demo. There will also be demos scheduled throughout the course to demonstrate regular progress.
Some example final demos:
Grading
- 35%: Project Progress Report Team members typically receive the same project grades, but individual grades may be scaled based on feedback we solicit from your mentor and teammates.
- 10%: project description
- 20%: bi-weekly project demo and status (4 x 5%)
- 5%: project quizzes (checking if you listened to your classmates’ presentations)
- 20%: Midterm Exam
- 25%: Final project result and report
- 20%: Paper quizzes, Piazza discussion, and required project forms
Brief quizzes on reading assignments will be open during first 5 minutes of class.
Evaluation of the project will involve evaluation of your demo, poster, bi-weekly status reports, code reviews, and mentor and project partner reviews.
Course Mechanics
Style: In each topic, the instructor will give one or two introductory lectures, followed by paper discussions by class participants. In addition, there will be one capstone project. Students will be required to read and review papers before the class.
Capstone Project: The project is a teamwork. Projects may use the public clouds via our industry partners (e.g., Microsoft Azure, Amazon AWS.) The project presentations will be given in the form of a final poster and a demo. There will also be demos scheduled throughout the course to demonstrate regular progress.
How to Review Papers: Write a review in four sections, including summary, paper strengths paper weaknesses, and detailed comments.
- Summary (points in sentence or bullet form): What program? Core novel ideas or technical contributions? Summarize approach, mechnisms, or main findings.
- Strengths/Weaknesses: 2-4 points each.
- Detailed comments: Be constructive. Imagine conversation w/ authors. For example,
- Problem: What is it? Is it new? Is it real? Is it important?
- Solution: What is the technique(s)? Is it novel? How is it compared to past solutions? What is the intuition(s)?
- Implementation/evaluation: Does it have a real system prototype? Is the evaluation dataset(s) representative? Does the evaluation cover all aspects?
- Looking forward: Can you come up with a new/different/better solution? Can you find a new/related problem to solve?