草庐IT

超越云的可持续计算

涂承烨 2023-03-28 原文

​译者 | 涂承烨

根据工信部在 “2022中国算力大会”上披露,截至7月底,全国在用超大型、大型数据中心共计497个。

与此同时,数据中心的耗电量日益成为了不可忽视的问题。除供电外,大型或超大型数据中心的散热占去了大多数能耗。

参考中国信息通信研究院泰尔系统实验室联合IBM 1月5日发布的《可持续计算蓝皮报告(2022年)》,温控、供电两项的能耗之和超过整体的50%,温控系统为41%,供电系统为10%,IT设备本身为46%。

“可持续计算” 、“绿色数据中心”一类概念应需而生。

十年前,数据的云存储被视为环保救星。但是,数据流的急剧增长正在扩大云的碳足迹,因此,寻找更节能的计算方式似乎比以往任何时候都更加迫切。

去年,世界上大多数领导人齐聚COP26(第26届联合国气候变化大会),作出了新的环境承诺。其目标是将全球气温上升控制在1.5°C以下,企业面临的压力越来越大,需要它们挺身而出,发挥自己的作用。

25年前,当我们进入互联网时代时,大多数人只看到了环境效益,互联网和电子邮件如何减少纸张等大量物质资源。十年后,云存储似乎成为IT世界新的生态救世主。与现场服务器相比,它减少了公司的能源消耗,减少了温室气体排放,并促进了非物质化。但很快,我们意识到,计算机、智能手机和存储云数据的巨大数据中心的制造、供电和冷却所产生的碳排放甚至抵消了这些好处。

今天,信息和通信技术(ICT)对碳排放做出了重大贡献。ICT主要由数据中心和云计算组成,占全球电力消耗的4-6%。

1、云:盈利的同时也是在浪费

当组织检查其IT运营的环境影响并寻找降低碳足迹的方法时,他们仍然经常将数据移动到云,从而减少数字应用程序和基础设施的排放。但现实是,你只是沿着供应链转移碳足迹,而不是完全消除碳足迹时,这会对环境产生多大影响?

让我们举一个简单的例子。假设你正在保存标准业务文档。如果你将其保存到硬盘,则需要每千兆字节0.000005千瓦时才能保存数据。另一方面,如果你将其保存在云上,卡内基梅隆大学的一项研究得出结论,数据传输和存储的能源成本约为每千兆字节7千瓦时。这是因为云数据不是存储在实际的云中,而是存储在建筑物中—巨大的结构中充满了数千个硬盘驱动器承载架,使用了巨大的能量。全世界有数百万个数据中心,其中一些占据了近200英亩的土地。

将数据传输到数据中心需要耗费大量的能量——数英里长的光纤电缆,以及其他互联网基础设施的固定装置,这些都需要电力。在中心,你的数据会多次存储在硬盘上。所有这些磁盘的持续活动会产生大量热量,因此需要使用能量密集型空调来防止设备过热。

将文档保存到云端非常方便,因为这样就不用再控制文档了。你不必担心丢失它,可以在任何地方访问它。它还为你提供了安全备份的安心,但代价是什么呢?

该行业的所有大公司都在新的云计算上投入了大量资金。例如,微软现在正在改变他们的私人Office客户将数据保存到硬盘驱动器的可能性。使用Windows 11标准版,你就会绑定到微软365,它会自动将你的所有数据保存在云端。在较便宜的微软365版本中,你甚至无法选择将它保存在硬盘上。

因此,尽管微软有到2030年实现碳中和的的高增长目标。现在,他们正在通过将大量的私人客户转移到他们的Azure云中来大量增加排放,而这些客户并不真正需要云存储。这其中的原因不难理解。对于这些新的传输用户来说,云存储可能可以使用六个月,也许一年。但从长远来看,它是一棵巨大的摇钱树,因为它是一种订阅服务,目前每人和1TB的费用为59.99美元/年。

一旦客户加入,微软很容易留住他们。如果你已经将所有数据存储在云中,那么如果你想保留这些数据,就必须继续与Microsoft连接。在发给Microsoft私人客户的信息中,你作为客户必须每月至少连接一次Azure云。否则,他们将面临连接速度变慢和软件故障的风险。

那么,大规模云存储是否存在可持续的替代方案呢?当然有。

2、大规模物联网的替代可持续解决方案

最近有一家公司已经开发出了一种可持续的替代方案来摆脱对云的依赖,那就是IoE公司,这是我现在为自己工作的一家快速发展的研发初创公司。不过,IoE公司的目标并不是需要保存随机文档的私人客户。它们为智能城市的新世界、产生大量数据的人工智能服务、自主自动化的世界以及大规模的物联网和工业物联网系统提供了解决方案。

由于智能城市的含义开始更多地涉及可笑的应用程序,而不是基础设施解决方案,IoE公司没有使用这个词。IoE公司转而谈论开发信息基础设施,他们的技术解决方案具有广泛的可扩展性。它可能被部署到一个地区的交通灯系统,一个智能家居,或不同AI解决方案的整个集成城市。

IoE公司所做的是,他们远离万维网WWW。他们以互联网为核心,为所有节点系统建立了一个安全的区块链。这些节点都相互控制,是一个分散数据的分散系统,因此不需要大型服务器大厅,机器需要冷却。其理念是在没有云存储的情况下,在云之外创建可持续、安全的系统。

今天的一些服务需要云连接,但当涉及到物联网时,出于安全、稳定和隐私的考虑,尽可能避免使用云。Web服务提供商构建云以优化Web。Mattias Bergstöm是IoE公司的连续创业者、未来学家和首席技术官,他解释说,大规模的物联网和网络并不适合。

他所创造的技术是基于以人为本的架构,并在真正去中心化的基础设施上运行。它被命名为Eden, Eden系统是一个分散的、自治的、可移植的、安全的虚拟基础设施,用于管理存储(分散的pod)和服务上的集群工作负载,这些服务促进了声明性配置和自动化。

去中心化模型基于可扩展设备集群,其中添加新设备作为节点很容易。这使得任何设备都有可能通过智能网格网络贡献计算资源,以便计算可以在需要的地方进行,并接近将要使用的地方。Eden是通过量子安全隧道开发的,使用多态加密密钥和共识区块链来验证通过隧道在节点之间移动的数据,从而创建可信的数据墙花园。

计算和存储的编排是通过描述服务规则、策略和逻辑的服务清单完成的。一个自主的基于知识的AI使用区块链上的网络共识作为决定机制来管理底层编排机制。最后,业务流程动态更新集群地形以适应当前工作负载。Eden系统服务存储库的生成和部署类似于容器映像;存储从一开始就启用了MPI(消息传递接口)集群。

将这些创新应用到物联网设备部署中,有助于将计算的能量和成本水平保持在可持续的水平。为数据中心增加一个可行的选择,这些数据中心必须不断地进行调整,以维护一个可靠和安全的操作系统,符合可持续计算的要求。

3、我们需要停止使用浪费性的编程语言

大多数公司忽视的可持续计算的另一个方面是,代码编写的语言对运行服务或程序时使用的能源有巨大的影响。如果我们真的想要一个可持续计算的世界成为现实,我们必须意识到一些编程语言的浪费本质,并尝试实现更环保的选择。

选择哪种编程语言有很大的不同。像C、C++、Rust和Ada这样的编译语言是最节能的,而像Perl、Python和Ruby这样的解释语言是最耗能的。平均而言,如果按编程范型排序,命令式语言需要的内存最少,其次是面向对象语言、函数式语言,最后是脚本语言。

最浪费的解释型语言之一是Python。它非常受欢迎。像Youtube和Netflix这样的全球应用程序,基本上都是用Python编程的。由于其教育性质和易于使用,它也经常用于编程教学。

当然,如果我们的目标是实现可持续计算,这一切都必须尽快结束。因此,IoE公司(一家以边缘计算和可持续性为核心的公司)很容易选择一种编译语言来编程,而不是C或C++、 Rust。

通过设计实现可持续性的想法很奇妙,但我们应该记住,大多数浪费行为都来自于实现。使用解释编程语言是浪费的,而且还使用了云;这一底线取决于浪费性的代码,马蒂亚斯总结道。

现在迫切需要开始可持续的生活。我们所有人—政府、公司和普通人—都必须尽最大努力,尽可能降低全球气温上升。在可持续计算方面,IoE公司的前进方向是真正实现可持续:通过使用边缘计算(一种编译编程语言),超越云计算。

原文链接:​​https://hackernoon.com/sustainable-computing-beyond-the-cloud​

译者介绍

涂承烨,51CTO社区编辑,信息系统项目管理师、信息系统监理师、PMP,某省综合性评标专家,拥有15年的开发经验。对项目管理、前后端开发、微服务、架构设计、物联网、大数据等较为关注。​

有关超越云的可持续计算的更多相关文章

  1. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

  2. jenkins部署1--jenkins+gitee持续集成 - 2

    前置步骤我们都操作完了,这篇开始介绍jenkins的集成。话不多说,看操作1、登录进入jenkins后会让你选择安装插件,选择第一个默认的就行。安装完成后设置账号密码,重新登录。2、配置JDK和Git都需要执行路径,所以需要先把执行路径找到,先进入服务器的docker容器,2.1JDK的路径root@69eef9ee86cf:/usr/bin#echo$JAVA_HOME/usr/local/openjdk-82.2Git的路径root@69eef9ee86cf:/#whichgit/usr/bin/git3、先配置JDK和Git。点击:ManageJenkins>>GlobalToolCon

  3. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  4. ruby - 如何计算 Liquid 中的变量 +1 - 2

    我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我

  5. ruby - 使用 Ruby,计算 n x m 数组的每一列中有多少个 true 的简单方法是什么? - 2

    给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in

  6. arrays - 计算数组中的匹配元素 - 2

    给定两个大小相等的数组,如何找到不考虑位置的匹配元素的数量?例如:[0,0,5]和[0,5,5]将返回2的匹配项,因为有一个0和一个5共同;[1,0,0,3]和[0,0,1,4]将返回3的匹配项,因为0有两场,1有一场;[1,2,2,3]和[1,2,3,4]将返回3的匹配项。我尝试了很多想法,但它们都变得相当粗糙和令人费解。我猜想有一些不错的Ruby习惯用法,或者可能是一个正则表达式,可以很好地回答这个解决方案。 最佳答案 您可以使用count完成它:a.count{|e|index=b.index(e)andb.delete_at

  7. ruby - Sinatra session 未按预期持续 - 2

    我正在尝试使用Sinatra中的重定向和session在网站周围传递一些数据。这是一个简化的示例,使用PrettyPrint进行调试:require'pp'require'rubygems'require'sinatra'enable:sessionsget'/'dosession[:foo]='12345'puts'session1'ppsessionredirectto('/redir')endget'/redir'doputs'session2'ppsession'helloworld'end查看Thin的输出,我看到:>>Listeningon0.0.0.0:4567,CTRL

  8. ruby-on-rails - 如何计算 Ruby/Rails 中 JSON 对象的数量 - 2

    Ruby中如何“一般地”计算以下格式(有根、无根)的JSON对象的数量?一般来说,我的意思是元素可能不同(例如“标题”被称为其他东西)。没有根:{[{"title":"Post1","body":"Hello!"},{"title":"Post2","body":"Goodbye!"}]}根包裹:{"posts":[{"title":"Post1","body":"Hello!"},{"title":"Post2","body":"Goodbye!"}]} 最佳答案 首先,withoutroot代码不是有效的json格式。它将没有包

  9. ruby - 如何计算自 Ruby 中给定日期以来的周数? - 2

    目标我正在尝试计算自给定日期以来周的距离,而无需跳过任何步骤。我更喜欢用普通的Ruby来做,但ActiveSupport无疑是一个可以接受的选择。我的代码我写了以下内容,这似乎可行,但对我来说似乎还有很长的路要走。require'date'DAYS_IN_WEEK=7.0defweeks_sincedate_stringdate=Date.parsedate_stringdays=Date.today-dateweeks=days/DAYS_IN_WEEKweeks.round2endweeks_since'2015-06-15'#=>32.57ActiveSupport的#weeks

  10. 最新版人脸识别小程序 图片识别 生成二维码签到 地图上选点进行位置签到 计算签到距离 课程会议活动打卡日常考勤 上课签到打卡考勤口令签到 - 2

    技术选型1,前端小程序原生MINA框架cssJavaScriptWxml2,管理后台云开发Cms内容管理系统web网页3,数据后台小程序云开发云函数云开发数据库(基于MongoDB)云存储4,人脸识别算法基于百度智能云实现人脸识别一,用户端效果图预览老规矩我们先来看效果图,如果效果图符合你的需求,就继续往下看,如果不符合你的需求,可以跳过。1-1,登录注册页可以看到登录页有注册入口,注册页如下我们的注册,需要管理员审核,审核通过后才可以正常登录使用小程序1-2,个人中心页登录成功以后,我们会进入个人中心页我们在个人中心页可以注册人脸,因为我们做人脸识别签到,需要先注册人脸才可以进行人脸比对,进

随机推荐