Reliable automation

Production Reliability Checklists

Production reliability depends on the gap between a system accepting work and the intended outcome actually becoming true. These notes turn common operational assumptions into specific verification checks.

What reliable production operations require

  • Treat asynchronous acknowledgements as receipts, not proof of completion.
  • Design retries, queues, leases, and dead-letter paths around explicit recovery contracts.
  • Verify releases, migrations, certificates, permissions, and user outcomes after change.

Short answer: what should a production reliability checklist include?

A production reliability checklist should connect each intended change to a measurable service objective, a bounded rollout, explicit overload and retry behavior, independent outcome verification, and a tested recovery path. It should identify who may stop or reverse the change and what evidence is required before declaring success. A green deployment command, health endpoint, or dashboard is only one signal—not proof of a reliable user outcome.

A six-step production reliability checklist

  1. Define the reliability target. Name the user journey, service-level indicator, objective or error budget, observation window, and conditions that make the change unacceptable.
  2. Map dependencies and failure boundaries. List upstreams, downstreams, queues, data stores, credentials, network paths, capacity limits, and partial states that can outlive a request.
  3. Bound the change. Use immutable release identity, staged exposure, admission limits, compatible data changes, and a named operator with authority to pause or reverse the rollout.
  4. Control retries and overload. Set end-to-end deadlines, retry budgets, backoff and jitter, idempotency or reconciliation rules, queue limits, and terminal handling before traffic arrives.
  5. Verify effects independently. Check readiness, representative user paths, durable state, saturation, correctness, and delayed failures through read paths independent of the change command.
  6. Exercise recovery and learn. Test rollback or roll-forward procedures, restore evidence, communications, ownership, and post-change reconciliation; update the checklist when a real failure exposes a missing control.

Failure modes this checklist is meant to catch

  • A rollout is declared healthy from process liveness while the service is not ready for representative traffic.
  • Retries amplify an overloaded dependency or repeat an effect whose first attempt actually completed.
  • A schema or API change works for the new version but breaks mixed-version callers during rollout or rollback.
  • A dashboard average hides a failed user cohort, region, dependency, or long-tail latency path.
  • A backup job succeeds, but no restore test proves recovery time, recovery point, integrity, or application usability.

Current primary guidance

  • Google Site Reliability Engineering books — Primary Google SRE material covering service-level objectives, monitoring, release engineering, overload, distributed-system failure, and incident response.
  • AWS Well-Architected Reliability Pillar — First-party cloud guidance organized around foundations, architecture, change management, and failure management; its recommendations still require workload-specific engineering.
  • Kubernetes container probes — Primary Kubernetes documentation distinguishing startup, liveness, and readiness probes and the different actions their failures trigger.

These sources inform the checklist but do not certify a workload, replace workload-specific testing, or guarantee availability, recovery, or a successful user outcome.

Kubernetes node-drain verification path

A safe node drain crosses four separate reliability boundaries: the operation needs a declared availability and capacity gate, replacements need meaningful readiness, departing Pods must finish within one shared termination budget, and a canary must remain bounded evidence rather than automatic permission for the full drain. Read the complete node-drain procedure first, then use the focused notes to review each control in depth.

  1. How to drain a Kubernetes node safely End-to-end preflight, replacement-capacity, PodDisruptionBudget, staged-eviction, pause, and reconciliation checklist.
  2. Healthy is not the same as ready Define the serving and application-outcome signals a replacement must satisfy before it absorbs work.
  3. Termination grace is a shared budget Budget endpoint removal, hooks, signal handling, in-flight work, and process exit as one departure path.
  4. A canary is not a rollout decision Use one representative eviction to limit initial exposure without treating it as proof for every remaining workload.

Field notes in this guide

These guides organize published field notes; they do not claim search rankings or substitute for primary documentation.