The course focuses in teaching the distributed systems concepts through projects. The lectures prepare the students to execute the assignments.
Project report tenmplate
Lecture 1 - January 11th, 2019
- Goal: Students should understand what the course is about and what is expected from them.
- Introduce students to software as a service life cycle
- Introduce students to Distributed Systems
- Introduce students to Lecture Topics
- Introduce students to project Themes
- Class Overview Slides
Lecture 2 - January 18th, 2019
- Goal: Students will understand how to make good napkin drawings, map these to their architectures, and keep the two distinct.
- Napkin drawing principles, review and refinement of student team efforts.
Lecture 3 - January 25th, 2019
- Goal: students will understand the the use of Git and GitHub, open source governance. Students will have firm understanding of their initial microservice system and its communications.
- Git and GitHub
- Microservices: distributed components, APIs, and communications
- Git Lecture Slides
Lecture 4 - February 1st, 2019
- Goal: students will understand inter-service communication patterns and APIs for microservices.
- Messaging basics, RabbitMQ
- APIs and Data Models with Apache Thrift
- Messaging Slides
Lecture 5 - February 8th, 2019
- Goal: Students will understand basics of continous integration and deployment concepts and how they apply to microservices
- Topic: Continuous Integration and Deployment
- CI/CD Lecture Slides
Lecture 6 - February 15th, 2019
Lecture 7 - March 22nd, 2019
- Goals:Students will understand the basics of log-centric architecture with Apache Kafka; students will understand the basics of container management with Kubernetes.
- Kafka Lecture Slides
- Kubernetes Material
Lecture 8 - March 29nd, 2019
- Goals: Students will understand the basics of the RAFT consensus protocol for distributed state machines
- RAFT Lecture Slides
Lecture 9 - April 5th, 2019
- Goals: Students will understand how RAFT clusters are updated and how this may be applied to continuous deployment scenarios; students will understand Byzantine Failures in RAFT and some counter measures.
- RAFT Lecture Slides
Lecture 10 - April 19th, 2019
- Goals: Students will understand basic security concepts for science gateways and other distributed systems.
- OAuth2 Lecture Slides