DevOps Peach

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…

Practice interactively →

Modules

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.