Spring 2022

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

Lecture 1
January 11th, 2022
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 13th, 2022
GOAL

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

TOPICS
  • Discuss expected time commitments.
  • Introduce Cloud Native and Microservice Concepts.
  • Distributed overview from Shameera Rathnayaka, Google.
Course and Lectures Overview Slides Lecture 2 Recording
Lecture 3
January 18th, 2022
GOAL

Project 1 Overview

TOPICS
  • Project 1 Overview
Project 1 Overview Lecture 3 Recording
Lecture 4
January 20th, 2022
GOAL

UX and User Centric Design

TOPICS
  • UX Overview
  • NASA IMPACT introduction
UX Overview Lecture 4 Recording
Lecture 5
January 25th, 2022
GOAL

Git Overview.

TOPICS
  • Git Branching Styles
  • Open Source Project Governance
Git and Governance Slides Lecture 5 Recording
Lecture 6
January 27th, 2022
GOAL

Binary data serialization frameworks

TOPICS
  • Protocol Buffers Data Serialization
  • gRPC and Thrift Binary RPC Frameworks
Protocol Buffers, Thrift and gRPC Lecture 6 Recording
Lecture 7
February 1st, 2022
GOAL

Continous Integration and Deployment

TOPICS
  • Software Engineering Best Practices
  • CI/CD overview
CI CD Overview Lecture 7 Part 1 Recording Lecture 7 Paart 2 Recording
Lecture 8
February 3rd, 2022
GOAL

Messaging and Microservices

TOPICS
  • Microservices messaging
  • Rabbit-MQ concept overview
Introduction to Messaging Slides Lecture 8 Recording
Lecture 9
February 8th, 2022
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 9 Recording
Lecture 10
February 10th, 2022
GOAL

Containers Introduction

TOPICS
  • Project 1 Reflections
  • Containers
Container slides Lecture 10 Recording
Lecture 11
February 15th, 2022
GOAL

Container Orchestration

TOPICS
  • Cluster Management Frameworks
  • Kubernetes
Borg Slides Lecture 11 Recording
Lecture 12
February 17th, 2022
GOAL

Control Plane Technologies

Topics
Lecture 13
February 22nd, 2022
GOAL

Service Mesh

TOPICS
  • Service Mesh
  • Orchestration Frameworks
Lecture 14
February 24th, 2022
GOAL

Infrastructure as Code

TOPICS
  • Automating Deployments
  • Ansible
  • Rancher for Kubernetes
Lecture 15
March 1st, 2022
GOAL

Students should understand the basics of the Raft consensus protocol

TOPICS
  • Raft basics
  • Leader election
Raft, Part 1
Lecture 16
March 3rd, 2022
GOAL

Jetstream Overview

TOPICS
  • Jetstream Cloud Introduction
  • Goals for CI/CD
Lecture 17
March 8th, 2022
Expectations

Raft, Continued

Project Teams
  • Consensus
  • Leader election
Raft, Part 2
Lecture 18
March 10th, 2022
GOAL

Project 3 Overview

TOPICS
  • Architecture evolution from project 1, 2 to 3.
  • Goals for CI/CD
Project 3
Lecture 19
March 22th, 2022
GOAL

Advanced Raft Topics

TOPICS
  • Changing cluster members
  • Log snap shotting
  • Byzantine fault tolerance and security
Advanced Raft Topics
Lecture 20
March 24th, 2022
GOAL

Lecture 21
March 29th, 2022
GOAL

The SWIM Protocol

TOPICS
  • Scalable group membership
  • Scalable fault detection
SWIM
Lecture 22
April 5thth, 2022
GOAL

OAuth2 and OIDC

TOPICS
  • Science gateway security requirements
  • Authorization with OAuth2
  • Authentication with OIDC
Science Gateways, OAuth2, and OIDC
Lecture 23
April 14thth, 2022
GOAL

Testing Microservices, Part 1

TOPICS
  • Inverting the testing pyramid
  • Using risks to guide holistic testing approaches
  • Clean architectures and clear testing
Microservice Testing Strategies, Part 1
Lecture 24
April 21stth, 2022
GOAL

Testing Microservices, Part 2

TOPICS
  • Risk-based testing
  • Designing and conducting performance tests
Microservice Testing Strategies, Part 2
Lecture 25
April 26thtth, 2022
GOAL

Blockchain for Scalable Log Management

TOPICS
  • Security basics for blockchain
  • Emergent properties of blockchains
Lecture Slides
Lecture 26
April 28th, 2022
GOAL

Course Wrap up

Topics
  • Reflection of the projects
  • Recap of the concepts
  • Suggestions on how to apply the learnings
Wrap up Slides