Configuration Drift
SEV-3, Limited ImpactLinear propagation · configuration · Affects 3 scenario(s)
Severity Classification
Classified as PARTIAL based on failure mode severity. This failure mode appears in 3 known architecture scenarios, indicating widespread relevance.
Propagation Chain
Origin component
Configuration Drift begins at the source component. Trigger: Manual configuration change applied directly to a production node without code update.
Immediate (T+0) · Signal: Log Errors
Downstream dependents
Failure propagates to directly dependent components via synchronous calls or shared resources. Latency increases and error rates rise on affected dependencies.
Configuration drift without tooling may take days to weeks to detect, often discovered only when a condition-dependent failure occurs. With automated drift detection (Ansible, Puppet, Terraform plan), detectable within minutes of the drift occurring. · Signal: Latency spike, connection timeout, or error rate increase on dependents
Blast Radius
Blast radius depends on how many nodes have drifted and what configuration was changed. A single drifted node causes intermittent failures on requests routed to it. A cluster-wide drift causes uniform failures. Memory limit drift (too low) causes OOM kills. Connection limit drift causes connection exhaustion. The blast radius of the configuration change itself, multiplied by the fraction of nodes that have drifted.
Contributing Factors
This operational trigger enables Configuration Drift: Manual configuration change applied directly to a production node without code update
This operational trigger enables Configuration Drift: Partial rollout of configuration change interrupted before completion
This operational trigger enables Configuration Drift: Environment-specific override not captured in configuration management
Remediation Plan
Identify the scope of drift: which nodes are affected and what configuration differs
Effort: Minutes to hours (on-call response)
Compare actual configuration against desired state in repository using config management tool
Effort: Minutes to hours (on-call response)
For immediate fix: run configuration management against drifted nodes to converge state
Effort: Minutes to hours (on-call response)
Store all configuration in git. A GitOps controller (ArgoCD, Flux for Kubernetes; Ansible Tower for host-level config) continuously compares git state against running state and applies corrections. Manual changes are overwritten at the next sync cycle (typically within minutes).
Effort: 1 day to 1 week
Run Ansible/Puppet/Chef in check/dry-run mode on a schedule (every 30 minutes). Alert when drift is detected. This does not auto-remediate but provides early detection before condition-dependent failures occur.
Effort: 1 day to 1 week
Configure alerts for: log errors, alert. Set thresholds to fire at 70% of critical level to allow response before full failure.
Effort: 1–3 days
Package configuration into container images or AMIs. Configuration changes produce a new image version; all instances are replaced with the new version. No in-place mutation means no drift surface. Kubernetes deployments naturally implement this.
Effort: 1–4 sprints
Configuration Drift affects 3 architecture scenarios (API Gateway Platform, Developer Tools Platform, Healthcare Records Platform). Design a shared mitigation strategy or a platform-level safeguard that prevents this failure mode from manifesting across all affected services.
Effort: 1–3 months
This post-mortem framework is derived from structured architecture knowledge. It provides an evidence-grounded starting point, not a substitute for a live incident review conducted by the team closest to the system. Adjust remediation priorities based on actual runtime observations.