Spring 2021

The course focuses in teaching the distributed systems concepts through projects. The lectures prepare the students to execute the assignments.

Lecture 1
January 19th, 2021
GOAL

Students should understand what the course is about and what is expected from them.

TOPICS
  • Introduce students to the course format
  • Introduce students to Cyberinfrastructure, Airavata, Applied Distributed Systems
  • Introduce students to project Themes
Class Introduction Slides Lecture 1 Recording
Lecture 2
January 21st, 2021
GOAL

Students should further understand the expectations from course and project action plan.

TOPICS
  • Discuss expected time commitments.
  • Introduce Cloud Native and Microservice Concepts.
  • Introduce students to Lecture Topics.
Course and Lectures Overview Slides Lecture 2 Recording
Lecture 3
January 26th, 2021
GOAL

User-Centric Design

TOPICS
  • User Centric Design
  • Napkin Diagrams, Flow Charts, UX Mockups
  • Details on Project #1
UX Design and Project 1 Lecture 3 Recording
Lecture 4
January 28th, 2021
GOAL

Git Overview

TOPICS
  • Git Branching Styles
  • Open Source Project Governance
Git Overview Slides Lecture 4 Recording
Lecture 5
February 2nd, 2021
GOAL

Students should understand data models and start defining them for the projects.

TOPICS
  • Data Serialization: Protocol Buffers, Thrift
  • Binary RPC: Thrift, gRPC, Avro
Data Serialization Slides Lecture 5 Recording
Lecture 6
February 4th, 2021
GOAL

Messaging and Microservices

TOPICS
  • Microservices messaging
  • Rabbit-MQ concept overview
Introduction to Messaging Slides Lecture 6 Recording
Lecture 7
February 9th, 2021
GOAL

Students should understand how to use binary data serialization frameworks

TOPICS
  • Protocol Buffers Data Serialization
  • gRPC and Thrift Binary RPC Frameworks
Protocol Buffers, Thrift and gRPC Lecture 7 Recording
Lecture 8
February 11th, 2021
GOAL

Students should understand basic concepts of log centric architectures, fault tolerance, and scaling out messaging throughput by examining Apache Kafka as a case study.

TOPICS
  • Characteristics of cloud native systems: fault tolerance and configurable scalability
  • Basic concepts of log-centric architecture
  • Apache Kafka case study
Scalable, Fault-Tolerant Messaging in Distributed Systems Lecture 8 Recording
Lecture 9
February 18th, 2021
GOAL

Students should understand the basics of the log-centric systems and distributed state machine management

TOPICS
  • Queue-centric distributed systems
  • Log-centric distributed systems
Log-Centric Distributed Systems and Raft Lecture 9 Recording
Lecture 10
February 23rd, 2021
GOAL

Students should understand the basics of the Raft consensus protocol

TOPICS
  • Raft basics
  • Leader election
Log-Centric Distributed Systems and Raft Lecture 10 Recording
Lecture 11
February 25th, 2021
GOAL

Containers Introduction

TOPICS
  • Project 2 Reflections
  • Containers
Project 2 Reflections and Containers Lecture 11 Recording
Lecture 12
March 2nd, 2021
GOAL

Advacned RAFT Topics

TOPICS
  • Continous Delivary
  • Log Management
Lecture 12 Recording
Lecture 13
March 4th, 2021
GOAL

Class mid course checkin

TOPICS
  • Architecture Re-Writes
  • Project Review
Lecture 13 Recording
Lecture 14
March 11th, 2021
GOAL

Container Orchestration

TOPICS
  • Cluster Management Frameworks
  • Kubernetes
Kubernetes Introduction Lecture 14 Recording
Midterm Presentations 1
March 16th, 2021
Expectations

Teams will present the project

Project Teams
  • Panorama, Persona, PingIntelligence
MidTerm 1 Recording
Midterm Presentations 2
March 18th, 2021
Expectations

Teams will present the project

Project Teams
  • PixelGram, Scrapbook, Swishh
MidTerm 2 Recording
Lecture 15
March 23rd, 2021
GOAL

Jetstream Overview

TOPICS
  • Jetstream Cloud Introduction
  • Goals for CI/CD
Jetstream Overview Slides Lecture 15 Recording
Lecture 16
March 26th, 2021
GOAL

Infrastructure as Code

TOPICS
  • Automating Deployments
  • Ansible
  • Rancher for Kubernetes
Automation Lecture 16 Recording
Lecture 17
March 30th, 2021
GOAL

Students will understand integration and unit testing for microservices

Topics
  • Testing pyramid for microservices
  • Integration tests
  • Unit tests
Testing Part 1 Lecture 17 Recording
Lecture 18
April 1st, 2021
GOAL

Operational Testing

Topics
  • Risk Registers
  • Load, Stress, Soak testing
Testing Part 2 Lecture 18 Recording
Lecture 19
April 6th, 2021
GOAL

Control Plane Technologies

Topics
  • Cloud Native defination
  • Zookeeper
  • etcd, Consul
Lecture 19 Recording
Lecture 20
April 8th, 2021
Lecture 21
April 13th, 2021
Lecture 22
April 15th, 2021
Lecture 23
April 20th, 2021
Final Presentations 1
April 27th, 2021
Expectations

Teams will present the project

Project Teams
  • Swishh, Scrapbook, PixelGram
Final Presentations 2
April 29th, 2021
Expectations

Teams will present the project

Project Teams
  • PingIntelligence, Persona, Panorama