This course will be an in-depth study of the algorithmic and implementation challenges in building large scale distributed applications. Topics include distributed coordination, scheduling, consistency issues, and fault tolerance algorithms. The course will cover how fundamental distributed systems concepts are applied to cloud computing environments. The course will mix algorithmic concepts and practical implementations built using Amazon’s cloud services; substantial programming experience is required.
Prerequisites: CSCI 6212 Design and Analysis of Algorithms, CSCI 3411 undergraduate Operating Systems.
Announcements
- Attendance form
- Your second round of Practice or your Final Project is due Sunday December 2nd.
- You must post your project proposal for approval to Piazza before class on Friday November 2nd.
- Your first round of Practice is due Monday October 29th.
- Post questions to the Piazza Message Board
- This website is under construction. See the Syllabus for more info.
Schedule
Topic 1 | Intro to Distributed Systems and the Cloud Account Setup HW 1 - MsgBoard: Due 9/7 10AM |
Topic 2 | Network Programming (Sockets) Account Info Quiz HW 2 - KV Store: Groups must be formed by 9/14, Due 9/21 10AM |
Topic 3 | Servers and Virtualization (EC2, VMs, Containers) |
Topic 4 | Networks and Distributed Control (SDN, NFV) |
Topic 5 | Storage and Fault Tolerance (S3, EBS) |
Topic 6 | Ordering, and Consistency (DynamoDB, Riak) Clocks Worksheet |
Topic 7 | Scalable Web Services and Serverless Computing (nginx, memcached, microservices, Lambdas) |
Exam | Exam will be in class, Friday 11/30 - Practice problems |
Topic 8 | Emerging Cloud Technologies |