The roadmap
Where QuickCart starts, and where it ends up.
Part 1: The problem
Maya is a mobile developer. On a weekend, she builds QuickCart: a food-ordering app with a small backend that stores the menu and the orders.
The backend runs on her laptop. Her friends install the app, order lunch, and it works. Then a local food blogger mentions QuickCart. That evening, a thousand people try it at once.
The laptop is asleep in Maya’s bag. Every order fails.
Maya now needs to learn a pile of things at once: servers, networks, databases, containers, Terraform, pipelines. Each one comes with a list of tools. It is hard to know where to start, or what any of it is for.
This course answers that by following QuickCart, one problem at a time.
Part 2: The idea
DevOps is everything that happens to code after a developer writes it: getting it to users safely, often, and keeping it running once it’s there.
The name joins two words, development and operations. In many companies these used to be separate teams. Developers wrote code and handed it over. An operations team ran it. Releases were slow and painful, because the people who wrote the code never saw it fail, and the people who saw it fail couldn’t change it. DevOps is the idea that one team owns both halves.
Every tool answers one problem
QuickCart grows from one laptop to millions of users. At each size, something new breaks. Each module in this course is the fix for one of those breaks.
| Module | What goes wrong for QuickCart | What it teaches |
|---|---|---|
| 00 Start here | Nothing yet | This roadmap, safe practice, and your computer |
| 01 How software ships | Monthly releases hurt, and nobody knows which change broke things | Small releases, measuring delivery, reliability targets, safe ways to release |
| 02 The cloud, simply | The backend needs a computer that is always on | Renting servers from AWS, and who is allowed to do what |
| 03 Networking | The database can be reached from the internet | A private network where you choose what is exposed |
| 04 Running code | One server falls over on launch night | More servers, a load balancer in front, and adding servers automatically |
| 05 Data | Orders must never be lost, and passwords are in the code | Managed databases, file storage, secrets |
| 06 Watching it run | Checkout fails for an hour and nobody notices | Logs, metrics, alarms, and a record of who changed what |
| 07 Containers | “It worked on my laptop” | Packaging the app so it runs the same everywhere |
| 08 Running containers | Releases drop requests | Running containers, and releasing without downtime |
| 09 Infrastructure as code | A second country takes a week of clicking | Describing everything in code with Terraform |
| 10 Automation | Releases need a person awake at 2am | A pipeline that takes a commit all the way to production |
| 11 When things break | It’s 3am and checkout is down | Where to look first, and runbooks |
| Projects | Everything at once | Five builds that combine the modules |
Two ways to use the course
| If you want to | Do this |
|---|---|
| Learn DevOps from zero | Go in order, from here to Project 5. Each module builds on the one before |
| Learn one topic | Go straight to it. Each lesson’s header lists the few lessons to read first |
| Answer one question, like “why can’t my server reach the internet?” | Use Which lesson do I need?, or search with / |
What you need
| You need | Why | Where it’s covered |
|---|---|---|
| A computer running macOS, Windows 10 or 11, or Linux | Every command in the course runs in a Unix-style terminal. macOS and Linux have one; Windows gets one through WSL 2 | Set up your computer |
| About 20 GB of free disk space | Docker images and tools take room | The lab below |
| An AWS account and a payment card | AWS asks for a card even for free use | How this course works |
| A small budget | Most labs are free or cost pennies. A few cost a little while they run | Every lab starts with a cost badge |
| Time | Each lesson takes 15 to 45 minutes. The projects take a few hours each | Each lesson’s header |
You don’t need any backend experience. If you can write an app and use a terminal a little, you have enough.
Part 3: See it
Below is QuickCart’s route. Choose Grow QuickCart to add users. At each stage, see what breaks, and which module fixes it. You can also jump to any stage on the line.
What goes wrong
QuickCart runs on Maya's laptop. It works, but only while the laptop is open, and only Maya can use it.
What goes wrong
Every release is a big bang: a month of changes copied over by hand. When something breaks, nobody knows which change did it.
What fixes it
The DevOps lifecycleMeasuring deliveryReliability targetsWays to releaseFeature flags
What goes wrong
The app needs a computer that is always on. The team needs to rent one, and decide who is allowed to touch it.
What goes wrong
The database sits on the same public server as the API. Anyone on the internet can try to connect to it.
What fixes it
What is a VPC?Subnets and IP rangesRoutes, gateways and NATSecurity groupsDomain names and HTTPS
What goes wrong
A food blogger mentions QuickCart. At 7pm the one server runs out of memory and every order fails.
What goes wrong
Orders must never be lost. The database password is in the code, and the menu photos fill the server's disk.
What goes wrong
Checkout failed for an hour on Saturday. The team found out from angry reviews, not from their own systems.
What goes wrong
A release works on Leo's laptop and breaks on the server, because the server has a different version of a library.
What fixes it
Images and containersWriting a DockerfileData and networkingStoring images: ECR
What goes wrong
Every release drops a few hundred requests while servers restart. The team stops releasing on Fridays.
What fixes it
ECS on FargateReleases without downtimeKubernetes and EKSECS or EKS?
What goes wrong
Opening in a second country means rebuilding everything in another region. It takes a week of clicking, and the copy is slightly different.
What fixes it
Why TerraformYour first resourceVariables, locals and outputsLoops and lifecycleModulesTerraform stateEnvironments and regionsOperating Terraform
What goes wrong
Releases need a person awake at 2am typing commands. Twelve times a day, that person makes a mistake.
What fixes it
Jenkins from zeroThe JenkinsfileContinuous integrationContinuous deliveryCanary from a pipeline
What goes wrong
Something will break. Checkout is down, and the person on call has to know where to look first.
What to notice: no stage needs everything. A laptop doesn’t need Kubernetes, and a site with 50 users doesn’t need a pipeline. Knowing which problem you actually have is how you pick the right tool, and how you avoid building things you don’t need yet.
Part 4: Do it
Free — nothing in this lab touches AWS.
You’ll check that your computer is ready for the course, and write down a plan: which route you’ll take, how much time you have, and what you’re willing to spend. About 10 minutes.
On macOS, open the Terminal app (search for it with Spotlight). On Linux, open your Terminal. On Windows, you’ll set up a terminal in Set up your computer; for this lab, use the Windows settings described in each step instead.
Check your system and its chip
On macOS or Linux:
Terminaluname -smPart What it means unameprint information about the system -sthe name of the operating system’s kernel: Darwinon macOS,Linuxon Linux-mthe machine’s hardware type: which kind of chip You should seeLinux x86_64A Mac with an Apple chip prints
Darwin arm64. On Windows, open Settings → System → About: System type shows the same thing, such as 64-bit operating system, x64-based processor.You see It means x86_64or x64-basedAn Intel or AMD chip, like most servers on AWS arm64or ARM-basedAn ARM chip, such as Apple’s M-series or some Windows laptops Both work for this course. It matters later: a container image built on an ARM chip is built for ARM by default, and it won’t run on an Intel or AMD server unless you build it for that. The Dockerfile lesson shows how.
Your system should be reasonably up to date. The tools in this course support recent versions of macOS, Windows 11 or Windows 10 (version 22H2), and current Linux releases such as Ubuntu 22.04 or 24.04. If yours is several years behind, update it first.
Check your free disk space
On macOS or Linux:
Terminaldf -h /Part What it means dfshow how much space is free on your disks (short for disk free) -hhuman-readable: show sizes like 212Ginstead of counting blocks/only the main disk, the one your system runs from You should seeFilesystem Size Used Avail Use% Mounted on /dev/nvme0n1p2 468G 94G 350G 22% /Look at the Avail column. Your numbers will differ, and macOS shows a few more columns, but Avail means the same everywhere. On Windows, open File Explorer → This PC: the free space on the C: drive is the number that matters.
Choose your route
Pick one of these. You can change your mind later.
Route Modules Good for The whole line 00 to 11, then all five projects Going from zero to job-ready AWS first 00, 02 to 06, then Project 1 and Project 2 Understanding what your app’s backend really runs on Ship faster 00, 01, 07, 08, 10 Containers, releases and pipelines, if someone else runs the cloud side Write your choice down, in a notes app or on paper.
Decide your time and budget
Fill in this table in the same note:
Question Example answer How many hours a week can you give this? 4 hours: two evenings Which days? Tuesday and Thursday What’s the most you’ll spend on AWS in a month? $10 Who can you ask when you’re stuck? A friend who works on backend, or a community forum The budget number matters. In the next lesson you’ll set up an alert that emails you before you reach it.
You should seeA short note with your route, your hours, and your monthly limit. That’s your plan.
Clean-up step: Clean up
Nothing to delete. You only ran commands that read information; none of them changed anything.
Keep your plan somewhere you’ll see it. When you finish a lesson, press Mark as done at the bottom of the page. Your progress fills in on the route map on the home page, and it stays in this browser.
Part 5: Check yourself
What is DevOps mostly about?
Why does this course introduce each tool only when QuickCart needs it?
You only want to learn Terraform. What should you do?
A small site gets mentioned on a huge news site and goes down within minutes. What is this usually called?
Roughly what should you expect to spend on AWS if you follow the whole course and clean up after each lab?
Part 6: Cheat sheet
| Idea | In one line |
|---|---|
| DevOps | Getting changes to users safely and often, and keeping them running |
| This course | One app, QuickCart, from a laptop to millions of users |
| Every lesson | Problem, idea, see it, do it, check yourself, cheat sheet |
| Every tool | The answer to one problem at one size. Meet the problem first |
| Jumping in | Read the lessons listed under Read first, then start anywhere |
uname -sm | Your system and chip: x86_64 for Intel or AMD, arm64 for ARM |
df -h / | Free disk space. Look at Avail. You want 20 GB or more |
| Cost | Every lab has a badge. The paid ones have a clean-up step |