如何通过可观察性提高云原生可持续性

目前,由于一些不同的原因,云计算服务增长对成本的影响现在开始影响企业的预算,帮助估计、监控和简化成本的工具数量也在增长。

像Kubernetes这样的项目已经成为许多应用程序堆栈的重要组成部分,以至于许多企业很难想象没有它不能构建的应用程序。

让人印象深刻的是,一些项目同样变得如此复杂,例如Kubernetes(添加到许多通用编程语言和其他工具中)。以至于需要添加许多其他工具和依赖项才能有效地使用它们。

在云计算资源时代,一直存在着继续将更多基于云的资源用于解决问题的诱惑,由于对成本的影响很小,企业从其所提供的灵活性中获得了很多优势。

开发人员并不想重复编写代码,所以使用框架和依赖项来希望帮助专注于真正重要的事情。

并且需要工具来处理需求、测试和构建应用程序、协调基础设施、运行连续流程等。由于这些比较抽象,失去了对技术堆栈和应用程序内部发生的事情的直接洞察。开发人员添加了越来越多的工具来帮助了解所忽略的内容。这包括可观察性,云原生计算基金会(CNCF)和其他基金会也致力于帮助明确通过依赖关系嵌套引入的安全风险,例如软件材料清单。

目前,由于一些不同的原因,云计算服务增长对成本的影响现在开始影响企业的预算,帮助估计、监控和简化成本的工具数量也在增长。Linux基金会甚至还有一个子基金会,即云成本优化基金会,旨在帮助提高围绕有效云计算使用的技术和实践的技能和意识。

隐藏的影响

但是,这种云计算服务、框架的扩散以及向其中投入其他服务开发还有另一个意想不到的副作用,就是对环境的不利影响。人们很容易忘记的是,所有代码推送、工具、构建、应用程序和流程的背后是运行这些有效负载的物理位置上的真实硬件。

那么碳排放问题有多大?获得准确的数字具有挑战性,其中涉及大量的猜想和推断,但互联网碳排放通常占到全球碳排放量的3.7%左右。

这一数字与人们更加关注的航空业大致相同,并且增长迅速。然而,“互联网”这个范围有点模糊,尤其是考虑到人们广泛使用的IT技术。如果考虑一下人们每天间接使用的基础设施和应用程序,互联网技术的全球影响可能要高得多。即使仅考虑“互联网”,目前的用户群约占全球人口的50%,而且这个数字在未来几年将大幅增长。

进一步调查云计算碳足迹项目

行业专家Adrian Cockroft就类似的主题进行了探讨。他提到云计算碳足迹项目是衡量应用程序及其运行基础设施的有用工具。

该项目需要一些配置,并通过分析统计数据并对其执行排放计算来提供对AWS、谷歌云平台和Azure托管资源的见解。该计算如下:

总体碳排放量=运营排放量+隐含排放量

  • 运营排放量=(云计算服务的使用量)x(云计算能源转换系数,kWh)x(云计算供应商,能源使用效率(PUE))x(电网排放系数,吨)
  • 隐含排放量=用于计算数据中心服务器制造过程的估计二氧化碳排放量

该项目是开源的,因此开发人员可以添加其他提供者或从其他地方输入。它主要由Thoughtworks维护,当然,作为一个复杂的应用程序,它有自己的开销和影响。但必须从某个地方开始,现在这是一个很好的起点。

首先,使用模拟数据运行,可以通过首先克隆存储库并安装依赖项来完成。

git clone --branch latest https://github.com/cloud-carbon-footprint/cloud-carbon-footprint.git

cd cloud-carbon-footprint

yarn install

yarn start-with-mock-data

(1)用户界面概述

用户界面(UI)由几个关键区域组成:

  • 提供者、帐户、服务和日期的过滤器。
  • 随着时间的推移使用碳排放量、电力和成本的摘要。
  • 与减少碳排放所需的航班、电话费和树木相比,排放量是多少?
  • 按服务、地区和账户划分的排放量。
  • 提供者的区域强度图。

(2)监控应用程序

要设置云计算碳足迹来衡量应用程序,可以人工编辑api和cli文件夹中的.env文件或运行yarn guided-install命令以使用向导进行配置。在此将谷歌云平台用于测试应用程序。

由于评估应用程序的碳足迹通常需要更长的时间,而构建足够复杂的应用程序也需要一些时间,所以选择构建简单的东西,逐渐增加其复杂性,然后通过假设应用程序将在一年的大部分时间里有大约1000个并发用户。为此采用JMeter模拟了短暂的用户负载。主要使用基于欧盟地区的服务器,该应用程序将使用谷歌云平台、Cloud SQL以及他们需要的所有其他辅助服务,其中包括表单、工件注册表和计费。这已经表明,一个简单的应用程序可以开始引入一些其他间接服务。有一个GitHub存储库,其中包含设置SQL数据库和表所需的所有代码。

  • 从一个用JavaScript编写的强制性“hello world”应用程序开始,它将“hello world”输出到控制台。
  • 然后添加了Express JS,它在访问特定端点时输出“hello world”。
  • 然后添加了一个数据库,在本例中为Cloud SQL,它从表中加载三行,并在加载端点时输出这些行。它还在URL参数中检查了正确设置的API密钥。
  • 最终添加了有意的处理复杂性,它采用大型for循环的形式。

(3)应用程序的影响

下图显示了结果,但这些值是在将它们与假设相乘之前。

应用程序的碳影响

基本的hello world应用程序的影响很小。在添加Express后,碳排放量会跃升。添加SQL时跃升得更高,而较大的for循环实际上添加得很少,这让人感到惊讶。另一个令人惊讶的事情是,之后碳排放影响没有下降到零,这可能是SQL服务在空闲时使用了资源。

在Cloud SQL方面,它是迄今为止最大的资源消耗者,约占总影响的98%。这不应该让人感到惊讶,但确实如此。该应用程序没有缓存或SQL优化,但几乎没有做任何事情。

服务行业的碳影响

然后将测量值相乘,应用程序在峰值运行时会产生以下等效影响:

  • 1架从伦敦到纽约的单程航班。
  • 可以为14万部署手机充电。
  • 种植了十年的20株幼苗以减少碳排放。

这些数字听起来并不高,但需要记住的是,这是一个简单的应用程序。将它们乘以在那里运行的大量应用程序,就会开始看到事情是如何累积起来的。

能够做些什么?

可以通过简化和思考低效的服务来提供帮助。

人们可能对可观察性感兴趣并且已经在这样做,并知道如何做到这一点,或者想学习如何做到这一点。可观察性生态系统中的许多工具也有助于了解环境影响。效率低下的服务通常是造成更大影响的根源。

可以考虑为某些服务编译代码或使用编译语言。如果还没有这样做,可以考虑更新可能包含内存泄漏或效率提升的依赖项。

考虑直接影响或间接影响的应用程序功能。帮助客户简化他们存储指标的功能减少了各种开销,同时也减少了对云计算服务的影响。

最后,定期对云资源进行审计,并考虑使用自动化工具来帮助解决这个问题。而不需要的资源除了浪费资金之外,还会对环境带来不利影响。

更广泛的思考

并非所有云计算供应商都是相同的,有些云计算供应商更擅长提供运行更加绿色环保服务的工具和选项。同样,一些数据中心所在的某些位置比其他数据中心更环保,并且具有更高的能源使用效率(PUE)。如果可以选择,需要使用碳排放影响较小的数据中心。而位置对于效率的影响也很重要。使用更靠近用户的数据中心可以减少在全球范围内传输数据的碳排放。同样,使用位置良好的CDN不仅有助于提高用户的应用程序速度,而且由于传输时间和长度更短,再次降低了影响。

令人惊喜的是,全球主要的三个云计算提供商现在都拥有可持续性工具。谷歌公司最近举办了一场关于可持续云计算的活动。

不要忘记前端

前端是许多应用程序的重要组成部分,并且希望已经成为可观察性堆栈的一部分,因为前端不仅会影响企业的成本或环境,还会影响用户的成本或环境。当最终用户在他们的机器上运行前端代码时,将前面提到的所有这些影响乘以一个难以定义的数量。这种性能影响会对环境产生额外的影响。

幸运的是,前端社区已经在考虑这个问题,并且已经有一段时间了。

向前看并且更广泛地思考

有些国家和地区可能很快就会开始强制对网站和服务进行碳排放影响的审计。审计可能会开始变得越来越普遍,就像软件材料清单一样。与许多监管案例一样,符合监管的要求通常是值得的,甚至有助于影响监管可能采取的形式。

企业可以向其供应商索取影响报告,并将报告提供给客户。它们表明企业关心超出其收入的事情,并且可以获得竞争优势。

可观察性已经提供了分析应用程序影响所需的工具,现在可以构建仪表板和其他监控功能来开始监控。

版权声明:本文为企业网D1Net编译,转载需在文章开头注明出处为:企业网D1Net,如果不注明出处,企业网D1Net将保留追究其法律责任的权利。封面图片来源于摄图网

(来源:企业网D1Net)

如果您在企业IT、网络、通信行业的某一领域工作,并希望分享观点,欢迎给企业网D1Net投稿。