- Times and Locations: MWF 11:30 AM–12:20 PM, HRBB 126
- Instructor: Chia-Che Tsai, HRBB 410B
- Office Hours: MW 10:30–11:30 AM, or by appointment.
This course introduces students to fundamental concepts in distributed systems and cloud computing, as well as covers several contemporary topics in applying cloud computing technologies. The materials of this course are based on many influential papers published at top system conferences including ACM SOCC, ACM SOSP, USENIX OSDI, USENIX ATC, USENIX Security, USENIX HotCloud, IEEE IC2E, IEEE S&P, IEEE Transactions on Cloud Computing, etc.
The course will cover topics from operating systems, distributed systems, and system security fields which are critical to current and future cloud computing technologies, such as virtualization, containers, key-value stores, big-data systems, failure detection, resource management and scaling, serverless computing, serializability, consensus, blockchains, application-specific hardware and operating systems, and inter-tenant attacks. Popular frameworks such as MapReduce, HDFS, Apache Hadoop, and Apache Spark will also be discussed in class.
In this course, students will gain the in-depth understanding of the main challenges and approaches that form the cloud platform offerings in industry nowadays. Students will also gain hands-on experience on experimenting and building cloud-based solutions through multiple class projects. The main objective of the course is to enable students to develop the knowledge and critical thinking for resolving the challenges to deploying cloud applications, and to thoroughly understand the efficiency, availability, and security trade-offs in current and future cloud computing platforms.
Upon completion of the course, students should be able to:
- demonstrate understanding of the key research results that enabled the development of the computing industry and being familiar with the classic papers in this new area;
- demonstrate knowledge of the basic technology components that enable offerings such as Amazon AWS, Microsoft Azure, and OpenStack;
- analyze cloud configuration offerings and assess fitness for specific application domains;
- configure software stacks for cloud deployment and automate develop-deploy cycles;
- identify weaknesses and strengths of cloud offering configurations;
- characterize expected performance, availability, and reliability of common multi-tier application when deployed on cloud platforms.
Portions of this course design, organization, policies, syllabus, and website structure came from:
- Bruno Barreto de Figueiredo (Texas A&M)
- Dilma M. Da Silva (Texas A&M)
- Raluca Ada Popa (UC Berkeley)
- Donald E. Porter (UNC at Chapel Hill)