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 工作簿,这些工作簿提供有关以下内容的深入见解:
- Azure 承诺折扣(预留和节省计划 - 通过 Azure 优化引擎获取 Azure 预留和节省计划的深入见解)
- Azure 存储使用情况
- 成本异常
- 标识和 Azure RBAC 治理(随时可用的 Azure 标识和角色治理仪表板)
- Azure Policy 符合性
包含的内容
AOE 包含以下资源:
- 用于保存所有原始数据导出的存储帐户
- 引入和处理数据的 Log Analytics 工作区,以生成建议和见解
- Azure 自动化实例来管理数据引入和建议生成逻辑
- Azure SQL 数据库最多保留一年的建议历史记录、引入控制数据和建议抑制记录
- 位于 Log Analytics 数据之上的以下 Azure 工作簿:
- 福利模拟
- 权益使用情况
- 块 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
- 该步骤用于在 Microsoft Entra ID 中向自动化托管标识授予全局读取者角色,供标识和 RBAC 治理功能使用。 - 运行
./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 工具和资源。
如果您在寻找特定的东西,可以为现有想法投票或者创建新想法。 与他人分享想法,以获得更多的选票。 我们专注于拥有最多选票的想法。
相关内容
相关的 FinOps 功能:
相关产品:
相关解决方案: