可持续软件工程 - 原则 7:需求调整
需求转移 是一种将计算操作转移到碳强度较低的地区或时间的策略,换种说法就是,可再生电力供应较多的地区或时间。
需求调整也是一种类似的策略,但我们不是将需求转移到不同的地区或时间,而是将需求调整为与现有的供应相匹配。
如果可再生能源的供应量较高,则增加需求 - 在应用程序中执行更多的操作;如果供应量较低,则减少需求 - 在应用程序中执行更少的操作。
- 视频会议软件就是其中一个很好的例子。 它们不是在任何时候都以尽可能高的质量进行流式传输,而是经常以降低视频质量、优先考虑音频的方式来调整需求。
- 另一个例子是 TCP/IP。 传输速度会随着网络上广播的数据量的增加而上升。
- 第三个例子是网络的渐进式增强。 网络体验的改善取决于最终用户设备上可用的资源和带宽。
碳感知与碳效率
对最终用户而言,碳效率可能是透明的。 你可以在各个层面更高效地将碳转化为有用的功能,同时保持用户体验不变。
但在某些时候,透明地提高碳效率是不够的。 如果现在运行某个应用程序的碳成本太高,我们可以改变用户体验,进一步减少碳排放。 如果用户意识到应用程序的运行方式发生了变化,它就变成了一个碳感知型应用程序。
对碳感知型应用程序进行需求调整就是为了匹配碳供应。 当运行应用程序的碳成本变得很高时,应调整需求以匹配碳供应。 这可以自动发生,也可以由用户选择。
环保模式
环保模式在生活中随处可见:例如,汽车或洗衣机。 开启后,其性能会发生变化,因为它们在执行相同任务时消耗的资源(汽油/电)更少。 这是有代价的(否则,我们会一直选择环保模式),所以我们要进行权衡。 因为要进行权衡,所以环保模式几乎都是以可选的方式呈现给用户,由用户决定是否使用该模式并接受妥协。
软件应用程序也可以有环保模式,选择该模式时,它可能以两种方式改变应用程序的行为:
- 智能 。向用户提供信息,使他们能够做出明智的决定。
- 自动 。应用程序自动做出更积极的决定,以减少碳排放。
总结
需求调整与可持续发展中一个更广泛的概念有关,那就是减少消耗。 我们可以通过提高资源使用效率来实现很多目标,但在某些时候,我们还需要减少消耗。 作为可持续软件工程师,实现碳效率可能意味着当碳强度很高时,我们不需要对计算进行需求转移,而是考虑取消计算, 降低应用程序的需求和最终用户的期望。