System Design for DevOps
System Design for DevOps: a free DevOps track with 6 modules and 27 lessons. How to start any design: turn a vague request into requirements and numbers…
Modules
- 01 System Design Foundations
How to start any design: turn a vague request into requirements and numbers, find single points of failure with simple availability math, and choose between 3-tier, monolith and microservices layouts and mono- or multi-repo code.
- 02 Scalability
Grow a system with demand: scale up or out, spread traffic with load balancers and health checks, keep services stateless so any instance can serve any request, scale automatically with metrics, and place data on nodes with consistent hashing.
- 03 Data, Caching and CDN
Where data lives and how it gets to users fast: pick SQL or NoSQL by access pattern, scale databases with replicas and shards, reason about consistency with CAP and quorums, cache with the right pattern and eviction policy, and push content to the edge with CDNs and multi-CDN.
- 04 Communication and Asynchronous Processing
How parts of a system talk: decouple producers and consumers with queues and streams, protect workers with backpressure and batching, design APIs that are safe to retry and rate-limited, and let a service mesh handle discovery, mTLS and traffic policy.
- 05 Reliability, Deployments and Migrations
Keep the system up while everything changes: separate high availability from disaster recovery with RPO and RTO, add resiliency patterns, release without downtime, and plan migrations with rehearsals, cut-over and rollback — including branch by abstraction and the strangler fig.
- 06 Design a System: Three Worked Cases
Put everything together with one repeatable method — requirements, estimates, API, data model, architecture, bottlenecks — applied to a URL shortener, a photo upload site and a video streaming site.