# 不可变基础设施

> 指一旦服务器部署后，就绝对不修改它

- ID: m02121
- 分类: culture
- 领域: 哲学

## 定义

指一旦服务器部署后，就绝对不修改它。如果需要更新或修复，直接销毁旧的，部署一个新的，而不是在旧的上面打补丁。脚手架作用：消除配置漂移。它体现了“替换优于维修”的哲学。在处理复杂的历史遗留问题（如烂代码、烂制度）时，有时推倒重来（Immutable）比修修补补（Mutable）更安全、更高效。

## 机制

长期可变的基础设施会因零散修改累积"配置漂移"（各环境不一致、状态难复现），使故障难以排查、回滚困难。不可变模式用"全新部署+销毁旧件"替代"原地修改"，保证环境一致、可版本化、可一键回滚。其思想扩展为"替换优于维修"——当改造对象的累积改动成本超过重建，推倒重来更安全。

## 练习

1. 镜像化：把环境/服务做成可版本化的不可变镜像。 2. 禁原地改：变更只通过新部署，不在运行实例上改。 3. 替换而非修：需更新即建新、切流量、销旧。 4. 可回滚：保留旧版本，异常即切回。 5. 隐喻迁移：对"烂代码/烂制度"评估重建 vs 修补成本。

## 脚手架用法

消除配置漂移。它体现了“替换优于维修”的哲学。在处理复杂的历史遗留问题（如烂代码、烂制度）时，有时推倒重来（Immutable）比修修补补（Mutable）更安全、更高效。

[阅读网页](https://thinkingmodels.site/entries/detail/m02121)
