DevOps & Platform Engineering for Beginners
Start from zero. Learn how modern teams build, ship and run software with containers, Kubernetes, CI/CD and GitOps, one hands-on guide at a time.
Who this path is for
This path is for developers, sysadmins and career-changers who have heard words like “containers”, “Kubernetes” and “pipelines” but have never put them together. You don’t need production experience. You do need curiosity and a terminal.
What you’ll learn
- How applications are packaged and run consistently across machines
- What Kubernetes does and how to deploy your first workload
- How a change goes from a commit to a running environment
- The basics of GitOps and why teams use it
- How to throw away and recreate environments without fear
How to use this path
The guides on the right are grouped by technology and ordered for a first pass. Work through one technology at a time rather than hopping between them. Each guide is hands-on, so spin up a disposable cluster and follow along instead of just reading.
Before you start
- Comfort with a command line (cd, ls, editing files)
- A free Rackmint account for a disposable cluster to practice on
- A basic idea of what a web application is
What comes next
When these feel natural, move on to the Intermediate path, where you’ll connect the pieces into repeatable, automated workflows.
What's in this path
Argo CD
5 guides-
Deploying a Web Application with Argo CD From Git to production with Argo CD. -
Push vs Pull: How Argo CD Delivers to Kubernetes Why pull-based, Git-driven delivery changes how you deploy, secure, and recover clusters. -
Install Argo CD and Sign In Install Argo CD on any Kubernetes cluster and reach the web UI. -
Deploy Your First Application with a Declarative Manifest Point Argo CD at a Git repository using an Application resource and watch it sync. -
Manage Applications with the Argo CD CLI Log in, create, inspect, diff, sync, and roll back applications from the terminal.
Flux CD
5 guides-
Push vs Pull: How Flux Delivers to Kubernetes Why pull-based, Git-driven delivery changes how you deploy, secure, and recover clusters. -
Install Flux and Bootstrap a Cluster Install the Flux CLI, run pre-flight checks, and bootstrap Flux so it manages itself from Git. -
Deploy Your First Application with a GitRepository and Kustomization Point Flux at manifests in Git using a Kustomization resource and watch it sync. -
Manage Flux with the Flux CLI Check, inspect, reconcile, diff, trace, suspend, and troubleshoot Flux resources from the terminal. -
Flux CD vs Argo CD: Choosing a GitOps Tool Compare architecture, UI, Helm, secrets, tenancy, and image automation to pick the right tool.
Kubernetes
6 guides-
What Kubernetes Is and the Problems It Solves Why containers alone stop scaling, and how Kubernetes turns a group of machines into one platform. -
How a Kubernetes Cluster Works: Control Plane and Nodes The components that make a cluster tick, and what happens between kubectl apply and a running container. -
Set Up a Local Cluster and Get Started with kubectl Run a single-node cluster with minikube, connect with kubectl, and learn the commands you'll use every day. -
Write Your First Kubernetes Manifest YAML essentials, the four fields every object has, and the create, inspect, delete loop with a Pod. -
Deployments: Scaling, Self-Healing, and Rolling Updates Run replicas of a Pod, update them without downtime, and roll back when a release goes wrong. -
Debug a Failing Pod: describe, logs, exec, and port-forward A repeatable checklist for finding out why a Pod is Pending, crashing, or not answering.
containerd
2 guidesGrafana
4 guides-
Operate Grafana as Code: The Big Picture What can live in files, what needs an API, and how the pieces fit together. -
Run Grafana with Docker Compose and a Provisioning Folder Start Grafana from a compose file with all configuration mounted as files. -
Configure the Grafana Server with grafana.ini and Environment Variables Know where config files live, how overrides are ordered, and how to keep settings in Git. -
Provision Data Sources from YAML Define data sources, credentials, and custom headers in files instead of the UI.
Helm
4 guides-
Helm Chart Anatomy: Charts, Values, Templates, and Releases The folder structure every chart shares, and the three concepts that make Helm more than a YAML bundler. -
Create Your First Helm Chart from Existing Manifests Turn a Deployment, Service, and ConfigMap into a templated chart, then install and upgrade it. -
Manage Releases: Install, Upgrade, Rollback, and Uninstall The commands that cover a release's whole lifecycle, and how revision history makes rollback possible. -
Find and Install Published Charts from Artifact Hub Search for a chart someone else already wrote, inspect it before installing, and override just what you need.
OpenTelemetry
5 guides-
OpenTelemetry Explained: SDKs, OTLP, and the Collector Understand the moving parts and the three places configuration lives before you write any YAML. -
Run an OpenTelemetry Collector with Docker Compose Start a Collector from a mounted config file, send it test data, and see it in the debug exporter. -
The Collector Configuration Model: Components, Pipelines, and Providers Learn the rules of the Collector's YAML: naming, pipelines, connectors, merging files, and environment variables. -
Configure SDKs with OTEL_* Environment Variables Set the service name, exporters, sampling, and limits for any language using standard variables. -
Instrument Apps Without Code Changes: Java, Python, and Node.js Attach OpenTelemetry agents with environment variables and command-line flags only.
Prometheus
4 guides-
Prometheus Architecture and the Pull Model Why Prometheus scrapes instead of receiving, and how targets, exporters, and service discovery fit together. -
The Prometheus Data Model: Metrics, Labels, and Metric Types What a time series actually is in Prometheus, and the plain-text format targets expose them in. -
Monitor a Host and Its Containers with node_exporter and cAdvisor Run Prometheus, node_exporter, and cAdvisor together, scrape both, and confirm the targets are healthy. -
Visualize Metrics in Grafana: Data Sources, Panels, and Community Dashboards Connect Grafana to Prometheus, build one panel from scratch, then import a ready-made dashboard instead of building everything by hand.
Fluentd
2 guides-
Why Centralized Logging: The Problem Fluentd Solves What goes wrong once logs live in dozens of files and formats, and how Fluentd's collect-transform-ship pipeline fixes it. -
Fluentd Configuration Basics: Source, Filter, Match, and Tags The directives every Fluentd config is built from, how tags connect them, and how to validate a config before running it.
Envoy
2 guides-
Envoy Architecture: Listeners, Clusters, and Filter Chains How a request actually moves through Envoy, from the socket it arrives on to the upstream it's sent to. -
Where Envoy Fits: Edge, Front Proxy, and Service Mesh Patterns The same proxy, deployed three different ways — and why 'lightweight enough to run per instance' is what makes all three possible.
Istio
2 guides-
Istio Architecture: Sidecars, the Data Plane, and the Control Plane What istiod actually does, how Envoy sidecars fit in, and why neither your app nor its manifests need to know Istio exists. -
Install Istio with istioctl and Enable Sidecar Injection Get a mesh running on a local cluster, confirm it's healthy, and get your first workload's sidecar injected.
Cilium
2 guides-
How Cilium Uses eBPF: Identity, Policy, and Sockets What actually happens in the kernel when a Pod starts, talks to another Pod, or gets a packet policy decision — and why it's fast. -
Set Up a Cluster for Cilium: Disable the Default CNI First Cilium replaces your cluster's networking entirely, which means the order of operations matters more than with most add-ons.