Production Checklist
Check artifacts, topology, storage, security, observability, recovery, capacity, and rollback before production traffic.
This checklist is a production admission gate, not a collection of suggestions. Pause traffic cutover whenever a critical item has no owner, evidence, or rollback path.
This page is for the first launch of a new environment. For a version upgrade, first determine whether old and new versions may run together, then use Upgrade & Migration to choose a rolling update, maintenance window, or separate migration.
Artifact and configuration
- Every node is pinned to the same commit SHA and artifact digest.
- The build toolchain, dependency acquisition, and artifact retention are reproducible.
- Every node uses explicit
-config, and the configuration version is in the release record. - The current binary loads
wukongim.tomlwith no unknown fields. -
WK_*overrides are audited; list values replace the complete list as JSON. - Configuration, logs, and diagnostics do not expose complete secrets.
Topology and storage
- Every deployment is treated as a cluster; node IDs, data directories, and transport addresses are unique.
-
hash_slot_count = 256, and replica counts fit the node count and failure domains. - Node inventory, cluster ID, and replica policy match on every node.
- Node transport is mutually reachable but closed to unrelated networks.
- Every node has an independent persistent disk with capacity, IO latency, inode, and disk-full alerts.
- Recreating a container or process does not remove data, logs, or required state.
Network and security
- Advertised client TCP/WS/WSS addresses are reachable from target networks.
- TLS terminates and validates correctly at the load balancer, proxy, or service mesh.
- Product HTTP APIs are on a trusted network or behind an external authentication proxy.
- Manager authentication is enabled and all fixed users, passwords, and JWT secrets are replaced.
- Join tokens and other capability secrets are distributed by a secret system and can rotate.
- Manager, metrics, debug, benchmark, diagnostics, and transport each follow least exposure.
- Benchmark and debug APIs are disabled by default; temporary diagnostics have approval, expiry, and audit.
Readiness, observability, and alerts
- Load balancers use
/readyz, never/healthz, for traffic admission. - A
/readyz503removes the node and triggers an alert. - Process, CPU, memory, disk, FD, goroutine, and network signals are visible per node.
-
/metricsis collected, with alerts for critical Gateway, Controller, Slot, Channel, storage, and delivery signals. - Logs are centralized, identify the node, have bounded retention, and omit sensitive payloads.
- Alerts have an on-call owner, escalation path, and corresponding runbook.
Data protection and recovery
- Recovery point objective (RPO) and recovery time objective (RTO) are defined.
- Backups cover the correct nodes, data scope, and cluster generation rather than an arbitrary directory.
- Recovery has been exercised in isolation and verified with message reads and new writes.
- Restore maintenance cannot admit business traffic through
/readyz. - Current configuration, artifact digest, node inventory, and secret-recovery procedure are retained.
Use Backup & Restore to verify the current plan revision and complete archive. A backup without a recovery drill is not complete evidence.
Capacity and failure
- Capacity tests approximate real online users, message rates, channel counts, and large-group sizes.
- Results record version, configuration, hardware, workload, latency, error rate, and resource headroom.
- Queues, concurrency, memory, FDs, disk, and network have explicit headroom and backpressure expectations.
- Pre-production exercises node exit, restart, disk pressure, and downstream webhook failure.
- A single peak-QPS result is not treated as sustainable production capacity.
First rollout and rollback
- Freeze the artifact, configuration, and change window.
- Complete readiness, end-to-end messaging, and failure checks in pre-production.
- Start nodes according to the approved first-launch plan; wait for
/readyzbefore proceeding. - Send a small traffic percentage and observe errors, latency, queues, and storage.
- Before expanding traffic, verify product sends, client send/receive, reconnect sync, and webhook boundaries.
- On anomalies, stop progression, remove new nodes from traffic, and execute the rehearsed rollback.
Ready does not mean launch-ready
/readyz only proves that the current node meets its runtime traffic gate. It does not prove capacity, backups, disaster recovery, TLS, permissions, or business integration; gather those forms of evidence separately.
After all items pass, retain the checklist, logs, metric snapshots, artifact digest, and approvals as release evidence.