介绍 Azure 资源管理器和 Azure ARM 模板

已完成

Azure 资源管理器(ARM)是 Azure 的部署和管理服务。 它提供一个管理层,可用于在 Azure 帐户中创建、更新和删除资源。 每当使用 Azure 资源执行任何作时,ARM 都参与其中。

当用户从任何 Azure 工具、API 或 SDK 发送请求时,ARM 将收到请求。 ARM 对请求进行身份验证和授权。 然后,ARM 会将请求发送到 Azure 服务,该服务将执行请求的作。 在所有不同的工具中看到一致的结果和功能,因为所有请求都通过同一 API 进行处理。

Azure 资源管理器的优势

使用 Azure 资源管理器,可以:

  • 通过声明性模板而不是脚本管理基础结构。 资源管理器模板是一个 JSON 文件,用于定义要部署到 Azure 的内容。
  • 将解决方案的所有资源作为一个整体进行部署、管理和监视,而不是单独处理这些资源。
  • 在整个开发生命周期内重新部署解决方案,并确保资源部署在一致状态。
  • 定义资源之间的依赖关系,以便按正确的顺序部署它们。
  • 将访问控制应用于所有服务,因为角色访问控制 (RBAC) 已经内置集成到管理平台中。
  • 将标记应用于资源,以逻辑方式组织订阅中的所有资源。
  • 通过查看共享相同标记的资源组的成本来阐明组织的计费。

以下视频概述了 Azure 资源管理器。

基础结构即代码

基础结构即代码是将基础结构作为代码行进行管理的概念。 在介绍性级别,可以使用 Azure Cloud Shell、Azure PowerShell 或 Azure CLI 来管理和配置资源。 随着你在云计算中越来越得心应手,可以利用基础设施即代码的概念,通过可重复的模板和配置来管理整个部署。 ARM 模板和 Bicep 是将基础结构即代码与 Azure 资源管理器配合使用以维护环境的两个示例。

ARM 模板

通过使用 ARM 模板,可以描述要以声明性 JSON 格式使用的资源。 使用 ARM 模板,部署代码在运行任何代码之前进行验证。 这可确保正确创建和连接资源。 然后,该模板会并行协调这些资源的创建。 也就是说,如果需要同一资源的 50 个实例,则会同时创建所有 50 个实例。

归根结底,开发人员、DevOps 专业人员或 IT 专业人员只需要定义 ARM 模板中每个资源的所需状态和配置,并且该模板会执行其余作。 模板甚至可以在设置资源之前或之后执行 PowerShell 和 Bash 脚本。

使用 ARM 模板的好处

在规划部署 Azure 资源时,ARM 模板提供了许多优势。 其中一些好处包括:

  • 声明性语法:ARM 模板允许以声明方式创建和部署整个 Azure 基础结构。 声明性语法意味着声明要部署的内容,但不需要编写实际的编程命令和序列来部署资源。
  • 可重复的结果:在开发生命周期内重复部署基础结构,并确保资源部署方式一致。 可以使用同一 ARM 模板部署多个开发/测试环境,知道所有环境都相同。
  • 编排:无需担心操作顺序的复杂性。 Azure 资源管理器协调相互依赖资源的部署,因此按正确的顺序创建它们。 如果可能,Azure 资源管理器并行部署资源,因此部署的完成速度比串行部署更快。 通过一个命令而不是通过多个命令式命令来部署模板。
  • 模块化文件:可以将模板分解为较小的可重用组件,并在部署时将它们链接在一起。 还可以将一个模板嵌套在另一个模板中。 例如,可以为 VM 堆栈创建模板,然后将该模板嵌套在部署整个环境的模板内,并且该 VM 堆栈将一致地部署到每个环境模板中。
  • 扩展性:使用部署脚本,可以将 PowerShell 或 Bash 脚本添加到模板。 部署脚本扩展了在部署期间设置资源的能力。 脚本可以包含在模板中,也可以存储在外部源中,并在模板中引用。 部署脚本使你能够在单个 ARM 模板中完成端到端环境设置。

Bicep

Bicep 是一种使用声明性语法部署 Azure 资源的语言。 Bicep 文件定义基础结构和配置。 然后,ARM 基于 Bicep 文件部署该环境。 虽然类似于以 JSON 编写的 ARM 模板,但 Bicep 文件往往使用更简单、更简洁的样式。

Bicep 的一些优点是:

  • 对所有资源类型和 API 版本的支持:Bicep 立即支持 Azure 服务的所有预览版和 GA 版本。 一旦资源提供程序引入新的资源类型和 API 版本,就可以在 Bicep 文件中使用它们。 在使用新服务之前,无需等待工具更新。
  • 简单语法:与等效的 JSON 模板相比,Bicep 文件更简洁、更易于阅读。 Bicep 不需要具备编程语言的相关知识。 Bicep 语法是声明性的,并指定要部署的资源和资源属性。
  • 可重复的结果:在开发生命周期内重复部署基础结构,并确保资源部署方式一致。 Bicep 文件是幂等的,这意味着,可以多次部署同一文件,并获得处于相同状态的相同资源类型。 可以开发一个表示所需状态的文件,而不是开发大量单独的文件来表示更新。
  • 编排:无需担心操作顺序的复杂性。 资源管理器协调相互依赖资源的部署,以便按正确的顺序创建它们。 如果可能,资源管理器会并行部署资源,以便部署比串行部署更快。 你可以通过一个命令而不是多个强制性命令来部署文件。
  • 模块化:可以使用模块将 Bicep 代码分解为可管理部件。 该模块部署一组相关资源。 模块使你能够重复使用代码并简化开发。 随时将模块添加到 Bicep 文件,以便部署这些资源。