This repository is a practical DevOps learning workspace. It starts with Docker fundamentals, then expands into infrastructure automation, CI/CD, Kubernetes platforms, security, observability, cloud, distributed systems, reliability, and data pipeline practices.
The labs are designed to be runnable locally first. Cloud accounts are optional for most lessons; when a lesson touches AWS, Azure, Google Cloud, Artifactory, Datadog, or similar services, the core material still includes offline reading, validation, and design exercises.
| Area | Path | Purpose |
|---|---|---|
| Docker foundations | 00-docker-fundamentals |
First images, Dockerfiles, multi-stage builds, distroless, layer, and cache examples |
| Main DevOps labs | 01-* to 40-* |
Numbered hands-on lessons grouped by DevOps domain |
Start by opening any numbered lesson folder from the repository root.
For level-based study plans, specialization overlays, and resume guidance, see Learning Paths.
Use the root repository as a map, then work lesson by lesson inside the numbered folders.
Start with:
- Pick a starting level from Learning Paths; add a specialization overlay after the shared core.
- Read that lesson's
README.mdfrom top to bottom before running commands. - Run the lesson commands, examples, or exercises in the order described by the lesson.
- Complete the exercises under
exercises/before checking solution notes. - Run any cleanup commands from the lesson README so containers, VMs, or temporary files do not accumulate.
If you are contributing or editing lessons, see CONTEXT.md for contributor context, validation scripts, and lesson authoring workflow.
This repository includes two local Codex skills for AI-assisted learning under .agents/skills/.
If you use another agentic coding tool, copy .agents and rename the copy to the directory that tool expects. For example, Claude Code can use:
cp -av .agents .claudeCheck that tool's documentation for its expected directory name.
Use this skill during a lesson when you want help choosing what to study, understanding the goal, working through a step, debugging a command, or getting a quiz at the end.
Use this skill after you have attempted an exercise or lab and want strict feedback on whether your work meets the lesson goal.
- Start with
dohp-how-to-learnto choose the lesson, understand the goal, and get a pre-lab checklist. - Read the lesson
README.md. - Run the lesson steps, commands, or exercises yourself.
- If you get blocked, keep using
dohp-how-to-learnfor hints and debugging. - After you finish your attempt, switch to
dohp-review-my-practicefor a strict review. - Check the solution notes only after you have tried the exercise yourself or explicitly want the full answer.
When using either skill, include the lesson folder, the exact step or exercise, the command you ran, the real output or failing line, and what you expected instead.
- Use AI as a learning partner, not as a shortcut to skip the lab.
- Read the lesson
README.mdbefore asking for help. - Run the commands yourself instead of asking for answers first.
- Prefer hints before full solutions.
- Use real command output as evidence when asking for debugging help.
- Ask for review only after you have a real attempt to inspect.
The numbered lesson folders stay stable so links and exercises do not move, but the curriculum is organized around these DevOps areas:
| DevOps area | Lessons |
|---|---|
| Container foundations | 00, 01, 17, 18 |
| Infrastructure automation and IaC | 03, 04, 05, 10, 23 |
| CI/CD, GitOps, and supply chain | 07, 08, 11, 12, 15, 24, 33, 37 |
| Kubernetes and platform engineering | 02, 09, 25, 26 |
| Observability and reliability | 06, 16, 28, 32 |
| Cloud and identity | 13, 14, 21, 22, 38 |
| Configuration management | 03, 35, 36 |
| Distributed application architecture | 19, 20, 27, 29, 30, 31 |
| Data engineering | 34 |
| AWS application scaffolding | 39 |
| Monorepo and workspace engineering | 40 |