技术深度解析
`yelghali/azure-sci-framework`基于绿色软件基金会的SCI规范(ISO/IEC 21031:2024)构建,该规范将指标定义为:
SCI = (E × I) + M
其中:
- E = 软件系统消耗的能量(kWh)
- I = 电网基于位置的边际碳强度(gCO2eq/kWh)
- M = 硬件的隐含碳排放(gCO2eq)
该框架的架构由三个主要层组成:
1. 数据采集层:使用Azure Python SDK(`azure-mgmt-compute`、`azure-mgmt-monitor`、`azure-identity`)进行身份验证并拉取资源元数据和指标。它查询Azure Monitor以获取`Percentage CPU`、`Network In/Out`和`Disk Read/Write`指标,然后应用功耗模型估算能耗。默认功耗模型基于常见Azure VM系列(如D系列、E系列)的SPECpower基准数据,但用户可以覆盖为自定义系数。
2. SCI计算引擎:实现IEF的`Input`、`Output`和`Plugin`抽象。核心逻辑位于`sci_calculator.py`中,该文件处理时间序列能量数据,乘以电网碳强度(从WattTime或Electricity Maps API获取),并根据硬件寿命假设添加隐含碳排放。该框架支持实时和批量计算。
3. 报告层:以JSON或CSV格式输出SCI评分,并可选择集成到Azure Log Analytics中用于仪表板展示。它还包含一个用于本地测试的简单CLI工具。
关键工程决策:
- 功耗建模:该框架使用线性回归模型将CPU利用率映射到功耗,这是一种简化方法,会引入误差(根据类似工具估计为±15-20%)。原始IEF(TypeScript版)使用更复杂的模型,考虑了内存和I/O贡献。
- 隐含碳排放:默认服务器寿命为4年,并使用`teads/CO2.js`库的隐含碳因子,该因子基于服务器制造商数据。这是一个已知的薄弱点——隐含碳估算值因硬件代际和制造地点而异。
- 电网碳强度:集成WattTime的免费层,该层提供美国大部分地区的边际碳强度数据。对于全球部署,用户必须提供自己的Electricity Maps API密钥。
基准数据:
| 指标 | Azure SCI框架(Python) | IEF(TypeScript) | Cloud Carbon Footprint(Python) |
|---|---|---|---|
| 语言 | Python 3.9+ | TypeScript/Node.js | Python 3.8+ |
| Azure支持 | 原生(通过Azure SDK) | 通用(需自定义插件) | 原生(支持AWS、GCP、Azure) |
| 能耗模型 | 基于CPU的线性回归 | 多资源(CPU、RAM、磁盘、网络) | CPU + 内存 + 存储 |
| 隐含碳排放 | 固定4年寿命 | 可配置寿命 | 可配置,含制造商数据 |
| 电网数据源 | WattTime(美国)、Electricity Maps(全球) | WattTime、Electricity Maps、EIA | WattTime、Electricity Maps |
| API粒度 | 1分钟至1小时 | 1分钟至1小时 | 5分钟至1小时 |
| 开源许可证 | MIT | Apache 2.0 | Apache 2.0 |
| GitHub星标 | ~3 | ~200 | ~1,500 |
数据要点:Azure SCI框架是唯一具有专用Azure API集成的Python原生工具,但其能耗模型不如IEF的TypeScript版本准确,且缺乏Cloud Carbon Footprint的多云支持。对于仅使用Azure的企业而言,准确性的权衡可能因部署简便性而可接受。
关键参与者与案例研究
该领域的主要利益相关者包括:
- 绿色软件基金会(GSF):由Linux基金会、Microsoft、Accenture和GitHub联合发起。GSF的Impact Engine框架是SCI计算的事实标准。该Python实现虽未获GSF官方认可,但严格遵循其规范。
- Microsoft Azure:作为云提供商,Azure受益于使其平台看起来更可持续的工具。Microsoft拥有自己的Sustainability Calculator(闭源,基于Power BI),但此开源框架为开发者提供了更多灵活性。
- WattTime和Electricity Maps:这些是电网碳强度的主要数据提供商。WattTime是一家非营利组织,提供美国实时边际排放数据,而Electricity Maps覆盖全球电网。两者均提供带有速率限制的免费层。
- Cloud Carbon Footprint(CCF):领先的开源替代方案,由Thoughtworks维护。CCF支持AWS、GCP和Azure,但其Azure集成不够成熟——它依赖Azure Consumption API而非直接资源监控,导致数据粒度较低。
案例研究:一家金融科技公司的绿色仪表板
一家中型金融科技公司在Azure上运行200台虚拟机,希望跟踪SCI以用于ESG报告。他们尝试了Cloud Carbon Footprint,但发现其Azure数据