The visual landscape of everything in this course. Read it after this lesson to see the big picture and where each tool fits. roadmap.sh/devops →
You know how to build things. You can write a Node.js API, a React frontend, connect a database. But when someone asks "how do you deploy this?"— there's a wall.
That wall is the gap between development and operations. This course exists to close it. Before we touch a single tool, you need a mental map of the territory.
Most developers learn tools in isolation — "I learned Docker," "I set up Nginx once." Without a mental model of how everything connects, you end up with a pile of half-understood commands and no idea why things break.
Every time a user loads your app, a chain of systems has to work perfectly. Here's the complete journey and where each tool in this course lives:
Your code needs to be packaged into something that can run anywhere reliably. That's what Docker solves — it bundles your app and all its dependencies into a single image. GitHub Actions automates the process of building, testing, and pushing that image on every commit.
Something needs to run your Docker container. On AWS, that's usually EC2 (a virtual machine you control) or ECS/Fargate (managed containers). In front of it sits Nginx — the web server that receives HTTP requests, handles SSL, and proxies them to your app.
Cloudflare sits between the internet and your server. It handles DNS, serves static assets from 300+ global locations, and blocks malicious traffic before it ever reaches your server. Think of it as a force field + CDN + DNS all in one.
Your app doesn't run alone. It needs:
Once live, you need to know what's happening. Sentry captures errors with full stack traces. CloudWatch stores logs. UptimeRobot pings your app every minute and alerts you if it goes down. GA4 + Search Console tell you about your users and search performance.
A junior dev thinks about "does the code work?" A senior dev thinks about "is the system healthy?" The difference is observability — knowing what's happening in production at all times.
By the end of this course you'll be able to take any Node.js app and: