Weekly Lectures

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.
  • Topics:
    • 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.
  • Topics:
    • 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.
  • Topics:
    • 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.
  • Topics:
    • 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