【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

亚马逊可持续软件工程实践

  • 2021-10-19
  • 本文字数:4682 字

    阅读完需:约 15 分钟

亚马逊可持续软件工程实践

在技术领域里,2021 年是特殊的一年。这一年是 Amazon Web Services 成立的第 15 周年,这一切始于亚马逊的对象存储解决方案 S3。在过去的这 15 年里,我们可以看到云计算改变了整个世界。并且有越来越多的客户将业务迁移到公有云,开启了企业数字化之旅。

 

未来十年,云计算发展将是一个持续扩张和不断迭代的过程。与此同时,“可持续发展”已成为全球、全国以及各个企业必须考虑的主题之一。作为全球领先的科技企业亚马逊也在技术的可持续发展性上不断探索,从基础设施到软件设计,有一整套自下而上的具有前瞻性的解决方案实现它。

 

作为亚马逊云科技可持续发展架构副总裁,Adrian Cockcroft 在 9 月 11 日的亚马逊云科技中国峰会 Dev Day上发表了主题演讲,讲解了亚马逊的可持续发展战略,更重要的是,他从开发者的角度阐述了亚马逊云科技如何进行可持续软件工程实践,我们可以从中得到非常多的启发。

 

我们为什么要关注“可持续发展”

 

可持续网络宣言:如果互联网是一个国家,那么它制造出来的二氧化碳排放量,排在全球第七位。

 

联合国于 2015 年制定了一个全球框架《巴黎协定》,随后各缔约国纷纷制定了“碳中和”路径和目标,对地球环境的健康发展做出承诺。今年两会,中国也将“碳中和”和“碳达峰”写入政府工作报告,目标在 2030 年前实现“碳达峰”,2060 年前实现“碳中和”。毋庸置疑,可持续发展已经成为不言而喻的社会共识。但在社会共识之下,还需要个人、企业、政府等各类社会主体的参与——其中体量庞大的科技企业是至关重要的参与者。

 

目前全球互联网用户超过 46 亿,随着互联网普及率的上升,互联网很快将产生近 10 亿吨二氧化碳,用电量相当于全球的 10%。其中为数据中心供电所需的能源量大约每四年翻一番,就碳排放而言,ICT 行业自 2007 年以来一直贡献了2-6%,几乎与航空业持平。 

 

好消息是,虽然 ICT 和云采用呈指数级增长,但能源使用和碳排放却能相对保持不变,因为主流云提供商的超大规模数据中心正显著地提高效率。埃森哲的分析表明,倘若采用绿色方法迁移至公有云,全球二氧化碳排放量每年可减少 5,900 万吨,这相当于动动手指就能减少2,200万辆汽车的碳排放量!

 

从目前全球情况来看,亚马逊、谷歌、微软这三家世界级科技巨头引领了“绿色云”改造。亚马逊表示将提前十年达成《巴黎协定》,并在 2025 年实现 100% 可再生能源。并且还成立了 20 亿美元的气候承诺基金,投资那些能帮助亚马逊达成目标的公司。谷歌大胆承诺,到 2030 年实现数据中心全天候无碳运行,而不是依靠每年的直接能源匹配。微软(Microsoft)自 2012 年起实现碳中和,并承诺通过电力购买协议,到 2025 年实现数据中心完全使用可再生能源。

 

而在中国,互联网科技企业也都在不断加大力量投入到碳中和改造中。今年 8 月国际环保组织绿色和平(Greenpeace)发布了中国科技巨头《绿色云端2021》排行榜,从能源信息披露、节能减碳表现、可再生能源方面合梳理了中国互联网科技企业的气候行动,相比去年,中国互联网科技企业整体平均得分上升 11%。

 

在 9 月 11 日的Dev Day上,Adrian Cockcroft 表示亚马逊云科技取得的成绩非常显著:亚马逊云科技的基础设施能源效率比普通美国企业数据中心高出 3.6 倍。同时,亚马逊在执行相同任务时,可以减少 88%的碳足迹。

 


这是多种因素促成的结果,Adrian Cockcroft 讲述了亚马逊探索出来的构建绿色云服务的几条有效路径。

 

第一是水资源的保护,亚马逊云科技使用蒸发冷却,循环用水,并尽可能在现场处理水。

第二是采购可再生能源,亚马逊云科技现在是美国和欧洲最大的可再生能源买家。

第三是移除了传统的不间断电源(UPS),转而采用了集成在每个机架的小型电池组合自定义电源。以往,每次在电压和直流电/交流电转换当中都会有一些功率损失,通过移除传统的 UPS,优化机架电源,减少最终转换等措施让能量损失降低约 35%。

第四是探索创新的服务器设计。中央处理器是现代计算机最耗电的部分,亚马逊云科技自研、基于 ARM 架构的 Amazon Graviton2 处理器每瓦特性能比其他业界标准流程高2 ~ 3.5 倍

第五是在新数据中心建设中增加使用低碳混凝土,它能够减少新建筑碳排放量的 25%。

 

可持续软件工程实践

 

很多人可能认为迁移到云就足够了,以至于忽视了优化内部效率。实际上,迁移到云上的每个工作负载都会消耗能源,有一些任务还尤其耗电,比如有计算密集的 AI 或 ML 业务。一项对自然语言处理模型的研究说明了问题的严重性,研究表明训练一个 NLP 模型产生的碳排放量相当于从纽约到北京的航班往返 125 趟。 

 

另一项研究量化了观看 YouTube 视频所产生的碳足迹,它等同于一个小城市的二氧化碳排放量。这项研究同时指出,如果让 25%的音乐视频改进为后台播放,那么一年可以节省 323,000 吨二氧化碳当量,这等同于每年 50,000 辆汽车的排放量。研究团队的成员之一 Chris Preist 教授强调:“一个人对环境的影响很小,但把全球服务加起来时,它们可能会产生明显的影响”。

 

对于我们技术人来说也是一样,当手下的那一份“绿色”代码部署到成千上万、甚至过亿设备上时,所产生的节能效应将是巨大的,所以大家有责任确保我们的技术能更加“可持续发展”。

 

那么作为开发者,我们到底能做些什么呢?

 

可持续软件工程是一个新兴的领域,但亚马逊云科技的探索能给我们一些启示,Adrian Cockcroft 在演讲中,从代码效率、平台部署、软件应用设计等方面讲述了该如何实施可持续工程,InfoQ 摘取了其中一些开发者相关的部分以飨读者。

 

发挥开源的作用

 

如果我们考虑在云上进行优化,开源是一个很好的方式。现在很多我们正在使用的算法其实不是很高效,但幸运的是,还存在每个开发人员都可以使用的、更为高效的开源替代方案。

 

JSON 文档在互联网上无处不在,服务器花费大量时间来解析这些文档。开发者们希望在进行完全验证(包括字符编码)的同时尽可能使用常用的 SIMD 指令来加速 JSON 的解析。

 

GitHub 上有一个开源 JSON 解析器 simdjson,通过与其他常用解析器的对比实验,结果显示,simdjson 的解析速度达到 2.2GB/s。与其它解析器相比,simdjson 只使用四分之一或更少的指令,并且可用于许多不同的平台和语言。

 


这个解析器是 2019 年开源的,但亚马逊已经使用 simdjson 处理了大量的 JSON,Adrian Cockcroft 总结说效果是惊人的。

 

另一个例子是关于压缩的。很多时候,我们需要压缩日志文件,以压缩的格式存储千兆字节或万兆字节的数据。gzip 和类似算法作为广泛使用的格式流行了很长一段时间,但现在有了一个新的、由脸书开发的叫做 Z-Standard 的算法。这种算法不仅可以使用更少的 CPU 来进行压缩,而且能获得更高的压缩率,压缩后的文件最终只有 gzip 文件大小的 60%。对于单独一个小文件来说,压缩到这个程度可能可有可无,但是当你要处理千或万兆字节的数据时,这就有了很大的不同,你可以通过遍历和重新压缩来释放大量的数据空间。

 

这就是开发者可以做的一些简单的事情:寻找其他更有效的算法,来替代程序中的低效算法。

 

在峰值和碳足迹之间多加权衡

 

工作负载运行时通常会出现尖峰,所以需要我们提供高于期望峰值的容量,但是碳足迹不依赖于系统的平均使用量,甚至不依赖于系统的峰值使用量,碳足迹取决于系统预留的容量。而我们常常需要为一些这样的“尖峰”时刻准备大量的资源。

 


因此,减少碳足迹的方法之一是确保负荷峰值分散开来,避免产生这样的尖峰。即使平均利用率是相同的,所完成的工作量也相同,但通过减少峰值,就能减少预留容量。

 


另外就是配置定时任务的运行。如每天午夜运行的 Crontab 任务,很多人通过它来设置批处理作业,或进行数据仓库的日常汇总。当每个客户同时运行同步工作负载时,这些同步作业会增加峰值工作负载。这实际上提高了对亚马逊云科技的需求,因为我们必须提供更大的容量来处理这些并发任务造成的高峰。

 


但如果能避开整点、适当的安排偏移或抖动,就能避免并发产生的高峰。而且还不需要额外付出,因为你的工作量并没有变化。因为在高峰时点的可用资源更为紧张,如果能避开高峰,在资源不那么紧张的时候,可能你的任务也因此会运行得更快一点。

 

总的来说,减少碳足迹的方法之一是在服务水平协议和可持续性承诺之间进行权衡,比如说可以稍微降低期望值。我们知道二八定律,如果需要提升 20%的性能,那么这 20%的性能提升涉及的努力通常会占据整体工作量的 80%。有相当多的算法或业务都存在这样的权衡比较。例如当服务水平协议中规定响应时间为 500 毫秒,只要仍然符合服务水平协议的要求,就没必要用 100 毫秒的响应时间来超额完成工作。

 

还有高可用性配置,如果你有一个等待故障转移的热备系统,你就可以在服务级别协议内采用冷备或是温备系统进行故障转移,从冷备启动所需的时间实际上可能不会比温备或热备所需的时间长很多。高可用性总是要付出额外的成本和额外的碳代价,所以,我们可以利用这些权衡来减少碳足迹。

 

利用无服务器架构

 

无服务器是另一个减少碳足迹的极好的方式。

 

无服务器计算指应用在远程托管的执行环境中按需运行。过去几年中,构建有弹性的无服务器系统一直是系统管理员和 SaaS 公司的主要关注点。该架构提供的关键优势在于:无服务器模型无需用户自身去维护操作系统,只需生成通用的代码,上传到无服务器框架,看着它运行就好了。

 

因此,用户可以选取托管服务,使用Amazon Lambda执行计算资源的所有管理工作,可以关联平台配置伸缩这样的工作。比如即时调度这样的程序,当不使用时可以关闭计算机休眠所有测试环境,仅在需要的时候进行唤醒。这是一种极其强大的可以减少能源消耗和运行系统的成本的方式,能实现的事情之一就是释放闲置的硬件,让别人可以同时利用,可以降低亚马逊云科技运行所需的总体容量,也不会影响到用户的实际工作。

 

因此,构建更可持续的体系结构的一个强有力的方法是转向无服务器,将工作负载转移到云服务,然后选择最小化能源使用的服务和实例类型。

 

写在最后 

 

实施可持续软件工程,我们可以自上而下进行,首先从管理的角度测量整个企业的碳足迹,将工作负载从数据中心转移到云区域,改变使用模式以避免产生肮脏能源开发,然后选择最小化能源使用的服务和实例类型。再深入到更多细节,优化工作负载以提高利用率,我们可以分散定时任务,降低负载峰值,达到调整 CPU 使用效率的目的。

 

重要的是,优化并不是只考虑某一个地方就可以,需要我们在架构和系统层面去思考,Adrian Cockcroft 还讲道,亚马逊云科技正在培训可持续发展解决方案架构师,以帮助大家进行可持续性架构评估。在可持续发展的共同责任模型的基础上开展工作,最大限度地减少能源消耗,最大限度地提高每项资源消耗的工作量,转向更省电的共享服务,并通过分享知识来持续改进。

 

在演讲的最后,Adrian Cockcroft 发出了一个“行动的号召”:每位开发者都可以从现在开始去理解“可持续性”相关的术语和原则,在工作中寻找优化负载的机会,开源自己的经验和方案,通过“分享”促进大家一起达成“可持续发展”的目标。

 

活动推荐:

 

在今年 10 月 22 日举办的 QCon 全球软件开发大会上海站,我们设置了亚马逊云科技专场,以可持续发展技术为核心,四位顶尖专家将分别从 “构建未来的大数据平台”、“利用无服务器架构”、“发挥开源的作用”、“云端机器学习助推”四个方面展开分享,带大家探索软件开发的下一站旅程。

 

活动议程:

  • 9:30-10:15 面向未来的湖仓架构, 大数据平台的技术现状与趋势

  • 10:30-11:15 借助 Serverless 和性能工程的可持续软件开发实践

  • 11:15-11:45 开源云原生解决方案助力业务的发展

  • 11:45-12:15 以云端的机器学习推动可持续发展的实现

 

会议日程已上线,查看详情:http://gk.link/a/10AW0

 

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2021-10-19 10:112555

评论

发布
暂无评论
发现更多内容

Mac电脑多平台数据同步推荐:SyncMate最新激活版

mac大玩家j

同步工具 Mac软件推荐 同步软件

ETL+BI结合的数据集成工具

RestCloud

BI ETL 数据集成

18 | 散列表(上):Word文档中的单词拼写检查功能是如何实现的

鲁米

Amazon S3 Glacier 将检索大量存档数据时的还原吞吐量提升高达 10 倍

亚马逊云科技 (Amazon Web Services)

S3 API 云存储服务 Amazon S3 Glacier

4点搞定Type-C接口的PCB可制造性设计优化!

华秋电子

PCB

工业数据存储的“四道难关”,国产数据库如何应势破局?

用友BIP

鸿蒙原生应用开发——分布式数据对象

HarmonyOS开发者

HarmonyOS

Mac电脑强大的文件夹快速访问工具:Default Folder X 最新激活

胖墩儿不胖y

Mac软件 文件访问工具 文件夹管理软件

探秘 Spring Boot Async:解析原理与实践详解

Apifox

性能优化 Spring Boot 后端 多线程 Async

Future3 Campus访谈丨资本是如何看待AI+Web3的?

Footprint Analytics

AI web3

万界星空科技MES系统中的生产管理流程

万界星空科技

生产管理系统 mes 制造业生产管理系统 云mes 万界星空科技mes

实战干货!基于ERNIE Bot SDK的数字诗人聊天开发教程

飞桨PaddlePaddle

人工智能 数字人 技术干货 文心一言

小程序开发实战案例之三 | 小程序底部导航栏如何设置

盐焗代码虾

前端 支付宝 小程序开发 导航栏

直播预告|StarRocks 3.2 全面解读:易用性和性能的双重提升

StarRocks

数据库 数据分析 OLAP StarRocks

为什么6层板最好设计2个接地层?

华秋电子

通过线上巡检,保障生产环境质量

老张

软件测试 质量保障

五金家具行业MES解决方案

万界星空科技

mes 制造业生产管理系统 万界星空科技mes 家居设计工具 家具生产管理系统

华秋喜获“2023深圳行业领袖企业100强”称号

华秋电子

中山大学数学学院 x 赛博威 | 共同成立人工智能算法产学研合作基地

赛博威科技

人工智能 赛博威 中山大学 人工智能算法

代码混淆技术探究与工具选择

雪奈椰子

使用 Kubernetes 为 CI/CD 流水线打造高效可靠的临时环境

SEAL安全

Kubernetes CI/CD 临时环境

强强联合!航天科技AIRIOT助力航天电工打造智慧工厂

AIRIOT

IOT Platform 智慧工厂

AI数字人直播常见问题及解决方案!

青否数字人

数字人

现在甘肃等保测评机构有几家?分别是哪几家?

行云管家

等级保护 等保测评 甘肃

文心一言 VS 讯飞星火 VS chatgpt (152)-- 算法导论12.2 8题

福大大架构师每日一题

福大大架构师每日一题

Amazon CodeWhisperer 开箱初体验

亚马逊云科技 (Amazon Web Services)

人工智能 云上探索实验室 Amazon CodeWhisperer

医院检验科LIS系统源码,oracle数据库、报告管理、质控管理

源码星辰

AI数字人在天猫/淘宝平台开播教程!

青否数字人

数字人

ACPM高效C++组件管理让音视频终端SDK性能更好、稳定性更高

阿里云视频云

云计算 视频云

一起学Elasticsearch系列-模糊搜索

Java随想录

Java 大数据 elastic

华秋DFM软件荣获2023年度电子信息行业可靠性质量提升典型案例

华秋电子

软件

亚马逊可持续软件工程实践_产品_Tina_InfoQ精选文章