作者:Michael Yuan
开源:M型的企业软件——AWS re:Invent 之我见
我记得几年前亚马逊云的 AWS re:Invent 会议只是个几百人的小型活动。 完全没有料到,在过去的十年里,AWS re:Invent 已经发展成为世界上最大的技术会议之一。 议题依然是亚马逊云的产品与服务。 亚马逊云如今在企业计算领域占据着主导地位,已经成为软件创新的标杆与热点。因此, AWS re:Invent 大会是值得软件行业每个人都密切关注的。
AWS re:Invent 2019年会于12月2日至12月6日在拉斯维加斯举行 。 共有6.5万名参会者,门票1700美元。这些参会者自己付费来了解亚马逊云的产品,来学习其他亚马逊云客户是如何购买或使用亚马逊云服务的。这完美地证明了亚马逊云的成功! 拉斯维加斯虽然经常举办大型活动和会议, 但是,这样规模的技术大会也已经让拉斯维加斯办会能力达到了极限。
在一周的时间里,AWSre:Invent 彻底改变了拉斯维加斯大道的面貌,使之成为一个纵横5个大型会议中心的演讲盛会。 从一个会场走到下一个会场经常需要一个小时。作为参会者, 我体验了亚马逊云生态系统的各种创新,思考了这些创新将如何影响整个软件行业。
我的感悟是:软件在变得更加抽象的同时也在变得更具象。 连接商业与硬件的中间层将变得越来越重要。
亚马逊云是一家计算基础设施提供商。 它之所以发展得如此壮大,是因为基础设施是大多数机构的痛点。 云计算应该是简单的ーー像供应电力或自来水一样,供应计算能力。然而,随着越来越多企业采用亚马逊云,它也变得越来越复杂。AWS 现在已经有超过100种不同的产品。
为了续写前面的成功,自然而然,亚马逊云要推出更简单、更容易使用的基础设施产品。 换句话说,软件正变得越来越抽象,从而隐藏纷繁复杂底层基础架构里面的细枝末节。
今年 re:Invent 大会最热门的话题之一就是无服务器的微服务。 在理想状态下,开发者无需担心服务器、虚拟化、容器、操作系统、平台、资源,以及管理服务器带来的复杂性。 为什么不可以让开发者直接把编写好代码部署到云中,然后由云服务自动调整资源以满足各种负载? 经过多年的探索,随着 Docker、 k8s 和相关技术的进步,无服务器的底层基础设施软件终于走向成熟。 在这次 re:invent 大会上,无服务器微服务的使用场景是最热点的议题之一。
亚马逊云首席执行官 Andy Jassy 在主题演讲中, 发布了几款人工智能产品,如亚马逊欺诈探测器、亚马逊CodeGuru、亚马逊客服中心 Connect 和亚马逊 Kendra。 这些本质上都是亚马逊云为应用程序开发者提供的打包的 AI 微服务。
Jassy 的另一个重大发布,是 SageMaker Studio。 它是一个基于网页的集成开发环境,可以完成 AI 用户的建模,训练,推理等需求。 通过它,用户可以直接与亚马逊云后端的 AI 微服务进行交互。 可见,亚马逊云现在不仅构建基础设施服务,而且还为业务用户提供方便使用此类服务的用户介面。
无服务器微服务的时代可能终于要到来了。 通过无服务器,软件正变得越来越抽象,越来越脱离其底层的基础架构。
在软件基础设施的另一面,软件在越来越接近硬件。 它在减少抽象度,变得更具体。
推动这种演变的原因是,我们已经进入了后摩尔定律时代。 用户所要求的性能改进不能再简单地通过提升 CPU 速度来满足了。 亚马逊云开创了在特定领域(如网络、并行处理和人工智能推理)中提供高性能的定制硬件以提高性能。
一个很好的例子是 AWS Nitro。 它提供了一套专用的硬件 i / o 卡、控制器和安全芯片。 通过利用软件基础设施,利用 Nitro 硬件的优势,亚马逊云能够交付新的更快更经济的 EC2 虚拟机。 受益于 Nitro,亚马逊云在2018年新增的 EC2 虚拟机比前一年增加了3倍。
Peter DeSantis 在他的主题演讲中演示了通过 Nitro 和硬件优化的网络软件栈,EC2 c5n.x18large 的性能几乎能够随着CPU数量的增加而线性提升。 这已经达到了克雷超级计算机的性能指标。 这样一来, 亚马逊云可以向客户提供“超级计算机服务”。
在2019年的 re:Invent 中,亚马逊云一口气宣布了好几个用于加速人工智能和大数据业务的芯片和硬件。
Graviton2 是基于 ARM 架构设计的 CPU。 与英特尔、 AMD 公司的 x86 cpu 相比,Graviton2 性能提高了40% ,成本降低了20% 。 它还为数据压缩的工作负载提供了硬件加速。
AWS Inferentia 是为人工智能而设计的硬件处理器。 对于神经网络的计算负载,Inferentia 比一般 CPU 快3倍,还便宜40% 。
AQUA 是一种新的硬件加速缓存,可以将数据仓库应用程序的查询性能提高10倍。
随着硬件越来越专业化,对软件的需求也不断增加,这些软件可以“本地”访问硬件并使用其特定功能。 从这个意义上说,软件正变得越来越不抽象。 与开发通用的上层应用不同,开发者必须处理特定硬件的不同之处和特定功能。
综上所述,随着上层抽象软件和底层具象软件的重要性越来越受关注,传统中间件如通用应用服务器和容器的重要性可能将被削弱,形成了一个两边高中间低的 M 形状。
这会催生新一代的中间件,才能让微服务的开发和部署变得更加容易。 在我看来,正在兴起的 WebAssembly 技术可能正好契合了这种需求。
Webassembly (Wasm) 最初是作为 web 浏览器中的一个高性能执行引擎而出现的。 支持多语言(还支持像 Rust 这样的流行新语言) ,多平台,轻量级,速度快,并且通过模块化的安全模型提供本地硬件访问。 这些特性使 Wasm 成为本地云微服务的强大执行引擎。
• 与 Java 和 JavaScript 虚拟机相比,Wasm 支持更多的编程语言、更轻便,并提供对特殊硬件的访问。
• 与 Docker 这样的容器相比,Wasm 更轻更快。Wasm程序无需任何改变就可以运行在任意主机上。 Wasm 还有一个更精确的模块化安全模型,可以访问本地操作系统和硬件。
了解关于服务器端 WebAssembly 的原理和历史
Second State 公司提供了为服务器端应用程序优化的 Wasm 编译器、运行时和本机硬件模块。 请允许我在这里给自己的公司打个广告,介绍一下最近在该领域发布的两个开源产品。
Second State虚拟机的开发者预览
Second State Wasm 编译器的开发者预览
欢迎开发者和我交流看法,发送邮件到[email protected] 与我联系。
我们相信,Wasm 将在区块链、人工智能和云原生的微服务中有广泛的应用。 我们希望在今后的AWS re:Invent看到越来越多的 Wasm 应用。 在此之前,让我们一同参加2020年2月在谷歌举行的 WebAssembly 峰会(WebAssembly Summit),讨论 WebAssembly 在服务器端的前景!