事情没有按计划进行:Azure Blueprints 之路的终结
很长一段时间以来,微软一直提供 Azure Blueprints 作为预览服务,您可以使用它以一致且可重复的方式部署资源。这听起来可能像常规 ARM 模板或任何其他基础设施即代码 (IaC) 技术,但存在一些关键区别。
蓝图允许团队定义一个架构,其中包括资源组、Azure 资源管理器模板(ARM 模板)、策略分配和角色分配等资源作为蓝图中的工件。然后,团队可以部署这些工件,并维护蓝图与蓝图部署的基础架构之间的连接。
通过这种连接,可以对蓝图进行版本控制,并且团队可以使用新的和以前的蓝图版本来更新甚至回滚蓝图定义的基础架构。
您还可以参数化您的蓝图并将参数传递给包含资源,这使您可以轻松地重用您的蓝图来多次部署相同的架构。
蓝图也可以锁定,从而允许定义蓝图的团队防止删除或修改已定义的资源。锁定蓝图(不要与资源锁混淆)是 Azure 基于角色的访问控制 (Azure RBAC) 中创建拒绝分配的唯一方法。
非常整洁,对吧?
嗯,事情并不总是按计划进行。
没有全面上市计划
微软已决定不将 Azure Blueprints 推向通用版本 (GA)。相反,他们将在未来几年内用模板规范和部署堆栈取代 Azure Blueprints 的功能。
模板规范允许您定义和存储 ARM 模板以供以后使用。与来自外部存储库的基础设施即代码不同,模板规范存储在 Azure 资源组中。模板规范可以进行版本控制,并且可以使用 Azure RBAC 控制访问。模板规范通常可用,并且已经用于支持 Azure 的多种体验,包括 Microsoft Sentinel 的内容库等功能。
什么是部署堆栈?
部署堆栈是目前处于预览阶段的一项新功能,它提供的功能与 Azure 蓝图基本相同。它们允许你将一组可重复的基础结构定义为代码,并将该基础结构部署到多个范围(如资源组、订阅和管理组)。
部署堆栈具有许多与蓝图相同的功能。例如,您可以使用 DenySettings 阻止删除和修改资源,类似于蓝图上的锁的工作方式。
但是部署堆栈也带来了一些改进。现在,您可以更好地控制从管理中删除资源时发生的情况。使用 Azure Blueprints,资源只是被遗忘和遗弃。使用部署堆栈,您可以选择删除已从堆栈中删除的资源 - 类似于 Terraform 的工作方式。
除旧迎新
Microsoft 尚未提供任何新工具来帮助您从 Azure Blueprints 迁移到部署堆栈。但您可以使用一些现有工具来完成迁移。
一种选择是使用 PowerShell cmdlet 导出蓝图。以下脚本会将蓝图及其相关工件导出到文件夹。
Install-Module Az.Blueprint
$BP = Get-AzBlueprint -Name "ExampleBlueprint" -ManagementGroupId "06894c9d-96f0-4b79-ba96-05440b13fd10"
Export-AzBlueprintWithArtifact -Blueprint $BP -OutputPath ExampleBlueprint
从那里,您可以将所有工件转换为标准 ARM 资源定义,作为新部署堆栈的一部分。
另一种选择是采用现有的工作流程迁移到 Bicep,使用蓝图部署的资源。
其他治理功能
查看我的最新课程 A Cloud Guru,AZ-500:管理安全操作,了解有关 Azure 治理功能的更多信息,这些功能可帮助您管理和保护 Azure 基础结构。我们研究了 Azure 蓝图和其他工具,例如 Azure Policy 和 Microsoft Defender for Cloud 的云安全态势管理 (CPSM)。
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~