合作、参与、让开源更易用 | 亚马逊的开源文化

云计算
Amazon Elastic Container Service (Amazon ECS)
Amazon Elastic Kubernetes Service (EKS)
Amazon CloudFormation
0
0
JAX 是一种越来越流行的库,它支持原生 Python 或 NumPy 函数的可组合函数转换,可用于高性能数值计算和[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)研究。JAX 提供了编写 NumPy 程序的能力,这些程序可以使用 GPU/TPU 自动差分和加速,从而形成了更灵活的框架来支持现代深度学习架构。在这两篇文章中我们讨论了有关 JAX 的一些主题,希望对您用使用 JAX 这一框架进行深度学习研究有所帮助。 您也可以在在移动互联网、物联网飞速发展的当下,不论是个人开发者还是大体量的企业服务都广泛采用着各种各样的云计算技术。而支持这些云计算设施的技术当中,又广布着开源产品的身影。亚马逊云科技作为行业中的佼佼者,不仅广泛使用了各类开源技术以支撑复杂而强大的云计算业务,也在参与开源项目的研发与推广中,积极推动着开源技术发展和生态建设。 亚马逊云科技在开源社区中始终保持着积极开放的态度: - **更广泛的合作**:我们通过与开源用户、合作伙伴、社区建立紧密的伙伴关系来促进开源技术发展。在这些合作中,我们通过直接的代码贡献以及技术推广将开源的蛋糕做大,让参与开源的各方都能获得充分发展; - **更高的参与度**:我们通过云计算,一方面从开源中获益,另一方面反哺开源。我们坚信开源生态不断的蓬勃发展,有利于形成良性的循环,能够促进整个开源社区和生态更加繁荣; - **让开源易于使用**:我们将开源技术于自动化、全托管的云计算服务融合在一起,降低开源技术使用成本,推动开源技术在生产中落地和发展。在这个过程中,有更多用户以更低成本使用上开源技术,促进更多行业实现数字化转型。 亚马逊的领导力准则是亚马逊文化的核心,它如同亚马逊的 DNA 融入贯穿每一个重要决策,深深影响着每一位亚麻人、影响着每一位亚马逊的客户、合作伙伴以及每一位亚马逊云科技的构建者。同时,亚马逊的领导力准则对亚马逊与开源的互动方式也产生着深远的影响。 Build On Cloud 视频号观看这一部分的视频演讲: ![image.png](https://dev-media.amazoncloud.cn/05c36b8d1d1f41fab9a3b9e9f8b3f037_image.png "image.png") ## **客户至尚** 亚马逊领导力准则的第一条,也是非常重要的一条就是:客户至尚。 > “以客户为中心的方法有很多优势,但最大的优势是:即便客户表示出愉悦并且认可我们的业务很出色,他们始终还是会存在某种不满足感。” > > “甚至有时候他们自己并没有意识到,客户总想要更好的体验和服务,而您取悦客户的愿望将驱使您代表他们进行创造。” > > —— Jeff Bezos 客户至尚,就是始终以客户为中心。当涉及要交付什么样的产品和服务时,亚马逊云科技首先会倾听客户和开发者的需求。不会为了技术而构建技术,也不会为了创新而贸然创新。因此,90% 的亚马逊云科技的产品路线图都是由客户和开发者的直接反馈推动的。 开源也是如此。多数开发者同时也是开源技术的贡献者和推动者。他们告诉我们,他们喜欢开源包容开放的环境和可创造性,同时也希望从云上获得更广泛何成熟的产品和服务。他们看到服务之间深度集成,会带来更显著的敏捷性和可管理性。 - 开发者说,他们喜欢根据自己选择的标准来决定要运行什么以及如何运行他们的开源技术构建的应用系统。有些时候,他们希望自我管理这些开源工作负载,但有些业务场景,他们会使用由云供应商提供的工具和服务来运行、维护他们的开源应用。 - 对于亚马逊云科技来说,我们需要深刻了解开发者在开发和运行开源软件时具体的问题和需求,并且要帮助他们解决这些问题。 - 亚马逊云科技根据不同应用场景提供多种 Apache Airflow 服务方式:Apache Airflow 是一项由 Airbnb 在 2014 年推出的开源项目,其目的是为了管理日益复杂的数据管理工具、脚本和分析工具,提供一个构建批处理工作流的方案。从功能来看,这是一种可扩展的分布式工作流调度系统,允许将工作流建模为有向无环图(DAGs),通过这种方式简化数据管道中各个处理步骤的创建、编排和监控。项目地址:airflow.apache.org ### **亚马逊云科技提供了自管理方式** 相比在自己的数据中心通过完全开源的 Kubernetes 来部署、运行和管理 Apache Airflow,利用公有云在全托管的容器服务,比如 [Amazon ECS](https://aws.amazon.com/cn/ecs/?trk=cndc-detail) 、[Amazon EKS](https://aws.amazon.com/cn/eks/?trk=cndc-detail) 上部署 、运行以及管理 Airflow,开发者可以从很大程度上节省了对于基础架构的运维、计算资源的配置和预留以及集群资源管理的人力和时间的开销,同时还会获得了更多工具、服务的选择以及更多的灵活性。深度集成的云托管服务也会帮助开发者完成自动化 IT 运维管理、弹性扩展以及高可用等等复杂且繁琐的工作。让他们可以更加专注于 Airflow 本身的开发和运营。 ![image.png](https://dev-media.amazoncloud.cn/491219e2443e460ca0b98125dbd4fd1e_image.png "image.png") 细节请参阅《[在 Amazon Fargate 上运行 Airflow](https://aws.amazon.com/cn/blogs/containers/running-airflow-on-aws-fargate/?trk=cndc-detail)》: **但是自管理方式依旧会面临以下的挑战:** - **部署配置繁琐**。开源软件的配置管理通常是一个完全手动的过程。对于很多开发者来说,面对大规模的部署就需要定制他们自己环境的开发工具。同时对于部署配置过程中的多种选择,选择一个最合适的配置绝非易事; - **扩展难度高**。虽然开发者在云上可以通过虚拟机的自动扩展或容器集群扩展来完成,但这两个配置管理工作本身就有一定的复杂性。开发者需要一定的技术积累,在生产中也会产生相应的项目成本; - **安全风险高**。在安全方面,支持基于角色的认证和授权通常涉及的是一个过程。开发者必须在一个地方进行认证,然后进入 Apache Airflow 的用户界面,去授权该特定人员所属的具体角色(比如管理员或查看者)。很多开发者为了节省配置时间,常常会授权所有的开发者都成为管理员。但从安全的角度来说,这是非常危险的事情,很容易造成项目的管理混乱和人为的安全风险; - **版本升级复杂**。在 Apache Airflow 中有数百个 Python 库,在这些库和其他依赖关系中去跟踪、准确定位哪些版本是稳定的,哪些版本是必须的,哪些版本有安全风险,几乎不可能。而升级 Apache Airflow 的痛苦又往往出现在升级失败后的回滚过程。 ### **亚马逊云科技提供了全托管服务—— MWAA** 为了解决开发者以上痛点和开发过程中挑战,在 2020 年 12 月亚马逊云科技为 Apache Airflow 推出了 Managed Workflows for Apache Airflow(MWAA)的全托管服务。 ![image.png](https://dev-media.amazoncloud.cn/86304fc234bb4f248f49163020dc722a_image.png "image.png") Managed Workflows for Apache Airflow(MWAA) - 通过亚马逊云科技管理控制台、CLI 工具、Amazon CloudFormation 或者 Amazon SDK,开发者在几分钟内就可以完成基础环境的部署,开始账户创建,以及将 “有向无环图” 部署到自己的 Apache Airflow 环境中,不依赖于开发资源或者预置的基础设施。这让开发者可以更轻松地在云中大规模设置和运营端到端数据流水线;这项服务还提供了 Apache Airflow 的上游版本,这有效的解决了配置、扩展以及升级补丁等自管理的困扰,大大提升了生产效率。并且 MWAA 可以与开发者在亚马逊云科技服务账户中的其他服务集成,提供更多的自动化。 - 使用全托管的 MWAA,开发者的数据会更加安全——因为可以借助内置的安全性运行 Apache Airflow。首先工作负载会在 [Amazon VPC](https://aws.amazon.com/cn/vpc/?trk=cndc-detail) 提供的彼此隔离的安全环境中运行。其次数据则会利用 Amazon Key Management Service (KMS) 自动加密,对于 Apache Airflow 的用户管理界面,开发者可以使用 Amazon Identity and Access Management (IAM) 来控制基于角色的身份验证和授权,并提供单点登录访问。 - 借助 MWAA,开发者能免去大规模运行开源 Apache Airflow 时需要的繁琐且复杂的部署、配置,扩展、安全等工作,节省了开发中更多服务工具学习的开销,也降低生产中对应的工程开销。 ### **亚马逊云科技提供了更丰富的生态环境** 亚马逊云科技丰富的生态使得 Apache Airflow 在部署以及运行中获得更多的帮助。开发者还可以选择通过一些亚马逊云科技的合作伙伴使用 Apache Airflow。丰富的生态可以在部署以及运行中获得更多的帮助,这一点,我们从亚马逊云科技 marketplace 提供各种服务中可以看到:https://aws.amazon.com/marketplace/search?searchTerms=airflow&FULFILLMENT_OPTION_TYPE=SAAS&filters=FULFILLMENT_OPTION_TYPE?trk=cndc-detail ![image.png](https://dev-media.amazoncloud.cn/96ff6166dc3548fa9b3ed058748f724e_image.png "image.png") 另外,为了让 Apache Airflow 工作流程的测试和开发工作更加的灵活和敏捷,开发者们希望利用本地资源以及熟悉的 IDE 测试开发 Apache Airflow 的工作流程。为了帮助开发者实现这一目标,亚马逊云科技贡献了一个与之相关的开源项目,[aws-mwaa-local-runner](https://github.com/aws/aws-mwaa-local-runner?trk=cndc-detail)。它可以帮助开发者在提交给实际运行环境之前,在本地利用本地资源,开发和测试他们的 Apache Airflow 工作流程。 当开发者在具体的项目中想要找到并使用源代码时,发现源代码用起来是需要一个过程。当深入了解这些细节时,可以看到,操作开源技术并从中获益,是一项复杂且繁琐的工作。当然这也是为什么开发者喜欢多种选择使用开源技术的原因。对于亚马逊来说,客户至尚,就是始终以客户和开发者为中心,在开源领域,亚马逊始终认为:客户至尚就是让开发者用自己的方式开源,所以无论我们的开发者选择哪种方式,我们终将和他们站在一起。 ![image.png](https://dev-media.amazoncloud.cn/bdc20b580749471c95346d25afdd88e5_image.png "image.png") 我们会在下一篇分享中,为您解读指引亚马逊开源文化的另一领导力准则——最高标准。这是我们打造自管理、全托管服务并保证稳定性、可靠性的重要原则。 欢迎持续关注 Build On Cloud 微信公众号,了解更多面向开发者的技术分享和云开发动态! ## **往期推荐** - [机器学习洞察 | JAX,机器学习领域的“新面孔”](https://dev.amazoncloud.cn/column/article/63e33239e5e05b6ff897ca0e) - [机器学习洞察 | 一文带你“讲透” JAX](https://dev.amazoncloud.cn/column/article/63e33773e5e05b6ff897ca0f) ![Build on cloud.gif](https://dev-media.amazoncloud.cn/16d9a12544f2465f9d60d006993cc8df_Build%20on%20cloud.gif "Build on cloud.gif")
0
目录
关闭