Azure 优化引擎入门

Azure 优化引擎(AOE)是一种可扩展解决方案,旨在为 Azure 环境生成优化建议。 将其视为完全可自定义的 Azure 顾问。


先决条件

下面是部署 AOE 的要求:

  • 支持的 Azure 订阅(请参阅 常见问题解答
  • 具有所选订阅的所有者权限的用户帐户,以便向自动化托管标识授予订阅(读取者)和部署资源组(存储 Blob 数据参与者)所需的权限
  • Azure PowerShell 9.0.0+
  • 可选,适用于标识和 Azure 基于角色的访问控制(RBAC)(RBAC_治理)Microsoft.Graph.Authentication 和 Microsoft.Graph.Identity.DirectoryManagement PowerShell 模块(版本 2.4.0+)。
  • (可选)用于标识和 Azure RBAC 治理。 至少需要对 Microsoft Entra 租户具有特权角色管理员权限的用户帐户,以便向托管标识授予Microsoft Entra ID(全局读取者)所需的权限。
  • (可选)用于 Azure 承诺见解。 需要具有企业协议(企业注册管理员)或Microsoft 客户协议(计费配置文件所有者)的管理权限的用户帐户。 需要该帐户,以便向托管标识授予对使用协议所需的特权。

在部署期间,你会看到几个问题。 必须规划以下项:

  • 确定是要重复使用现有的 Log Analytics 工作区,还是要创建新工作区。

    重要

    理想情况下,应重复使用已发送性能指标(Perf 表)的 VM 的工作区,否则不会完全利用增强的正确大小建议功能。 如果由于某种原因而不可能/所需,仍可管理使用多个工作区(请参阅 配置工作区)。

  • 需要一个用于部署解决方案的 Azure 订阅。 如果要重用 Log Analytics 工作区,则必须部署到工作区所在的同一订阅中。
  • 创建 Azure 资源需要唯一的名称前缀。 如果具有特定的命名要求,也可以在部署期间选择资源名称。
  • Azure 区域
  • (可选)用于 Azure 承诺见解。 需要企业协议计费帐户 ID(EA/Microsoft 客户协议(MCA)客户)和计费配置文件 ID(MCA 客户)。

为什么是优化引擎?

最初开发了 Azure 优化引擎(AOE),以增加来自 Azure 顾问的虚拟机大小建议,其中包含更多指标和属性。 可以阅读博客系列,了解 有关自动持续优化(第 1 部分)的扩充 Azure 顾问成本建议。 它演变为一个通用框架,用于 由社区开发的各种受架构良好框架启发的优化。 除了 Azure 顾问生成的建议外,AOE 还包括一些自定义建议,主要来自成本支柱,并允许快速开发新建议。 AOE 为 Azure 顾问和其他第一方 Azure 服务补充了更多优化见解,并允许完全自定义。


好处

除了收集 所有 Azure 顾问建议外,AOE 还包括可根据需求定制的其他自定义建议,例如:

  • 成本
    • 扩充顾问虚拟机(VM)适当调整大小的成本建议,根据虚拟机来宾 OS 指标(由 Azure Monitor 代理收集)和 Azure 属性进行拟合分数
    • 未充分利用的 Azure 虚拟机规模集、高级 SSD 磁盘、App 服务计划和 Azure SQL 数据库(仅基于 DTU 的 SKU)
    • 孤立磁盘和公共 IP
    • 没有后端池的标准负载均衡器或应用程序网关
    • 自很久以前就解除分配的 VM(忘记的 VM)
    • 没有保留策略的存储帐户
    • 在没有任何应用程序的情况下App 服务计划
    • 已停止(未解除分配)虚拟机
  • 高可用性
    • 虚拟机高可用性(使用非托管磁盘时的可用性区域计数、可用性集、托管磁盘、存储帐户分发)
    • 虚拟机规模集高可用性(可用性区域计数、托管磁盘)
    • 可用性集结构(容错/更新域计数)
  • 性能
    • 虚拟机规模集因缺少计算资源而受到限制
    • 受资源不足约束的 SQL 数据库(仅基于 DTU 的 SKU)
    • App 服务因缺少计算资源而受约束的计划
  • 安全性
    • 没有到期日期的服务主体凭据/证书
    • 引用空/未存在的子网、孤立/已删除 NIC 和孤立/已删除公共 IP 的 NSG 规则
  • 卓越运营
    • 没有后端池的基本负载均衡器
    • 服务主体凭据/证书已过期或即将过期
    • 订阅和管理组接近 Azure RBAC 分配的最大限制
    • 接近资源组的最大限制的订阅
    • 空子网和具有低可用 IP 空间的子网或过多的 IP 空间浪费
    • 孤立 NIC

除了每周生成的自定义建议外,AOE 还包括以下 Azure 工作簿,这些工作簿提供有关以下内容的深入见解:

  • Azure 承诺折扣(预留和节省计划 - 使用 Azure 优化引擎获取 Azure 预留和节省计划见解)
  • Azure 存储使用情况
  • 成本异常
  • 标识和 Azure RBAC 治理(指尖处的 Azure 标识和角色治理仪表板)
  • Azure Policy 符合性

包含的内容

AOE 包含以下资源:

  • 用于保存所有原始数据导出的存储帐户
  • 引入和处理数据的 Log Analytics 工作区,以生成建议和见解
  • Azure 自动化实例来管理数据引入和建议生成逻辑
  • Azure SQL 数据库最多保留一年的建议历史记录、引入控制数据和建议抑制记录
  • 以下 Azure 工作簿位于 Log Analytics 数据之上:
    • 优势模拟
    • 权益使用情况
    • 块 Blob 存储使用情况
    • 成本增长
    • 标识和角色
    • 策略符合性
    • 建议
    • 预留潜力
    • 预留使用
    • 资源清单
    • 节省计划使用情况
  • 包含最新建议的 Power BI 报表

部署和初始引入和建议生成自动化完成后,通常在三小时后,可以在 Azure 工作簿或 Power BI 的帮助下报告数据。


部署 AOE

安装 AOE 的最简单、最快和建议的方法是使用 Azure Cloud Shell (PowerShell)。 只需执行以下步骤:

  1. 打开 Azure Cloud Shell (PowerShell)
  2. git clone https://github.com/microsoft/finops-toolkit.git运行
  3. cd finops-toolkit/src/optimization-engine运行
  4. git checkout main运行
  5. (可选)运行 Install-Module Microsoft.Graph.Authentication,Microsoft.Graph.Identity.DirectoryManagement - 此步骤需要向自动化托管标识授予由标识和 RBAC 治理功能使用的 Microsoft Entra ID 中的全局读取者角色。
  6. ./Deploy-AzureOptimizationEngine.ps1运行
  7. 输入部署选项并让部署完成(需要不到 5 分钟)

如果部署由于某种原因而失败,可以重复它,因为它是幂等的。 如果要使用最新版本的存储库升级以前的部署,则也是如此。 只需保留相同的部署选项。 部署脚本会保留以前的部署选项,并允许重复使用它。

如果不想使用 Azure Cloud Shell,而是希望从工作站的文件系统运行部署,则必须首先安装 Azure PowerShellMicrosoft.Graph 模块。

(可选)可以使用输入参数指定要分配给 AOE 资源的 ResourceTags 标记集。 例如:

$tags = @{"Service"="aoe";"Environment"="Demo"}
.\Deploy-AzureOptimizationEngine.ps1 -ResourceTags $tags

开始使用 AOE

部署 AOE 后,可以通过多种方式开始(必须在看到数据之前至少等待三个小时):

  1. 浏览多个可用的 Azure 工作簿,从 Recommendations 一开始。 AOE 工作簿可从安装过程中选择的 Log Analytics 工作区中获取(检查 Workbooks 工作区中的窗口)。 有关详细信息,请参阅 报表
  2. 打开内置的 Power BI 报表,获取有关建议的更深入见解,并根据需要对其进行自定义。 有关详细信息,请参阅 报表
  3. 通过扩大引擎的范围或根据需要调整阈值来自定义 AOE。 可以在部署后立即执行此操作。 有关所有可用的自定义详细信息,请检查 自定义项。
  4. 对于更丰富的虚拟机大小建议,可以将计算机的性能日志添加到 AOE 的范围。 检查 配置工作区

每周都会根据环境的当前状态更新 AOE 建议。


相关的 FinOps 功能:

相关产品:

相关解决方案: