Skip to content
Knowledge Hub

DevOps Basic

One misconfiguration at the operations layer can turn a small incident into a large one. The database hiccups for a few seconds, every Pod’s health check fails at once, and Kubernetes restarts the whole fleet.

Caches are wiped, and the database that just recovered is hit by the startup load of every Pod.

This group follows the lifecycle of a deploy: a Pod starts → a Pod is replaced → the schema changes at the same time.

It suits backend developers who are starting to own their deploys to Kubernetes, and tech leads who want to review an operations checklist. Not covered yet: autoscaling, resource requests/limits, networking, the observability stack.

# Article You will be able to answer Level Read
1 Kubernetes probes How do startup, readiness and liveness differ? What should readiness do when a shared dependency dies? Basic ~12 min
2 SIGTERM during deploys Why do deploys still cut requests? How do preStop, the grace period and server.close() share one budget? Intermediate ~15 min
3 Expand–contract How do you rename a column while two app versions run at once? How do lock_timeout, NOT VALID and rollback work? Intermediate ~15 min
4 Docker multi-stage & non-root Why is the image 1.7 GB and slow to rebuild? How do you order layers, split stages, run non-root and keep secrets out of the image? Basic ~12 min
5 Requests & limits Why does p99 spike while CPU looks low? What do requests, limits, QoS and OOMKilled really mean? Intermediate ~15 min
6 Deployment strategies Rolling, blue-green or canary? What does a rollback not undo? What to watch while a rollout runs? Intermediate ~15 min

Article 2 continues from article 1 (probes decide whether a Pod receives traffic; article 2 covers what happens when a Pod is stopped). Article 3 is technically independent but needs the idea of rolling deploys from article 2, and assumes you know ACID and transactions.

Symptom Read
Pods restart repeatedly during startup Startup probe and initialDelaySeconds
A slow database drops the whole fleet out of the Service Shared dependencies
Restart storms under high load Misconfigured liveness
Every deploy produces a few connection refused or 502 errors SIGTERM during deploys
Rollouts drag on and Pods get SIGKILLed Grace period budget
The old app errors after a migration, or ALTER TABLE hangs the whole table Expand–contract
Need to add NOT NULL or an index on a large table NOT NULL and indexes without locking the table

When probes are right but requests are still slow, the question becomes one of measurement: logs, metrics and traces helps you pick the right signal; to turn “slow” into a measurable target, see SLI, SLO and error budget.