我从 Microsoft Azure 的角度来看,并希望从使用 VM 手动创建/部分脚本化的基础设施设置转移到使用 Azure DevOps 作为代码、基础设施和管道的单一存储库的完整 IaC。
在我当前的基础架构中,我们有很多 Windows Server VM,在配置之后仍然需要额外的操作系统配置和应用程序安装。
如果您仅提供 Azure 托管服务(如存储、容器、应用程序服务等),而不像 VM 那样使用 IAAS,那么我认为 IaC 仅按预期“工作”是否正确?当然,我仍然可以自己“编码”虚拟机,但这仍然会使 VM 的配置未编码?那么 IaC 能否完全用于“传统”IAAS 场景?
把它想象成一个分层过程——你可以使用 terraform 或其他东西来构建你的资产,然后使用 salt/chef/ansible/puppet 之类的东西来进行配置管理。您将构建然后触发某些东西以应用您认为合适的配置。
IaC 适用于虚拟机和任何云基础设施。但是您不是在谈论 IaC,而是在谈论 Configuration as Code,这是下一层。你希望你的 IaC 工具交给你 CaC 工具,这可能就像运行带有自定义脚本扩展的 PowerShell 脚本一样简单,或者它可能是一个完整的配置即代码工具,如 Puppet、Chef、Ansible等等