Files
nexus/wiki/concepts/Immutable-Infrastructure.md
2026-04-27 16:26:34 +08:00

2.6 KiB
Raw Blame History

title, type, tags, sources, last_updated
title type tags sources last_updated
Immutable Infrastructure concept
Infrastructure as Code
DevOps
Cloud Native
devops-maturity-model-from-traditional-it-to-advanced-devops
2026-04-26

定义

不可变基础设施Immutable Infrastructure是一种基础设施管理范式服务器一旦部署就不再进行原地修改。当需要更新配置或修复问题时整个服务器被替换为新版本而不是在原有服务器上打补丁或更新。

核心原则

  1. 不修改已部署的服务器:任何变更都生成新服务器镜像
  2. 完整镜像部署:使用预构建的镜像完整部署
  3. 自动化替换:通过自动化流水线处理服务器生命周期
  4. 环境一致性:所有环境使用相同的基础镜像

在 DevOps 成熟度模型中的位置

不可变基础设施是 Phase 4高度优化阶段 的关键特征:

"Immutable infrastructure replaces old servers rather than updating them."

在该阶段,组织通过流水线管理基础设施和代码更新,不再依赖手动服务器修改。

不可变 vs 可变基础设施

维度 不可变基础设施 可变基础设施
更新方式 替换整个服务器 在原服务器上打补丁
一致性 所有环境高度一致 环境间可能存在差异
回滚难度 简单(切换回旧镜像) 困难(需反向补丁)
调试复杂度 低(快照确定) 高(变化累积)
部署速度 快(预构建镜像) 慢(需逐步更新)

实现方式

容器化(推荐)

# 每次构建生成新镜像
FROM base-image:latest
RUN ./build.sh
# 部署时拉取新镜像,不修改原容器

虚拟机镜像

# Packer 创建镜像
packer build template.json
# Terraform 用新 AMI 替换旧实例
terraform apply

云基础设施

# Kubernetes 中使用 Immutable Pod
spec:
  containers:
  - image: myapp:v2.0  # 替换镜像而非修改容器

与相关概念的关系

来源