DevOps Engineer Roadmap
The complete end-to-end path: Linux and networking foundations, containers, cloud, Kubernetes, CI/CD, observability, and a portfolio of real projects.
0%
0 of 11 topics complete
- Done
- To do
- Optional
Tick a topic as you finish — saved in this browser only.
-
Foundations
The two pillars everything else sits on.
-
Filesystem, bash, processes, systemd, and SSH.
-
TCP/IP, DNS, HTTP, subnets, and the troubleshooting toolkit.
-
-
Version control
Git is the backbone of every DevOps workflow.
-
Branching, rebasing, pull requests, and trunk-based development.
-
-
Containers
Package and run applications consistently anywhere.
-
Images, Dockerfiles, Compose, registries, and CI pipelines.
-
-
Cloud
Provision and manage cloud infrastructure on AWS.
-
IAM, EC2, VPC, S3, RDS, and cost guardrails.
-
-
Orchestration
Run containers at scale with Kubernetes.
-
Pods, Deployments, Services, Ingress, and operations.
-
-
CI/CD
Automate test, build, and deploy pipelines.
- GitHub Actions validator optional
Lint your workflow YAML before it hits the runner.
- GitLab CI validator optional
Validate .gitlab-ci.yml syntax interactively.
-
-
Observability
Instrument, alert, and query your running systems.
- PromQL explainer optional
Understand and build Prometheus queries step by step.
- Loki alert rule tester optional
Test LogQL-based alert rules against sample logs.
-
-
Build a portfolio
Finish real projects to prove your skills.
-
Four portfolio-ready projects: EC2 deploy, Compose stack, monitoring, and a mini CI pipeline.
-
Why this order.
The reason DevOps feels impossibly broad is that most lists of it are unordered. Terraform, Kubernetes, Prometheus, CI/CD, AWS — presented flat, as though you could start anywhere. You cannot, and trying is what makes people bounce off it twice.
The ordering here is not arbitrary. Linux comes first because every later abstraction leaks into it: a container is a process with namespaces, a pod is a container with a lifecycle, and when either misbehaves you are reading `ps`, `ss` and journal output. Networking comes before Kubernetes because a Service is a load balancer over an IP range, and "the pod cannot reach the database" is a subnet question wearing a Kubernetes hat.
Cloud comes after containers rather than before, because managed container services assume you already know what they are managing. Observability comes last of the technical stages, not because it matters least but because you cannot instrument a system you cannot yet reason about — alerting on a system you do not understand produces noise you then learn to ignore.
Expect it to take months rather than weeks, and expect the middle to be the hardest part. The stages are sized so each one is useful on its own: you are employable somewhere partway through, not only at the end.