(由两部分组成的系列文章的第2部分)

呼吁开发者拯救地球!

两天前,我们介绍了应用程序可持续性的概念,并指出,虽然不那么抽象的语言可能有更低的能源成本,但在可持续开发和部署方面还有其他考虑因素。无论您的团队是开始一个可持续的开发计划,还是您想要批判性地分析声称应用程序可持续性的供应商,每个人都必须超越语言的思考。当组织考虑其应用程序的环境影响时,以下是需要考虑的因素:

  • 编程语言.正如我们已经讨论过的,低级语言本身的效率更高,但是在计算编程语言的效率时,请确保包括来自编译器、链接器和字节码生成器的能量消耗。
  • 解决问题和算法.我们很难找到一个优化的解决方案,并通过低效的算法进行编码:我可以用1 + 1得到2,或者我可以先加4,然后减去7,再加3……也得到2。它需要计算机科学的经验来思考优化的解决方案和编写有效的编码高效的算法。请记住,如今拥有低级别语言专业知识的开发人员越来越少,所以坚持使用低级别语言将限制您的经验丰富的开发人员池。因此,你可能会遇到一些缺乏经验的开发者以其他方式引爆能源消耗。
  • 测试效率.测试是应用程序开发过程的核心。如果测试是低效的或设计糟糕的,这些也会增加能源消耗,特别是当我们构建更多的自动化测试时,因为敏捷和DevOps鼓励无情的自动化。通过利用AI和ML来决定何时自动化测试或何时执行自动化测试,从无情的自动化转向智能自动化,这可能是一个非常省力的方法。
  • 应用程序设计.在编码的基础上,糟糕的设计也可能导致更高的能耗。错误的设计可能意味着要执行更多的代码:通过网络和远程机器持续调用共享服务的UI,如果它被托管,将消耗更少的能量。确保您的开发人员拥有良好的系统设计技能,但也要考虑产品架构师的设计能力,他们也需要考虑可持续性。
  • 应用程序部署.在生产环境中部署的任何内容都会占用空间,并且可能需要负载平衡例程或虚拟化来交换二进制文件。但部署应用程序的过程也可能会有高能耗管道。DevOps工程师在为代码交付提供优化和有效的管道方面发挥着关键作用。
  • 应用程序保护.一旦部署,组织必须通过基础设施和安全工具(比如web应用程序防火墙、机器人管理、运行时安全工具和可观察性工具)的组合来监控应用程序性能并保护应用程序免受攻击。所有这些都与应用程序有关,并消耗能量,所以把它们加到总数中。对于保护多个应用程序的工具,在受保护的应用程序之间划分能源消耗。
  • 数据使用.应用程序产生并使用大量数据。处理和存储这些数据会变得昂贵和低效。与数据存储预计占到2040年占全球碳排放的14%,是时候看看应用程序数据并询问了我们是否真的需要这些.也许应用程序完全忽略了一些收集的数据,或者我们可以减少一些保留周期。额外好处:摆脱不必要的数据可能也有助于公司更好地讲述隐私故事。

要警惕任何将语言选择作为其可持续发展承诺唯一指标的组织,并询问他们如何处理其他因素。另外,询问测量方法:应用程序中每个新用户的边际能源成本是多少?目前,我们很难找到衡量标准,但随着应用可持续性运动的兴起,请处于前沿的组织分享他们的可持续性指标和公式。想要更多地讨论应用程序可持续性吗?安排调查和我们在一起。

这篇博客是福雷斯特公司2022年地球日系列的一部分。要了解更多Forrester对可持续发展的见解,请参阅全套Forrester气候行动博客。