自今年年初以来,AWS Rust团队一直在起草我们的章程和原则。章程和原则是AWS团队用来定义我们的范围和优先级的框架。章程会告诉您团队的工作,宗旨会告诉您团队的工作方式。由于我们的团队宗旨之一是公开透明地运作,因此我们希望与您分享我们的章程和宗旨;我们希望您知道我们的意思。
编写我们的章程很容易。只需说一句:AWS Rust团队致力于使所有用户的Rust性能更高,更可靠,更高效。说够了!但是,编写这些原则需要花费更多的精力。
是的!实际上,AWS至少从2017年开始就在众多服务中使用Rust。例如,用Rust编写的Firecracker于2018年推出,以提供支持AWS Lambda和其他无服务器产品的开源虚拟化技术。最近,AWS发布了Bottlerocket,这是一个用Rust编写的基于Linux的容器操作系统,Amazon Elastic Compute Cloud(Amazon EC2)团队使用Rust作为新的AWS Nitro System组件(包括敏感应用程序,例如Nitro Enclaves)的选择语言。
随着AWS中Rust的采用不断增长,我们对项目和社区的投资也在增加。在2019年,AWS宣布赞助Rust项目。 AWS在2020年开始建立Rust维护者和贡献者团队,并在2021年与其他Rust用户和Rust项目一起创建了Rust Foundation。
AWS Rust团队首先要弄清楚如何与AWS和更广泛的开源社区建立最佳关系。我们知道我们想在公开场合开展活动,并作为整个社区的成员。同时,我们知道我们想充分利用在AWS上的优势。起草宪章和宗旨是我们寻求实现这两种方式的过程的一部分。
人们在AWS [1]上将原则用于一切。它们是传达团队,项目或其他工作的全部内容的有效方法。作为AWS的新手,我们中的一个人(Niko)只是在学习有关原则,而他确实很喜欢它们。您可能会开始看到它们在各种各样的地方冒出来。
下面的每条原则都体现了一个核心信念或原则,可为我们的团队决策提供依据。它们特定于我们的团队,可帮助我们专注于交付价值。宗旨并不意味着被书面和遗忘。在日常操作中会积极使用它们,以帮助指导我们确定解决方案。
我们是一个AWS团队。我们领导开发用于在云中构建和运行服务的工具和机制。我们利用与AWS服务的接近度来收集有助于改善Rust的见解。
Rust一直从成为“从业者”语言中受益。在一开始,Rust用Servo项目[2]进行指导。浏览器对性能的要求很高,因此将语言推向了许多有趣的方向。随着Rust的采用率的增长,所得到的反馈意见帮助Rust扩展了针对越来越多域的范围。
为此,我们希望该团队充分利用AWS所提供的优势。 Rust已用于在AWS此处提供各种服务,例如Amazon Simple Storage Service(Amazon S3),Amazon Elastic Compute Cloud(Amazon EC2),Amazon CloudFront等。我们可以与这些团队紧密合作,以了解哪些方面运作良好,哪些方面可以使用改进,然后将这些经验教训带回Rust。我们还可以与正在部署Rust内置系统的AWS客户合作,并找出他们的需求。
这个原则还有另一个要点。作为一个AWS团队,我们有一个重点。我们将自己的角色(与Rust社区中的其他人一起)看作是帮助改进Cloud的Rust。这是我们最了解的。我们也很高兴看到Rust在所有其他领域都有发展,但我们认为最好由其他人在我们的团队担任支持角色的情况下发挥领导作用。
我们在露天工作。在我们的设计上共享和协作可以为包括AWS在内的每个人提高结果的质量和价值。
我们是一个AWS团队,但我们也是Rust的贡献者,这一宗旨意味着我们将本着开放和透明的精神开展业务。例如,尼科(Niko)计划在想法完全形成之前继续在其阶梯博客[3]上发布想法,并且他指望Rust社区继续在这些想法上戳破漏洞。
最初创建RFC流程时,Niko最初将其视为帮助指导其他人的设计的一种方式。但是,他很快发现,他最喜欢的是它给了其他人一种帮助指导自己的设计的方式。人们会不时地指出一种使想法更好的方法。
对于AWS,我们现在看到了同样的事情。我们绝对希望向AWS的团队学习课程。但是,我们也绝对希望将这些课程带入更广泛的社区,并将它们与其他人和其他云提供商的人的课程相结合[4]。这种方法为每个人提供了更好的结果。
我们帮助Rust实现其诺言。我们分享Rust的使命,即使系统编程不仅高效,安全和高效,而且还使新的受众可以使用。
我们非常喜欢Rust,因为Rust致力于使人们能够构建具有强大安全保障的高性能,并行系统。 Lindsey Kuper的经典句很好地体现了这一愿景:
但是,除技术特性外,Rust的另一个核心价值对我们来说非常重要:可访问性。通过可访问性,我们的意思是积极寻找进入壁垒并拆除壁垒。有时,这些障碍是技术性的,而其他时候,这些障碍是社会的。无论哪种方式,我们都与Rust共享一种信念,即向更广泛的受众开放系统编程将为所有人带来最好的结果[5]。
我们支持我们所参与的社区。我们会分担“必要的事情”,例如对问题进行分类,整理积压的订单,指导和加入其他贡献者,参与设计讨论并修复错误。
开源需要的不仅仅是编码人员。有很多工作要做;它并不总是很有趣,但是很重要。此原则是第一个原则(“我们是AWS团队”)的补充。在讨论该宗旨时,我们提到我们在云中拥有第一手专业知识,但是在其他领域,我们希望其他人能带头。这个宗旨是说,我们将通过回顾,指导和指导,或者只是通过参加讨论并给我们2美分的支持,来帮助支持领导这项工作的人们。
我们帮助连接AWS和Rust生态系统。我们帮助AWS团队浏览Rust的所有内容,并促进他们积极参与他们所依赖的项目。
我们的工作之一是将其他AWS团队与Rust生态系统和Rust项目联系起来。我们希望创造一个这样的世界:所有使用Rust的AWS开发人员都可以参与我们所使用的库或编译器本身的维护和改进。这种努力将带来很多好处。当然,这将有助于维持这些库,并且将发现有利于我们的AWS服务的优化或其他改进机会。双赢[7]。
宗旨5:我们专注于我们最了解的事物;我们不会尽一切努力。
我们专注于我们最了解的东西;我们不会尽一切努力。我们的团队包括Rust编译器,语言设计和Tokio堆栈的领导者,这些都是我们可以发挥最大影响力的领域。
在这篇比较优势的文章中一直有一个主题-我们的团队将专注于我们最擅长的事情,并支持其他人也这样做。但是,该原则的重点是强调该句子中的焦点一词。对于我们来说,将自己分散得太薄而无法提供高价值将是非常容易的,我们确实希望我们的团队避免这种情况。
传统上,每条原则清单都以“除非您知道更好的原则”开头。这个想法是,宗旨总是随着环境的变化而发展。这些是我们目前的宗旨,随着我们更多地了解AWS和Rust社区协同工作的最佳方式,我们希望它们会不断发展。
我们甚至有关于原则的原则!这是其中之一:“区分而不是提升。宗旨体现的是使团队与众不同的原因,而不是使团队与众不同的原因。” –Shane
能够连接到Servo Foundation感觉很好!多么酷啊? –妮可
这是我最喜欢的亚马逊领导原则:“领导者很正确。 他们有很强的判断力和良好的直觉。 他们寻求不同的观点,并努力证明自己的信念。” —Shane 甚至只是偶尔定时的❤️表情符号。 我知道那能走多远! 不确定谁需要立即听到此消息,但您和您一样,都很棒,很有价值。 –妮可