什么是基础设施即代码?
基础设施即代码(IaC)是一种管理IT系统基础设施的方法,它使用可重复执行的配置文件,为CI/CD开发生成一致的部署环境。
什么是基础设施即代码?
基础设施即代码是指通过声明式定义或脚本化定义(即代码)来预置和管理基础设施,包括硬件、虚拟资源、平台、容器系统、服务和拓扑,而不是采用手动配置或传统配置工具。IaC将配置、策略、配置文件、脚本和模板与其部署所在的硬件或软件分离,使其能够像代码一样存储、共享、修订和应用。
随着云基础设施日益普及,这种源于DevOps理念的方法,将开发人员管理应用源代码时采用的版本控制和可重复性同样应用于基础设施编排。IaC方法每次应用时都会创建相同的基础设施环境,从而支持持续集成、持续交付和持续部署。

图1:IaC将配置资源与硬件或软件分离,以便像代码一样存储、共享和管理这些资源
为什么基础设施即代码很重要?
将基础设施视为代码,可为基础设施管理带来自动化、可见性、效率和可扩展性方面的优势,从而更快速、更可靠地部署应用,同时减少人工操作,并降低人为错误或安全漏洞的风险。由于配置与系统解耦,因此可以更轻松地将其部署到其他类似系统上。这有助于降低从数据中心迁移到云端或从一个云迁移到另一个云的难度。
IaC还支持敏捷开发和CI/CD策略。由于沙盒、测试和生产环境均使用相同的声明式代码或脚本进行配置,因此可确保这些环境完全相同,并长期保持一致。
基础设施即代码如何运作?
可以采用命令式或声明式方法,通过IaC配置服务器、负载均衡器、虚拟机及其他数据中心或云资源。命令式方法指定操作指令,但不详细说明结果;声明式方法指定所需的配置结果,但不详细说明如何实现,该过程可基于现有工作流和模板。两者的区别可以用点三明治来类比:声明式方法是直接点一份三明治,相信制作者知道该执行哪些步骤以及执行顺序;命令式方法则是逐一指定制作所需的每个步骤,但不一定说明这些步骤最终会做出一份三明治。
无论采用声明式方法还是命令式方法,IaC都能实现资源配置和基础设施管理的自动化。
F5如何处理基础设施即代码?
借助插件或F5 Application Services 3 (AS3)扩展,可将F5 BIG-IP平台作为“代码”进行管理,并使用IaC配置和版本控制工具,例如Terraform和Ansible。
The F5 Automation Toolchain集成了AS3扩展和F5 Declarative Onboarding(DO)扩展。AS3是一种基于JSON声明的灵活、低开销机制,用于在BIG-IP系统上配置L4–L7应用服务。DO扩展支持以声明方式对BIG-IP产品进行L–L3初始配置。

