DevOps Peach

System Design for DevOps · Module 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.

Practice interactively →

What you will learn

Lessons

  1. Fault Tolerance, High Availability and Disaster Recovery

    High availability removes single points of failure so a component failure causes no outage; disaster recovery restores service after a large event such as a region loss. RPO and RTO set how much data and time you may lose, and drive the DR strategy.

  2. Resiliency Patterns: Timeouts, Retries, Circuit Breakers

    Resiliency is the ability to absorb failures and recover; timeouts bound waiting, retries with exponential backoff and jitter handle transient errors, circuit breakers stop calling a failing dependency, and bulkheads keep one failure from consuming every resource.

  3. Zero-Downtime Deployments

    Rolling updates replace instances gradually, blue/green switches all traffic between two full environments, and canary releases send a small share of traffic to the new version first; readiness probes, draining and backward-compatible changes make all of them safe.

  4. Planning a Migration: Rehearsal, Cut-over, Rollback

    A migration moves a system to new infrastructure or a new database; good plans have a rehearsal, data sync, a defined cut-over (often by DNS), clear go/no-go criteria, and both roll-back and roll-forward paths.

  5. Branch by Abstraction and the Strangler Fig

    Branch by abstraction replaces a component inside a codebase behind an interface while everyone keeps committing to main; the strangler fig replaces a whole system route by route behind a proxy until the old one can be switched off.