自动化基础设施变更过程

大多数 IT 组织都有变更管理流程,以减少运营和安全风险。大多数公司遵循 IT 基础设施库(ITIL)。在 ITIL 中,变更请求(RFC)必须由变更建议委员会(CAB)批准。问题在于,CAB 的批准与软件交付性能差有关(见 Forsgren N., Humble, J., & Kim, G., 2018)。

从安全角度来看,变更管理和职务分离非常重要,并且通常也要求合规性。关键在于再次从 DevOps 的角度重新思考这些基本原则。

通过基础设施即代码(IaC)和完全自动化的部署,所有基础设施变更都有完整的审计跟踪。如果你对流程有完全的控制,最好的做法是将 CAB 设置为 IaC 文件的 CODEOWNERS,并在拉取请求中进行批准。对于应用层的简单标准变更(例如,Kubernetes 集群中的容器),同行评审可能就足够了。对于更深层次的基础设施变更,涉及网络、防火墙或机密的变更,审查人员的数量会增加,你可以根据需要添加相关专家。这些文件通常也位于其他仓库中,不会影响开发者的速度,也不会拖慢发布进程。

如果你必须遵守公司流程,这可能就不那么容易了。在这种情况下,你需要尝试重新分类你的变更,尽可能让大部分变更得到预先批准,并使用同行评审和自动化检查来确保这些变更的安全性。然后,为了加快 CAB 的审批过程,自动化高风险变更的流程,使得提交给 CAB 的信息尽可能完整和准确,从而实现快速批准(见 Kim G., Humble J., Debois P. & Willis J., 2016, 第 VI 部分,第 23 章)。