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

DateTopicsReadingsNotes
8/27 TueCourse OverviewHow to Read, You and Your ResearchProject Template, Project Management Guidelines, Example Projects
8/29 ThuOverview of Cloud Computing + In-class lab: Intro to CloudThe Datacenter as a Computer 
9/3 TueDistributed SystemsGoogle File System, MapReduceLecture
9/5 ThuBig Data FrameworksSpark, Hive 
9/10 TueA Glimpse into Cloud Computing and ScaleGuest lecture: Nick Gramsky, Microsoft 
9/12 ThuOverview of VirtualizationXen 
9/17 TueVirtualization IIContainer-based OS virtualization 
9/19 ThuProject Discussion  
9/24 TueDatacenter Architectures  
9/26 ThuDatacenter Architectures IIVL2, Aquila 
10/1 TueCloud ServicesGuest Talk: Yi Fang, AWS 
10/3 ThuIn-class lab: DockerGuest Lecture: Marc Lichtman, Microsoft 
10/8 TueStorage SystemsCeph, Flat Datacenter Storage 
10/10 ThuStorage Systems and NetworkingCeph, Flat Datacenter Storage 
10/15 TueResource ManagementMesos 
10/17 ThuResource ManagementBorg, Kubernetes 
10/22 TueAdvacned Datacenter NetworkingDCTCP, P4 
10/24 ThuIn-class lab: KubernatesGuest Lecture: Marc Lichtman, Microsoft 
10/29 TueResource DisaggregationInfiniSwap(slides), LegoOS 
10/31 ThuMilestone Demos 2 Part I Presentations from student groups
11/5 TueMilestone Demos 2 Part II Presentations from student groups
11/7 ThuMidterm Exam  
11/12 TueDistributed Systems IIDynamo, Kafka 
11/14 ThuCloud and ServerlessServerless 
11/19 TueFireside Chat with Mark ShuttleworthMark Shuttleworth: Founder and CEO of Cananical Ltd. 
11/21 ThuSprint Demo 3 Presentations from student groups
11/26 TueCloud System ReliabilityGuest lecture: Chang Lou, UVA 
11/28 ThuThanksgiving Recess  
12/3 TueFinal Presentations I  
12/5 ThuFinal Presentations II  
TBDPoster Session in Iribe LobbyInvite 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?