你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 SCI 评分衡量 Azure 应用的可持续性

Azure Monitor
Azure 自动化
Azure 逻辑应用
Azure 表存储
Power BI

此示例工作负载可帮助创建基于可用代理的可持续性模型。 此模型允许对应用程序的碳排放效率进行评分。 此软件碳排放强度 (SCI) 评分为衡量应用程序碳排放量的变化提供了基准。

备注

除二氧化碳外,其他温室气体对环境也会产生各种影响。 例如,1 吨甲烷与 80 吨二氧化碳的热效应相同。 按照惯例,本文将所有物质都标准化为 CO2 当量指标。 提到碳排放时,始终是指 CO2 当量。

体系结构

该图显示了基于可用代理创建可持续性模型,对应用程序的碳排放影响进行评分。

下载此体系结构的 Visio 文件

数据流

  1. 配置用于计算 SCI 评分的应用程序数据源。
  2. 将数据保存在 Azure 存储帐户的 Azure 表存储中。
  3. 使用事件处理程序计算 SCI 评分。 事件处理程序可能包括 Azure Functions、Azure 逻辑应用和 Azure Blob 存储。 评分是每单位排放的碳量(以克为单位),其中单位指的是应用程序刻度因子,或使用代理的类似刻度因子。
  4. 使用 Azure Functions、逻辑应用和自动化 runbook 来触发对应用程序的需求调整或启动应用程序的预定义生态模式。
  5. 使用 Power BI 生成随时间变化的评分报表和可视化效果。

组件

  • Azure 的排放影响仪表板有助于衡量基于云的排放和碳减排潜力。 它可跟踪与云使用相关的直接和间接温室气体排放。
  • Application InsightsAzure Monitor 的一个扩展,提供应用程序性能监视 (APM)。 Application Insights 有助于了解用户如何使用你的应用程序。 使用这些知识来提高应用程序效率。
  • Azure 表存储是存储非关系结构化数据(也称为结构化 NoSQL 数据)的服务。 它提供采用无架构设计的键/属性存储。 对于许多类型的应用程序,访问表存储数据快速且经济高效。 数据量相似时,表存储的成本通常低于传统的 SQL。
  • Azure 逻辑应用是一个平台,在该平台中创建和运行自动化工作流可以几乎不使用代码。 通过使用可视化设计器并从预生成的操作中进行选择,生成集成和管理代理源、数据存储和效率计算系统的工作流。
  • Azure Functions 是一种无服务器解决方案,可以使用户减少代码编写、减少需要维护的基础结构并节省成本。 云基础结构提供保持应用程序运行所需的所有最新资源。
  • Power BI 可以将数据转化为提供实时见解的分析和报表。 无论数据是基于云的还是本地的,Azure 和 Power BI 都提供集成和连接性来实现可视化效果和分析。

备选方法

可以将本文档中使用的 Azure 服务替换为类似服务。 若要以对基础结构影响最小的方式进行计算并提高现有资源的密度和使用率,请使用环境中部署的 Azure 服务或工具:

  • 请勿使用 Power BI 仪表板,而是使用 Azure Monitor 工作簿Azure 托管 Grafana 服务。
  • 对于 Application Insights,将其替换为其他 APM 工具,例如 Elasticsearch 或 Open APM。
  • 可以使用其他记录系统来保存数据表,例如 MySQLMariaDB
  • 如果正在运行 Azure Functions 或逻辑应用应用程序,请考虑从现有部署定期启动计算。
  • 如果应用程序资源分布在多个资源组中,请使用标记关联成本数据并计算应用程序排放的碳量。

方案详细信息

这些部分描述了计算测量碳排放变化的基准所需的详细信息。

数据源

尝试生成一个变量很少的代理方程。 选择代表应用程序行为和性能的代理指标。 本示例使用以下指标:

  • 来自 Azure 的排放影响仪表板的基础结构的碳排放
  • Microsoft 成本管理中的基础结构成本,按资源组以每日费用或每月费用计
  • Application Insights 中的应用程序的性能和缩放指标:
    • 连接到应用程序的用户、API 调用或服务器请求的数量
    • CPU 使用率
    • 内存使用率
    • 发送或接收的响应时间

有关如何为指标设置 Application Insights 的教程,请参阅适用于 ASP.NET Core 应用程序的 Application Insights SDK

可以在方程中添加更多变量,例如:

  • 基础结构和边缘服务碳排放
  • 用户连接时间,因为电力生产量和电力需求量会随时间变化
  • 应用程序的任何其他特定指标,这些指标可以说明应用程序的性能如何随时间变化

如果将还可反映用户数的此方程生成到评分中,则此评分最接近碳排放评分。 此值是应用程序可持续性变化和优化的基准。

应用程序性能的另一个考虑因素是成本。 大多数情况下,性能效率与成本和碳减排直接相关。

说明 结论
性能更高,但成本相同 应用程序已优化且降低了碳排放
成本更低,但性能相同 应用程序已优化且降低了碳排放
性能和成本都更高 应用程序未优化且增高了碳排放
成本更高,但性能降低或相同 应用程序未优化且增高了碳排放,或者能源成本更高,导致碳排放增高

对于每个应用程序来说,应用程序 SCI 评分、成本和性能之间的关联都是独一无二的。 它取决于许多因素。 通过收集这三个变量的数据,你可以创建一个算法来预测它们的变化。 SCI 可以帮助你在应用程序体系结构和模式方面做出明智决策。

计算

在此方案中,首先处理从排放影响仪表板中收集的数据。 SCI 基线计算如下:

SCI = C * R

组件如下:

  • SCI. 软件碳排放强度结果。

  • C. 应用程序的碳排放。

    此值取决于应用程序在 Azure 中的部署方式。 例如,如果所有应用程序资源都在一个资源组中,则此资源组的碳排放将是 C 变量。

    备注

    此方案不考虑取决于体系结构和边缘或用户行为的其他应用程序排放源。 这些考虑因素是使用碳排放代理时的下一步。

  • R. 应用程序的刻度因子。

    此值可以是平均并发用户数,如果是所考虑的时间窗口,也可以是 API 请求数或 Web 请求数。 借助刻度因子,评分可以说明应用程序的整体使用效果,而不仅仅是只说明应用程序的部署内存占用情况。

时间窗口是该计算的另一个重要部分。 碳排放因耗能设备或系统而异,因为能源网有时可能有可再生能源或替代能源,有时没有。 例如,太阳能是可变的。 为了尽可能精确,请选择尽可能短的时间范围,例如每天或每小时计算。

排放影响仪表板根据订阅中的服务提供每月碳排放信息。 若要获取单个资源组的该数字,请使用以下方程:

Carbon (res-group) = (Carbon(subscription) * Cost(res-group)) / Cost(subscription)

存储资源组的每月碳排放信息和其余数据,如下一部分所述。

数据存储

存储上一部分中收集的碳排放和碳排放代理信息。 将信息导出到仪表板或报表,以按时间将碳排放评分可视化并做出明智的选择。 考虑到可持续性,以及为了遵循架构良好的框架的最佳做法,请使用最小可行的记录系统,例如 Azure 表存储

描述所收集数据的表使用如下数据:

报表数据:

  • Date
  • 资源组名称
  • 仪表板 C 的碳排放
  • 成本

APM 数据:

  • CPU
  • 内存
  • 响应时间比(发送/接收)刻度因子 R

计算:SCI

有关详细信息,请参阅:

数据关联

使用应用程序碳排放、性能和成本的数据可以生成特定于应用程序的关联算法。 该信息提供了有关成本、性能和碳排放优化规划的指导。

备注

具有折扣成本的方程式(例如 Azure 预留或成本节省计划)会在关联算法中产生差异。

有关算法选择的详细信息,请参阅如何为 Azure 机器学习选择算法

数据显示

可以通过多种方式显示数据和计算,例如通过自定义的 Azure Monitor 工作簿或简单的 Power BI 仪表板。 有关详细信息,请参阅使用 Application Insights 创建自定义 KPI 仪表板从报表创建 Power BI 仪表板

SCI 评分操作触发器

使用代理对应用程序的碳排放效应进行评分后,下一步是定义碳排放评分中的不利条件应触发哪些操作。 不利条件示例如下:

  • 能源生产量和能源需求量大,能源生产成本高
  • 因自然灾害或地缘政治冲突,电力供应中断
  • 因资源消耗过度或供应链问题,边缘基础结构不可用

确定可能影响应用程序的故障点后,决定采取哪些措施来使应用程序能够在碳达峰后降低碳排放。

考虑生成应用程序的生态模式版本。 生态模式版本是完整应用程序的更简单、更小、更便宜、更环保的版本。 如果碳排放达到峰值,应用程序将恢复为这些最低程度的功能。

请考虑帮助最终用户选择生态模式版本。 提供一个绿色按钮,用户选择该按钮即表明他们可以接受更精简的界面、更少的图形和有限的功能,以换取减少碳排放。 让用户参与其中即可在推动技术变革的同时推动文化变革:

  • 指定此选择的效果:通过使用绿色版本,你将节省 <X> 个碳排放量或使碳排放评分达到 <Y>。
  • 了解用户行为,并修改生态模式版本来反映用户的选择。 例如,如果某用户只使用 10% 的应用程序功能,则他可能是绿色版本的理想用户。
  • 理想情况下,完整版本会不断针对排放进行优化,从而各个版本最终趋同。

注意事项

这些注意事项实施 Azure 架构良好的框架的支柱原则,即一套可用于改善工作负载质量的指导原则。 有关详细信息,请参阅 Microsoft Azure 架构良好的框架

安全性

安全性针对蓄意攻击及滥用宝贵数据和系统提供保障措施。 有关详细信息,请参阅安全性支柱概述

为了提高安全性,可以使用 Azure 虚拟网络服务终结点来保护 Azure 服务资源:只允许在你的虚拟网络中访问这些资源。 此方法阻止通过公共 Internet 访问这些资源,只允许来自你的虚拟网络的流量。

如果使用此方法,可以在 Azure 中创建虚拟网络,并为 Azure 服务创建专用服务终结点。 然后,将这些服务限制为来自该虚拟网络的流量。 也可以通过网关从本地网络访问这些服务。

备注

若要将数据从本地移入 Azure 存储,需要允许本地计算机的公共 IP 或使用 Azure ExpressRoute。 有关详细信息,请参阅将专用 Azure 服务部署到虚拟网络

有关设计安全解决方案的一般性指导,请参阅 Azure 安全性文档

成本优化

成本优化是关于寻找减少不必要的费用和提高运营效率的方法。 有关详细信息,请参阅成本优化支柱概述

排放影响仪表板和 Azure 成本管理报表是免费的。 此示例故意使用了最低程度的功能,以节省成本和降低碳排放。 可以使用多种替代 Azure 服务来部署此体系结构。

使用应用程序部署中已有的任意等效服务。 以下资源提供了组件定价信息:

性能效率

性能效率是指工作负载能够以高效的方式扩展以满足用户对它的需求。 有关详细信息,请参阅性能效率要素概述

此体系结构主要用于为应用程序提供可持续性评分,同时使对成本和碳排放本身产生的影响最小。 大多数组件都是平台即服务 (PaaS) 和无服务器 Azure 服务,可根据使用情况和流量独立缩放。

此示例中的仪表板和存储界面不适用于高强度使用和查询。 如果计划向许多用户提供此解决方案,请考虑以下替代方案:

  • 转换提取的数据并存储在不同的记录系统中,以将其解耦
  • 将 Azure 表存储切换为更具可缩放性的数据结构替代方案,例如 Azure Cosmos DB

作者

本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。

主要作者:

其他参与者:

若要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。

后续步骤

此工作符合绿色软件基金会的原则和方法。

生成更绿色的应用程序的下一步是将碳排放感知 SDK 嵌入应用程序。 满足特定的碳排放条件后,可实时自动触发。 有关详细信息,请参阅绿色软件基金会碳排放感知 SDK

有关架构良好的框架中的可持续性云工作负载指南,请参阅可持续性工作负载文档

有关可持续性的详细信息,请参阅以下文章: