基础结构即代码
基础结构即代码 (IaC) 是通过存储在源代码管理中的计算机可读代码来管理和预配云基础结构资源的过程。 能够像对待任何其他源代码一样对待基础结构,这就是这种做法称为“基础结构即代码”的原因。
IaC 是 DevOps 的关键组件,因为它可用于自动配置和部署基础结构。 这种自动化可减少管理和预配基础结构所需的时间和工作量,同时确保一致且可靠地配置基础结构。 IaC 还有助于确保基础结构安全且符合组织策略。
Azure 原生工具和与云无关的工具
选择 IaC 工具的最重要因素之一是云环境:
Azure 原生工具:Azure CLI、Azure PowerShell 和 Bicep 等 IaC 工具仅在 Azure 中可用。 由于同一家公司同时提供云基础结构和 IaC 工具,因此好处就是可缩短云功能发布与工具支持之间的时间。
与云无关的工具:Terraform 等 IaC 工具支持在混合云环境中以代码形式管理基础结构。 根据 IaC 工具的不同,新发布的 Azure 功能可能不会立即受支持。
命令性 IaC 工具与声明性 IaC 工具
IaC 配置工具有两种类型:
命令性 IaC 工具:命令性工具(或语言)是代码显式指定要执行的操作以及方式的工具。 编写的代码按特定顺序执行操作,一次执行一个步骤来配置基础结构。 大多数命令性 IaC 工具不是幂等的,因为配置是分步执行的。
用于在 Azure 中管理和预配资源的命令性 IaC 工具包括:
- Azure CLI (命令行界面)
- Azure PowerShell
声明性 IaC 工具:使用声明性工具(或语言),可以指定所需的结果,而不是每个步骤的完成方式。 大多数声明性 IaC 工具都遵循通用模式。 创建基础结构的定义后,可运行命令来预配已定义的内容。 声明性 IaC 工具是幂等的,因为无论基础结构配置的状态如何,都可多次应用该配置。 利用此功能,可以使不合规的基础结构恢复合规,以防出现配置偏差。
用于在 Azure 中管理和预配资源的声明性 IaC 工具包括:
- Bicep
- Terraform
建议
- 采用 IaC 方法来部署、管理、治理和支持 Azure 部署。
- 在以下情况下,使用 IaC 的 Azure 原生工具:
- 你只想使用 Azure 原生工具。 你的组织拥有部署 Azure 资源管理器模板(ARM 模板)的既往经验。
- 你的组织希望立即支持 Azure 服务的所有预览版和正式版。
- 在以下情况下,可使用 IaC 的非原生工具:
- 你的组织在混合云环境中管理基础结构。
- 你的组织不需要立即支持 Azure 服务的所有预览版和正式版。