roadmaps / resilient-three-tier

10 steps · ~40 min · intermediate · free · ships with the app

Deploy a resilient three-tier app

You are the first engineer at Nimbus Books, an online bookstore about to launch. Build the classic three-tier architecture on real containers — load balancer, replicated web servers, PostgreSQL — then lock it down, break it on purpose, and watch it survive.

before you start

The 10 steps and what each one checks

Every step ends with a validation pass that inspects your actual containers. The lines below are the exact observations it makes. The instructions, hints and commented walkthroughs live in the app.

  1. step 1 of 10

    Your first server

    • check: container "web-1" is running
  2. step 2 of 10

    The data tier

    • check: container "db" is running
    • check: table "users" exists in "db"
  3. step 3 of 10

    Wire the app to its database

    • check: web-1 → db is reachable on :5432
  4. step 4 of 10

    Ship the bookstore

    • check: GET :80/ on "web-1" contains "Nimbus Books"
    • check: GET :80/ on "web-1" contains "ada@nimbus.dev"
  5. step 5 of 10

    Two of everything

    • check: container "web-2" is running
    • check: GET :80/ on "web-2" contains "Nimbus Books"
    • check: GET :80/ on "web-2" contains "ada@nimbus.dev"
  6. step 6 of 10

    One front door

    • check: "lb" is balancing across ≥ 2 upstreams
    • check: GET :80/ on "lb" contains "Nimbus Books"
  7. step 7 of 10

    Lock the vault

    • check: lb → db is blocked on :5432
    • check: web-1 → db is reachable on :5432
    • check: web-2 → db is reachable on :5432
  8. step 8 of 10

    Pull the plug

    • check: GET :80/ on "lb" contains "Nimbus Books"
  9. step 9 of 10

    The clone factory

    • check: "web-asg" keeps 2 replicas running
    • check: container "web-1" is running
  10. step 10 of 10

    Launch day

    • check: "web-asg" keeps 4 replicas running
    • check: "lb" is balancing across ≥ 4 upstreams
    • check: GET :80/ on "lb" contains "Nimbus Books"

Play it on your machine

This roadmap ships free with the app. The only requirement is a running Docker daemon.

$ npx torollo start

MIT licensed · source on GitHub