Immutable infrastructure
Immutable infrastructure is the operational pattern where servers are never modified after deployment — to change configuration or apply patches, a new image is built and the old instances are replaced rather than updated in-place. This eliminates configuration drift and makes every deployment a known-good rollback point.
The pattern's central claim: mutable infrastructure accumulates entropy. A server modified by a sequence of one-off SSH sessions diverges over time from its peers and from its documented state, until reproducing the environment from scratch becomes impossible. Immutable infrastructure breaks the cycle: containers, AMIs, and VM images are built from declarative specs (Dockerfile, Packer, Bazel), tagged with their commit SHA, and either run as-is or destroyed. Adjacent patterns: blue-green deployment, infrastructure as code, GitOps. The trade-off is build-time cost (every change requires a full image rebuild) and operational discipline (no SSH-and-edit shortcuts); the benefit is reproducibility and rollback simplicity.
Related terms
- Infrastructure as code
Infrastructure as code (IaC) is the practice of defining and provisioning infrastructure — servers, networks, databases, IAM policies — through machine-readable declaration files rather than manual configuration.
- Blue-green deploy
Blue-green deployment maintains two identical production environments — blue (current) and green (new).
- Configuration drift
Configuration drift is the gradual divergence between a system's actual configuration and its declared/documented configuration, caused by manual changes that bypass the infrastructure-as-code source of truth.