基础设施即代码的最佳实践
1. 版本控制传达上下文
在基础设施即代码(Infrastructure as Code,简称 IaC)中,有效利用版本控制能够实现环境的可重现性。围绕版本控制的结构化实践有助于快速重现配置并做出明智的更改。
例如,在开发环境中更新防火墙规则,允许从 “app - network” 到 “shared - services - network” 的流量。可以添加如下提交信息来描述添加此规则的原因:
$ git commit -m “Allow app to connect to queues
app - network needs to connect to shared - services - network because the application uses
queues. All ports need to be open.”
几周后在生产环境重现该网络时,如果忘记了添加此规则的原因,查看提交历史记录就能想起详细的描述信息,从而知道应用程序需要访问队列。
在为基础设施即代码编写提交信息时,无需解释配置内容,因为更改本身已经体现了配置情况。应使用提交信息解释为何进行更改以及该更改会对其他基础设施产生的影响。
此外,为了便于追溯,可能需要在提交信息前添加问题编号或工单编号。例如,处理编号为 TICKET - 002 的工单,其中包含允许应用程序和共享服务之间流量的请求,可这样编写提交信息:
$ git commit -m “TICK