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 顾问的虚拟机大小建议,其中包含更多指标和属性。 可以在博客系列中阅读专门围绕这个理念的内容,题目为 扩充 Azure 顾问成本建议以实现自动化持续优化——第 1 部分。 它演变为一个通用框架,用于由社区开发的各种受Well-Architected Framework启发的优化。 除了 Azure 顾问生成的建议外,AOE 还包括一些自定义建议,主要来自成本支柱,并允许快速开发新建议。 AOE 为 Azure 顾问和其他第一方 Azure 服务补充了更多优化见解,并允许完全自定义。


好处

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

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

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


包含的内容

AOE 包含以下资源:

  • 用于保存所有原始数据导出的存储帐户
  • 引入和处理数据的 Log Analytics 工作区,以生成建议和见解
  • Azure 自动化实例来管理数据引入和建议生成逻辑
  • Azure SQL 数据库最多保留一年的建议历史记录、引入控制数据和建议抑制记录
  • 位于 Log Analytics 数据之上的以下 Azure 工作簿:
    • 福利模拟
    • 权益使用情况
    • 块 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 - 该步骤用于在 Microsoft Entra ID 中向自动化托管标识授予全局读取者角色,供标识和 RBAC 治理功能使用。
  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 工具和资源。

如果您在寻找特定的东西,可以为现有想法投票或者创建新想法。 与他人分享想法,以获得更多的选票。 我们专注于拥有最多选票的想法。


相关的 FinOps 功能:

相关产品:

相关解决方案: