基础设施即代码:源真相与自动化
1. 源真相的概念与应用
在DevOps领域,“源真相”是一个常被误解的术语。有人认为网络本身就是源真相,但这种观点会使DevOps实践变得困难。因为若网络是源真相,就需要验证没有人为操作改变网络设备,这就需要一个中央状态存储库来与网络进行比对,这个存储库才是真正的源真相。
基础设施的另一种状态是不可变,即不改变网络,而是直接替换。这种方法在云原生基础设施(如Kubernetes)中效果很好,可通过滚动替换现有Pod来更新。但在物理网络中,除了设备故障情况,效果不佳,因为网络基础设施对变更的响应不一定良好,例如更改访问控制列表(ACL)或路由可能会导致流量扰动。
源真相在网络中部署新设备时也很有用。新设备尚未配置,无法拥有自己的“真相”,其配置必须完全从源真相创建。无论是新设备还是因故障重建的设备,都应源自源真相。实际上,所有操作都是将源真相数据全部或部分推送到设备中。例如,若只想更新NTP服务器,就只需推送该特定信息,而不是整个配置。不过,通常建议推送设备的所有数据,以便对每次更改的数据进行全面测试和验证。借助大多数API,平台或单个设备能够识别实际更改并进行适当应用。将所有自动化操作视为从源真相向基础设施推送数据,可大大简化基础设施即代码(IaC)。
2. 数据模型
配置基础设施需要大量信息。对于应用程序或服务器而言,源真相数据的规模和管理通常没那么重要。这是因为构建单个系统是一个定义明确的过程,与其他系统的排列组合或相互依赖关系相对较少。通常,配置系统只需设置主机名、IP地址、DNS、AAA和软件包等值,每个值都是一个键值对(如 nameservers = 8.8.8.8, 8.8.4
超级会员免费看
订阅专栏 解锁全文
89

被折叠的 条评论
为什么被折叠?



