(两部分系列文章的第1部分)

为了庆祝地球日,我们想谈谈应用程序可持续性的新兴概念。应用程序可持续性着眼于在应用程序开发和在生产中执行过程中消耗的整体能源效率。论文的主旨是,我们可以通过减少更高的能源开发和部署模式来帮助环境。的绿色软件基金会创建了绿色软件工程原理在2019年。它概述了诸如“构建碳效率高的应用程序”等原则。但是,真正决定应用程序是否可持续的因素是什么呢?你们中的一些人可能读过Rust编程的可持续性好处,但语言选择只是公式的一部分。

硬件和代码

在大型机时代,一台大型机器被放在一个房间的混凝土地板中央。那是当时唯一的要求,水泥地板。大型主机编码语言COBOL被大量使用。事实上,每次您在ATM上取钱时,可能仍在某个地方运行COBOL程序来实现这一点。当我们开始进行客户机-服务器部署时,机器变得越来越快,越来越小,我们设计硬件来处理代码消耗处理能力的事实。这增加了公司的电费。机架的密度也发生了很大的变化——以前一个机架可以容纳几台机器,现在可以容纳数百台——使得这些机器的冷却成为数据中心的最高成本。

如今,如果您是一个云优先或只使用云的客户,那么云提供商就是一切此外,该公司还需要证明它正在降低能源消耗(以太瓦时(TWh)为单位),这一任务并不令人羡慕。然而,数据中心TWh略有上升多年来,硬件的效率有所提高。那么,如果硬件供应商正在使硬件变得更高效(他们确实如此),为什么它没有转化为减少能源使用呢?或者,既然超规模计算已经能够保持适度的能源消耗水平(尽管计算量增长巨大),为什么我们仍然在谈论从能源消耗和可持续性角度来看令人担忧的大TWh数字?答案是我们必须看应用程序本身。

更高的抽象=更高的能源成本,但这是有代价的

那么,是什么造就了可持续的应用程序?早期的倡导者把重点放在代码上,指出像Rust和C这样的低级编程语言比Java和Java更高效比Perl、Python或Ruby高效。这对于低代码平台来说是个坏消息,因为低代码平台会带来更高的抽象级别,因为它们完全绕过专业开发人员,只迎合普通开发人员。实际情况是,通过让应用程序更接近业务用户(很好!),我们做出了一个隐式的选择,即失去对应用程序如何使用能源的控制(不太好)。但低代码或无代码的可持续性将取决于构建平台的供应商的高级编码人员:他们的库和摘要可能更低效,也可能更高效。

事实上,低代码不会消失。当技能短缺导致很难找到有经验的开发人员时,低代码开发人员可以迅速介入并开发满足业务需求的应用程序。我们不打算教公民开发人员Rust。即使我们尝试了,这样做的能源成本,以及让许多没有经验的Rust开发人员尝试编码,很可能会抵消掉语言本身的任何可持续性改进。有很多方法可以开发消耗能量的应用程序,而且不仅仅是使用抽象编程语言。有环保意识的开发人员、架构师和捍卫者还应该考虑什么?本系列的第2部分将在两天内发布。

本文是Forrester 2022年地球日系列的一部分。想要了解更多关于可持续性的见解,请查看Forrester的完整版气候行动博客。