← all categories
D

Docker & Kubernetes

Docker made 'runs on my machine' close to a solved problem; Kubernetes made 'runs on ten thousand machines' a solved problem — at the cost of considerable complexity. Both belong in a modern backend engineer's toolkit, but the honest answer to 'do I need Kubernetes?' is usually 'not yet'. This track treats them as two separate tools: Docker is nearly always the right answer for packaging, while Kubernetes is the right answer specifically when you have enough services and enough traffic to justify a control plane. Use each where it earns its keep.

What this track covers

Writing production-quality Dockerfiles (multi-stage builds, non-root users, minimal base images), Docker Compose for local development, container image security basics, then Kubernetes fundamentals — Pods, Deployments, Services, Ingress, ConfigMaps and Secrets, resource requests and limits, horizontal pod autoscaling, and the operational patterns (rolling updates, readiness probes) that make a Kubernetes deployment actually reliable.

Who this is for

Backend engineers who need to containerise a service for production, and platform engineers running a shared cluster that product teams deploy into.

Prerequisites

  • Comfortable on the Linux command line
  • Basic understanding of processes, ports and TCP
  • Have built and shipped at least one HTTP service
  • YAML familiarity — Kubernetes is YAML-dense

Recommended learning order

// beginner

Start with Dockerizing a Spring Boot application (or the FastAPI equivalent), then Docker Compose for a multi-service local stack (app + database + cache). You should be able to reproduce the entire environment on a new laptop in one command.

// intermediate

Move to Kubernetes basics — deploy a single service, expose it, set resource limits, wire in a config map. Then add ingress, TLS and a horizontal pod autoscaler. Study readiness and liveness probes carefully — this is where most first-time Kubernetes users lose availability.

// advanced

Multi-cluster topology, service mesh (Istio or Linkerd) when you actually need mTLS and traffic splitting, GitOps with Argo CD or Flux, and cluster-level cost and capacity planning. At this stage Kubernetes fades into the substrate and platform-team concerns dominate.

Common mistakes to avoid

  • Running containers as root because it 'just works' locally
  • Copying node_modules or the target/ folder into the image instead of building inside a multi-stage image
  • No resource requests or limits on Kubernetes Pods — one runaway service starves every other Pod on the node
  • Confusing liveness with readiness probes and getting Pods killed in a restart loop under load
  • Reaching for Kubernetes before Docker Compose or a single VM has stopped being enough — the operational cost is real

Career relevance

Kubernetes fluency is now the default expectation for senior backend and platform roles at any company running more than a handful of services. Docker alone is table-stakes for every backend role — assume any team using Docker will expect you to be productive in it on day one.

Featured tutorials in this track

Related tracks