导语
基础架构即代码(IaC)是使用配置语言配置和管理基础架构的能力。它提供可重复性,透明性,并将现代软件开发实践应用于基础结构的管理,包括网络,负载平衡器,虚拟机,Kubernetes集群和监视。
正文
IaC有助于减少错误和配置偏差,同时允许工程师将时间花在更高价值的任务上。IaC定义基础结构的最终状态应该是什么样,而不是定义要执行的过程。
那么,为什么不是所有公司都使用IaC?
公司可能尚未采用IaC的主要原因有三个。
许多行业和工程师尚未完全接受或适应基础架构API和代码的范式转变
我们中的许多人都认为基础设施是可触摸的,涉及物理安装和布线。只是在企业IT时代才相对较新,该行业才采用了API,这些API允许按需借用和配置基础结构而无需实际操作。工程师善于使用经过时间考验,经过严格考验的过程来建立基础架构。渐进式学习以及将IaC集成到流程和文化中有助于消化原本艰巨而具有挑战性的项目。
工业界正在努力调整安全控制和法规,以融合云和自动化的机会,同时又不损害隐私,安全性和安全性的高标准。使用IaC来提高自身效率的工程师可以帮助其在更广泛的领域中推广使用。18F办公室就是这种成功的例子,它有助于改善政府通过技术为公众服务的方式。
IaC可能会感觉失去安全性或控制力
对如何以及为什么配置基础结构的意识不断增强,可能会引发问题或反馈,这些问题或反馈最初会使那些做出基础结构决策的人感到不舒服。对于总是按下这些按钮的工程师来说,其他人可以轻松地更改基础结构可能会感到危险或贬值。
IaC提供了一个机会,可以在不危害必要的控制措施的情况下改善单个人的故障点和知识瓶颈。对基础架构代码和IaC工具的访问仍然可以匹配组织结构,文化和批准流程。基础架构工程师仍然是其发展和成功不可或缺的组成部分,他们可以提供更高水平的解决方案来解决下一级别的问题。
“我们行动太快,以至于没有时间花很多时间来增加IaC,我们很快就点击了用户界面”
IaC实现的可重复性意味着无需保留手工创建的基础架构,因为下个月可能需要它,并且可以创建并行基础架构进行测试并在明天销毁。开始将IaC用于一些较小的事情,例如分解偶尔的临时VM,然后创建一个访问受限的服务帐户,其他人在需要该VM时可以与您的IaC一起使用。您的IaC效率将随着您组织中IaC知识和代码的增加而增加。
Kubernetes和IaC
将IaC与Kubernetes结合使用有助于标准化Kubernetes集群配置并管理插件。现在可以对基础结构进行版本控制并提交到Git存储库,并且当公司需要扩展到新的区域或云时,可以更轻松地将其“存储”到其他地方。IaC的好处是巨大的,包括:
减少人为错误并提高可预测性:创建新的测试环境而不影响生产,并使用代码审查流程在多个环境中进行更改。重复的体力劳动对重点的关注和对细节的关注较少。
一致性:IaC与Kubernetes的可重复性允许快速创建一致的基础架构。这样可以腾出时间来应对其他挑战。
改进的更改跟踪和可审核性:当基础结构在版本化的存储库(例如Git)中表示时,对Git存储库的提交可以反映进行更改的人员,时间和原因。该代码提供了有关环境构建和发展方式的记录。
恢复速度更快:枢转能力和重新部署速度会影响应用程序的可靠性。基础架构即代码可以帮助您了解恢复过程的外观,并更经常地实践该过程。
开始使用IaC和Kubernetes
随着公司进入容器,云原生应用程序和Kubernetes的世界,IaC将帮助团队提高应用程序的可靠性和稳定性,简化开发和运营并支持更好的用户体验。
在Kubernetes环境中,由于团队正在部署标准配置,因此使用IaC变得更容易实现可靠性。DevOps团队可以使用IaC来容纳容器和Kubernetes Pod的短暂特性,并避免单点故障。