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
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
Lecture 2
January 13th, 2022
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.
Lecture 3
January 18th, 2022
Lecture 4
January 20th, 2022
UX and User Centric Design
TOPICS- UX Overview
- NASA IMPACT introduction
Lecture 5
January 25th, 2022
Git Overview.
TOPICS- Git Branching Styles
- Open Source Project Governance
Lecture 6
January 27th, 2022
Binary data serialization frameworks
TOPICS- Protocol Buffers Data Serialization
- gRPC and Thrift Binary RPC Frameworks
Lecture 7
February 1st, 2022
Continous Integration and Deployment
TOPICS- Software Engineering Best Practices
- CI/CD overview
Lecture 8
February 3rd, 2022
Messaging and Microservices
TOPICS- Microservices messaging
- Rabbit-MQ concept overview
Lecture 9
February 8th, 2022
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
Lecture 10
February 10th, 2022
Containers Introduction
TOPICS- Project 1 Reflections
- Containers
Lecture 11
February 15th, 2022
Container Orchestration
TOPICS- Cluster Management Frameworks
- Kubernetes
Lecture 12
February 17th, 2022
Control Plane Technologies
Topics- Cloud Native defination
- Zookeeper
- etcd, Consul Zookeeper Slides Lecture 12 Recording
Lecture 13
February 22nd, 2022
Service Mesh
TOPICS- Service Mesh
- Orchestration Frameworks
Lecture 14
February 24th, 2022
Infrastructure as Code
TOPICS- Automating Deployments
- Ansible
- Rancher for Kubernetes
Lecture 15
March 1st, 2022
Students should understand the basics of the Raft consensus protocol
TOPICS- Raft basics
- Leader election
Lecture 16
March 3rd, 2022
Jetstream Overview
TOPICS- Jetstream Cloud Introduction
- Goals for CI/CD
Lecture 17
March 8th, 2022
Lecture 18
March 10th, 2022
Project 3 Overview
TOPICS- Architecture evolution from project 1, 2 to 3.
- Goals for CI/CD
Lecture 19
March 22th, 2022
Advanced Raft Topics
TOPICS- Changing cluster members
- Log snap shotting
- Byzantine fault tolerance and security
Lecture 20
March 24th, 2022
Lecture 21
March 29th, 2022
Lecture 22
April 5thth, 2022
OAuth2 and OIDC
TOPICS- Science gateway security requirements
- Authorization with OAuth2
- Authentication with OIDC
Lecture 23
April 14thth, 2022
Testing Microservices, Part 1
TOPICS- Inverting the testing pyramid
- Using risks to guide holistic testing approaches
- Clean architectures and clear testing
Lecture 24
April 21stth, 2022
Testing Microservices, Part 2
TOPICS- Risk-based testing
- Designing and conducting performance tests
Lecture 25
April 26thtth, 2022
Blockchain for Scalable Log Management
TOPICS- Security basics for blockchain
- Emergent properties of blockchains
Lecture 26
April 28th, 2022
Course Wrap up
Topics- Reflection of the projects
- Recap of the concepts
- Suggestions on how to apply the learnings