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

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