AWS为什么喜欢Rust,以及我们希望如何提供帮助

2020-11-25 02:38:43

Rust编程语言最令人兴奋的事情之一就是它使基础设施变得无聊得令人难以置信。在这种情况下,这不是一件坏事。没有人希望他们的电线激动。我们大多数人都喜欢能够拨动开关并能看见光的安全性。出于类似的原因,在AWS上,我们越来越多地使用Rust构建诸如Firecracker VMM之类的关键基础架构,因为其开箱即用的功能减少了达到亚马逊高安全性标准所需的时间和精力,同时仍提供了类似于C和C ++的运行时性能。 。

尽管AWS已从Rust受益多年,但我们正在寻找以有意义的方式做出贡献的方法。正如AWS高级软件工程经理Shane Miller所说:“ Rust帮助我们为Amazon规模的AWS客户提供了快速,强大的服务”,并且我们致力于进一步加强一个社区,该社区极大地使我们和我们的客户受益。这一承诺包括对Rust和Tokio(用于使用Rust编写异步应用程序的运行时)的代码贡献,但是我们对Rust社区的承诺不仅仅限于代码。通过与超过5500个Rust贡献者的合作,我们以各种方式做出贡献,所有这些都旨在使AWS和Rust社区中的其他人充满信心地构建系统。

在本文中,我将解释AWS在何处(以及为什么)使用Rust,以及我们的贡献将如何继续发展。

尽管在2015年仅发布了1.0版本,Rust仍然非常受欢迎。根据来自超过65,000名开发人员的调查反馈,Rust连续五年位居Stack Overflow的“最受欢迎”编程语言榜首。同时,在Redmonk的编程语言排名中,Rust跻身前20名,鉴于Java,C,JavaScript等的强大功能,这是一项重大成就。

在AWS,我们也很喜欢Rust,因为它可以帮助AWS编写高性能,安全的基础架构级网络和其他系统软件。亚马逊首款由Rust制造的著名产品Firecracker于2018年公开发布,提供了开源虚拟化技术,可为AWS Lambda和其他无服务器产品提供支持。但是,我们还使用Rust提供诸如Amazon Simple Storage Service(Amazon S3),Amazon Elastic Compute Cloud(Amazon EC2),Amazon CloudFront,Amazon Route 53等服务。最近,我们推出了Bottlerocket,这是一个用Rust编写的基于Linux的容器操作系统。我们的Amazon EC2团队使用Rust作为新的AWS Nitro System组件(包括敏感应用程序,例如Nitro Enclaves)的选择语言。

为什么Rust被证明在AWS和其他地方如此受欢迎?如前所述,这归结于Rust的主要美德:性能和可靠性。

因为Rust不需要运行时或垃圾收集器,所以它能够实现类似于C和C ++的运行时性能。同时,Rust使用严格的类型系统和所有权模型来实现内存和并发安全性的编译时验证,从而使测试和验证Rust实现的成本大大低于C / C ++。 AWS首席工程师Carl Lerche说,Rust和Tokio使AWS能够编写能够快速,可靠地响应并帮助我们提供更好的客户体验的服务。

但是Rust不只是代码。 AWS的软件工程师David Barsky说,Rust确实致力于为人们提供出色的体验。他补充说:“如此,它吸引了一大堆从未参与过的系统编程人员,包括我自己在内。” Rust社区特别欢迎您,与那些传统上未参与系统编程或开源的人们接触。

由于上述原因和其他原因,我们一直在寻找更多参与Rust社区的方式。

在2019年,我们宣布了对Rust开源项目的赞助。例如,这些资金帮助Rust社区在Amazon EC2上使用Crater运行了整个生态系统范围的回归测试。很好,但是我们想做更多。

最终,像Rust这样的开源社区都是以人为本的,我们开始雇用Rust和Tokio的提交者,以确保他们有必要的时间和资源来进一步改善Rust。这促使我们围绕Tokio建立了一个团队,聘请了Sean McArthur,Lucio Franco,Jon Gjengset和Lerche等贡献者,继续与Buoyant,Dropbox,Confluent,vector.dev,fly.io,和更多。

最近,我们很幸运地聘请了Rust的主要维护者,例如Felix Klock。鉴于我们对Rust的依赖,我们需要深刻的内部Rust专业知识,就像我们对Java和其他基础技术一样。 AWS的高级首席工程师Marc Brooker解释说:“雇用工程师直接在Rust上工作,使我们能够以对我们和客户重要的方式对其进行改进,并帮助发展整个Rust社区。”同时,这些针对客户的投资与社区优先事项相吻合。

让我们清楚一点:我们了解到,我们是其他人为使Rust蓬勃发展所做的出色工作的净受益者。 AWS并未启动Rust或使Rust取得今天的成功,但我们希望为Rust的成功做出贡献。我们坚信,对更广泛的Rust生态系统进行投资有助于我们的客户以及那些永远不会成为我们客户的客户。没关系。这就是开源应该起作用的方式。

米勒说:“我们不仅为Tokio和Rust编译器雇用了几个人,” “锈蚀是我们长期战略的关键组成部分,我们正投资以亚马逊规模提供Rust工程。其中包括开发人员工具,基础架构组件,互操作性和验证。”而且,正如她很快强调的那样,Rust是社区构建的:自Rust诞生以来,已有5500多位贡献者,平均每个发布有350位贡献者。

在AWS,我们很高兴能加入这个热情,高效的Rust社区。如果您想帮助Rust变得更好,可以通过多种方式参与其中。如果您想加入我们的团队,请查看Rust / Tokio团队的空缺职位。