原则 7:需求调整

需求转移 是一种将计算操作转移到碳强度较低的地区或时间的策略,换种说法就是,可再生电力供应较多的地区或时间。

需求调整也是一种类似的策略,但我们不是将需求转移到不同的地区或时间,而是将需求调整为与现有的供应相匹配。

https://docs.microsoft.com/zh-cn/learn/modules/sustainable-software-engineering-overview/media/9-demand-shaping-1.svg

如果可再生能源的供应量较高,则增加需求 - 在应用程序中执行更多的操作;如果供应量较低,则减少需求 - 在应用程序中执行更少的操作。

  • 视频会议软件就是其中一个很好的例子。 它们不是在任何时候都以尽可能高的质量进行流式传输,而是经常以降低视频质量、优先考虑音频的方式来调整需求。

  • 另一个例子是 TCP/IP。 传输速度会随着网络上广播的数据量的增加而上升。

  • 第三个例子是网络的渐进式增强。 网络体验的改善取决于最终用户设备上可用的资源和带宽。

碳感知与碳效率

对最终用户而言,碳效率可能是透明的。 你可以在各个层面更高效地将碳转化为有用的功能,同时保持用户体验不变。

但在某些时候,透明地提高碳效率是不够的。 如果现在运行某个应用程序的碳成本太高,我们可以改变用户体验,进一步减少碳排放。 如果用户意识到应用程序的运行方式发生了变化,它就变成了一个碳感知型应用程序。

对碳感知型应用程序进行需求调整就是为了匹配碳供应。 当运行应用程序的碳成本变得很高时,应调整需求以匹配碳供应。 这可以自动发生,也可以由用户选择。

环保模式

环保模式在生活中随处可见:例如,汽车或洗衣机。 开启后,其性能会发生变化,因为它们在执行相同任务时消耗的资源(汽油/电)更少。 这是有代价的(否则,我们会一直选择环保模式),所以我们要进行权衡。 因为要进行权衡,所以环保模式几乎都是以可选的方式呈现给用户,由用户决定是否使用该模式并接受妥协。

软件应用程序也可以有环保模式,选择该模式时,它可能以两种方式改变应用程序的行为:

  • 智能 。 向用户提供信息,使他们能够做出明智的决定。

  • 自动 。 应用程序自动做出更积极的决定,以减少碳排放。

总结

需求调整与可持续发展中一个更广泛的概念有关,那就是减少消耗。 我们可以通过提高资源使用效率来实现很多目标,但在某些时候,我们还需要减少消耗。 作为可持续软件工程师,实现碳效率可能意味着当碳强度很高时,我们不需要对计算进行需求转移,而是考虑取消计算, 降低应用程序的需求和最终用户的期望。