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
- Docker installed and running
- A Torollo project created and open on the canvas
- Comfortable running basic commands in a Linux terminal
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.
step 1 of 10
Your first server
- check: container "web-1" is running
step 2 of 10
The data tier
- check: container "db" is running
- check: table "users" exists in "db"
step 3 of 10
Wire the app to its database
- check: web-1 → db is reachable on :5432
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"
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"
step 6 of 10
One front door
- check: "lb" is balancing across ≥ 2 upstreams
- check: GET :80/ on "lb" contains "Nimbus Books"
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
step 8 of 10
Pull the plug
- check: GET :80/ on "lb" contains "Nimbus Books"
step 9 of 10
The clone factory
- check: "web-asg" keeps 2 replicas running
- check: container "web-1" is running
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