Architecting Distributed Cloud Applications

Jeffrey Richter's free 6.5 hour technology-agnostic video course "Architecting Distributed Cloud Applications" (2017) has well-structured, well-explained and high quality material spanning 53 videos.

Slide deck 



2 1.1.a- Distributed Cloud Apps--Fundamentals--Why Cloud Apps?

3 1.1.b-Distributed Cloud Apps--Fundamentals--Embracing Failure

4 1.1.c-Distributed Cloud Apps--Fundamentals--Orchestrators (?aaS) and Clusters - video explains what an orchestrator is and how it manages a cluster of machines. Specifically, an orchestrator manages the machines' life-cycle, networking, health, upgrades, scaling, and the deploying/running of your service's code.

Mesos, Kubernetes, AWS Lambda, Azure Functions, Azure Container Service, and Azure Service Fabricare all examples of orchestrators. 
Azure Functions (the service) as an orchestrator - You upload your code (function) to it and it manages the VMS/Containers running your code and it manages the scale out/in and health of your function code. The function you write is not an orchestrator but where/how it runs is managed by the Azure Functions service.


6 1.2.a-Distributed Cloud Apps--Microservices--Applications consist of many (micro)services

7 1.2.b-Distributed Cloud Apps--Microservices--Reasons to split a monolithic app into microservices

8 1.2.c-Distributed Cloud Apps--Microservices--Composing SLAs for dependent services

9 1.2.d-Distributed Cloud Apps--Microservices--Auto-Scaling a Service's Instances

10 1.2.e-Distributed Cloud Apps--Microservices--12-Factor Services (Apps)

11 1.3.a-Distributed Cloud Apps--Containers--Container images & containers

12 1.3.b-Distributed Cloud Apps--Containers--Isolation versus Density

13 1.3.c-Distributed Cloud Apps--Containers--OS kernel & container images

14 1.3.d-Distributed Cloud Apps--Containers--Orchestrator starts containers on cluster's PCs/VMs

15 1.3.e-Distributed Cloud Apps--Containers--Continuous Integration and Continuous Delivery/Deployment

16 2.1.a-Networking--Fundamentals--Fallacies of distributed computing

17 2.1.b-Networking--Fundamentals--Service endpoints, scalability & availability

18 2.1.c-Networking--Fundamentals--Forward and Reverse Proxies

19 2.1.d-Networking--Fundamentals--Cluster DNS & service reverse proxy

20 2.1.e-Networking--Fundamentals--Reverse proxy load balancer service probes

21 2.2.a-Networking--Service APIs--Turning a monolith into a microservice

22 2.2.b-Networking--Service APIs--API versioning

23 2.2.c-Networking--Service APIs--Defining Network API Contracts

24 2.2.d-Networking--Service APIs--Beware leaky RPC-like abstractions

25 2.3.a-Networking--Fault-Tolerance--Exactly once semantics via retries & idempotency

26 3.1.a-Messaging--Fundamentals--The benefits of messaging communication

27 3.1.b-Messaging--Fundamentals--Messaging with queues

28 3.1.c-Messaging--Fundamentals--Fault-Tolerant message processing

29 3.1.d-Messaging--Fundamentals--Additional queue features

30 4.1.a-Service upgrade & Config--Versioning code--Service update options

31 4.1.b-Service upgrade & Config--Versioning code--Rolling update: how to version APIs

32 4.2.a-Service upgrade & Config--Shutdown & reconfigure--Gracefully shutting down a service instance

33 4.2.b-Service upgrade & Config--Shutdown & reconfigure--

34 5.1.a-Leader Election--Fundamentals--What is leader election?

35 5.1.b-Leader Election--Fundamentals--Leader election via a lease

36 5.1.c-Leader Election--Fundamentals--Leader election via a queue message

37 6.1.a-Data Storage--Fundamentals--Data storage service considerations

38 6.1.b-Data Storage--Fundamentals--Data temperature

39 6.1.c-Data Storage--Fundamentals--Using a cache to improve performance

40 6.2.a-Data Storage--Object (blob) storage services--Object (blob) storage services & using a CDN

41 6.3.a-Data Storage--Database storage services--Relational & Non-relational database storage services

42 6.3.b-Data Storage--Database storage services--Data partitioning and replicas

43 6.4.a-Data Storage--Data Consistency--Data Consistency

44 6.4.b-Data Storage--Data Consistency--CQRS

45 6.4.c-Data Storage--Data Consistency--Event sourcing

46 6.4.d-Data Storage--Data Consistency--Implementing eventual consistency

47 6.4.e-Data Storage--Data Consistency--The Saga Pattern

48 6.4.f-Data Storage--Data Consistency--Concurrency control

49 6.4.g-Data Storage--Data Consistency--Optimistic Concurrency

50 6.5.a-Data Storage--Versioning Schemas--Versioning Data schemas

51 6.6.a-Data Storage--Backup & Disaster Recovery--Backup & restore

52 6.6.b-Data Storage--Backup & Disaster Recovery--Recovery point & time objectives (RPO & RTO)

Comments