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)。 只需执行以下步骤:
- 打开 Azure Cloud Shell (PowerShell)
git clone https://github.com/microsoft/finops-toolkit.git
运行cd finops-toolkit/src/optimization-engine
运行git checkout main
运行- (可选)运行
Install-Module Microsoft.Graph.Authentication,Microsoft.Graph.Identity.DirectoryManagement
- 此步骤需要向自动化托管标识授予由标识和 RBAC 治理功能使用的 Microsoft Entra ID 中的全局读取者角色。 ./Deploy-AzureOptimizationEngine.ps1
运行- 输入部署选项并让部署完成(需要不到 5 分钟)
如果部署由于某种原因而失败,可以重复它,因为它是幂等的。 如果要使用最新版本的存储库升级以前的部署,则也是如此。 只需保留相同的部署选项。 部署脚本会保留以前的部署选项,并允许重复使用它。
如果不想使用 Azure Cloud Shell,而是希望从工作站的文件系统运行部署,则必须首先安装 Azure PowerShell 和 Microsoft.Graph 模块。
(可选)可以使用输入参数指定要分配给 AOE 资源的 ResourceTags
标记集。 例如:
$tags = @{"Service"="aoe";"Environment"="Demo"}
.\Deploy-AzureOptimizationEngine.ps1 -ResourceTags $tags
开始使用 AOE
部署 AOE 后,可以通过多种方式开始(必须在看到数据之前至少等待三个小时):
- 浏览多个可用的 Azure 工作簿,从
Recommendations
一开始。 AOE 工作簿可从安装过程中选择的 Log Analytics 工作区中获取(检查Workbooks
工作区中的窗口)。 有关详细信息,请参阅 报表。 - 打开内置的 Power BI 报表,获取有关建议的更深入见解,并根据需要对其进行自定义。 有关详细信息,请参阅 报表。
- 通过扩大引擎的范围或根据需要调整阈值来自定义 AOE。 可以在部署后立即执行此操作。 有关所有可用的自定义详细信息,请检查 自定义项。
- 对于更丰富的虚拟机大小建议,可以将计算机的性能日志添加到 AOE 的范围。 检查 配置工作区。
每周都会根据环境的当前状态更新 AOE 建议。
相关内容
相关的 FinOps 功能:
相关产品:
相关解决方案: