Azure SCI框架:专为云工作负载碳强度测量打造的开源Python工具

GitHub June 2026
⭐ 3
来源:GitHub归档:June 2026
一款名为azure-sci-framework的全新开源Python工具,将绿色软件基金会(GSF)的Impact Engine框架引入Azure平台,使开发者能够自动计算云工作负载的碳强度。此举填补了Python生态系统中针对Azure可持续性测量的显著空白。

开源项目`yelghali/azure-sci-framework`是绿色软件基金会(GSF)Impact Engine框架(IEF)的Python实现,专为Microsoft Azure量身定制。IEF提供了一套标准化方法论,用于计算应用程序的软件碳强度(SCI),该指标综合考虑了能耗、硬件隐含碳排放以及基于位置的电网碳强度。该框架直接集成Azure资源管理器和Azure Monitor API,自动获取虚拟机、存储账户及其他服务的能耗数据,然后应用IEF模型计算实时SCI评分。其重要意义在于,原始IEF主要是一个TypeScript/Node.js项目,而Python开发者——他们在云原生和AI/ML领域占据主导地位——此前缺乏一个原生、开源的Azure碳测量工具。该框架通过提供Python原生的Azure集成,解决了这一痛点,使开发者无需依赖TypeScript工具或手动数据收集即可将可持续性指标嵌入CI/CD流水线。

技术深度解析

`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数据

更多来自 GitHub

学习Bevy:用《吸血鬼幸存者》克隆项目教你用Rust做游戏开发learning-bevy仓库(gnmoseke/learning-bevy)是一个完全基于Bevy引擎构建的《吸血鬼幸存者》风格游戏完整实现。它复刻了核心玩法机制:自动攻击、敌人波次、升级系统与技能树。该项目明确设计为Bevy的学习资源,Axum-Params:受Rails启发的Rust库,重塑Web参数处理范式Rust生态系统长期以来缺乏针对Web框架的成熟参数处理方案。尽管Actix-web和Axum等框架提供了基础提取能力,但开发者仍需手动合并来自多个来源(查询字符串、表单数据、JSON体)的参数,并单独处理文件上传。cpunion/axumnasa42/libs.rs 的兴衰:Rust 库索引教会了我们什么Rust 生态系统长期面临 crate 可发现性难题。nasa42/libs.rs 曾是一个雄心勃勃的尝试:通过精心策划和分类的 Rust 库索引,提供远超默认 crates.io 界面的搜索和筛选功能。该项目由单人维护者发起,迅速吸引了那查看来源专题页GitHub 已收录 3144 篇文章

时间归档

June 20262920 篇已发布文章

延伸阅读

学习Bevy:用《吸血鬼幸存者》克隆项目教你用Rust做游戏开发一个名为learning-bevy的开源项目,利用Rust语言的Bevy引擎完整复刻了热门游戏《吸血鬼幸存者》。它作为一份实战教程,生动展示了Bevy的实体组件系统(ECS)与2D渲染能力,为探索Rust游戏开发的开发者提供了清晰且实用的入Axum-Params:受Rails启发的Rust库,重塑Web参数处理范式全新开源库axum-params将Ruby on Rails优雅的参数处理机制引入Rust Axum Web框架,统一查询字符串、表单数据、JSON负载与文件上传为单一树状接口,有望大幅简化Rust开发者的复杂请求处理流程。nasa42/libs.rs 的兴衰:Rust 库索引教会了我们什么曾经是 Rust 开发者首选库索引的 nasa42/libs.rs 已正式退役,由社区维护的 awesome-rust 接棒。这一转变不仅标志着 Rust 开发者发现和评估第三方 crate 方式的重大转折,更揭示了开源治理与工具整合的深层Homer Dashboard:一个11K星静态首页如何成为基础设施必备品Homer,一个拥有超过11,000个GitHub星标的极简静态首页生成器,正重新定义开发者组织内部服务链接的方式。通过消除所有后端依赖,仅依靠一个YAML配置文件,它为个人和团队导航页面提供了零摩擦的解决方案。

常见问题

GitHub 热点“Azure SCI Framework: Python Tool for Green Software Carbon Measurement”主要讲了什么?

The open-source project yelghali/azure-sci-framework is a Python implementation of the Green Software Foundation's (GSF) Impact Engine Framework (IEF), specifically tailored for Mi…

这个 GitHub 项目在“how to calculate software carbon intensity for Azure VMs using Python”上为什么会引发关注?

The yelghali/azure-sci-framework is built around the Green Software Foundation's SCI specification (ISO/IEC 21031:2024), which defines the metric as: SCI = (E * I) + M Where: E = Energy consumed by the software system (k…

从“Azure SCI framework vs Cloud Carbon Footprint comparison”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 3,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。