绿色软件开发 - 你现在能做些什么,行业的未来方向在哪里?

代码效率与碳足迹的关系

提高代码效率通常能够减少碳排放。存储更少的信息并进行压缩也可以降低碳足迹。开源项目、标准和指南可用于提高软件开发的可持续性。需要测量标准化来比较云供应商的环境影响。

Adrian Cockcroft的观点

Adrian Cockcroft在QCon旧金山2022会议上讨论了开发和运维中的可持续性,并将在QCon伦敦2023会议上探讨可持续性测量的未来。他指出,通过提高代码效率来节省成本通常也能减少碳排放。如果运行代码的成本不高,那么从可持续性角度考虑,可能不值得过多关注。

开发者的具体建议

  1. 减少工作量:通过深思熟虑的业务需求和使用更好的算法来减少工作量。
  2. 使用高效语言:如Rust来实现计算密集型代码。
  3. 选择优化库:如simdjson.org用于JSON处理,Z-STD用于压缩。
  4. 存储优化:存储更少的信息并进行压缩,设置存储生命周期优化,如S3智能分层或归档到磁带(碳足迹最低)。
  5. 前端优化:最小化网页中的图像和代码大小,调优移动应用以减少功耗。

开源项目

  • KEPLER:Kubernetes高效功率级别导出器。
  • Quarkus:高效的Java框架,相比传统Java堆栈显著节省资源。
  • CLEVER:容器级能效VPA推荐器,使用KEPLER作为输入。
  • PEAKS:能效感知的Kubernetes调度器。

可持续软件开发的建议

  • 估算碳节约:在进行显著优化项目时,估算并报告碳节约。
  • 地理位置的影响:碳排放因地理位置而异,特别是在亚洲,可再生能源的建设和使用较为困难。
  • 基础设施的碳排放:硅的制造、计算机的组装和数据中心的建设在全球范围内大致相同,现在主导了IT的碳足迹。

获取指南和信息

  • AWS Well Architected Pillar for SustainabilityAzure Well Architected Guide 提供云优化支持。
  • 绿色软件基金会(GSF) 提供数据中心、前端和桌面优化的想法,包括Carbon Aware SDK。
  • 软件碳强度(SCI)标准:用于以一致的方式报告每个用户或每笔交易的碳排放。
  • 云碳足迹工具:使用云计费数据作为输入,估算能源使用(范围2)和供应链(范围3)的碳足迹。

可持续性的未来

  • 绿色能源:未来几年,所有主要云供应商预计通过电力购买协议实现全球范围内100%绿色能源。
  • 测量标准化:理想的终点是所有云供应商支持的高分辨率碳仪表的通用方法、API和模式。目前,每个云提供商的仪表完全不同,不足以供工具供应商构建。

总结

通过提高代码效率、优化存储和使用高效语言和库,开发者可以显著减少碳排放。开源项目和标准化工具为可持续软件开发提供了支持。未来,绿色能源和测量标准化将成为可持续性成熟的关键领域。

阅读 37
0 条评论