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

JAX 是一种越来越流行的库,它支持原生 Python 或 NumPy 函数的可组合函数转换,可用于高性能数值计算和机器学习研究。JAX 提供了编写 NumPy 程序的能力,这些程序可以使用 GPU/TPU 自动差分和加速,从而形成了更灵活的框架来支持现代深度学习架构。在这两篇文章中我们讨论了有关 JAX 的一些主题,希望对您用使用 JAX 这一框架进行深度学习研究有所帮助。

亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,点这里让它成为你的技术宝库!

 

您也可以在在移动互联网、物联网飞速发展的当下,不论是个人开发者还是大体量的企业服务都广泛采用着各种各样的云计算技术。而支持这些云计算设施的技术当中,又广布着开源产品的身影。亚马逊云科技作为行业中的佼佼者,不仅广泛使用了各类开源技术以支撑复杂而强大的云计算业务,也在参与开源项目的研发与推广中,积极推动着开源技术发展和生态建设。

亚马逊云科技在开源社区中始终保持着积极开放的态度:

  • 更广泛的合作:我们通过与开源用户、合作伙伴、社区建立紧密的伙伴关系来促进开源技术发展。在这些合作中,我们通过直接的代码贡献以及技术推广将开源的蛋糕做大,让参与开源的各方都能获得充分发展;

  • 更高的参与度:我们通过云计算,一方面从开源中获益,另一方面反哺开源。我们坚信开源生态不断的蓬勃发展,有利于形成良性的循环,能够促进整个开源社区和生态更加繁荣;

  • 让开源易于使用:我们将开源技术于自动化、全托管的云计算服务融合在一起,降低开源技术使用成本,推动开源技术在生产中落地和发展。在这个过程中,有更多用户以更低成本使用上开源技术,促进更多行业实现数字化转型。

亚马逊的领导力准则是亚马逊文化的核心,它如同亚马逊的 DNA 融入贯穿每一个重要决策,深深影响着每一位亚麻人、影响着每一位亚马逊的客户、合作伙伴以及每一位亚马逊云科技的构建者。同时,亚马逊的领导力准则对亚马逊与开源的互动方式也产生着深远的影响。 Build On Cloud 视频号观看这一部分的视频演讲:

客户至尚

亚马逊领导力准则的第一条,也是非常重要的一条就是:客户至尚。

“以客户为中心的方法有很多优势,但最大的优势是:即便客户表示出愉悦并且认可我们的业务很出色,他们始终还是会存在某种不满足感。”

“甚至有时候他们自己并没有意识到,客户总想要更好的体验和服务,而您取悦客户的愿望将驱使您代表他们进行创造。”

—— Jeff Bezos

客户至尚,就是始终以客户为中心。当涉及要交付什么样的产品和服务时,亚马逊云科技首先会倾听客户和开发者的需求。不会为了技术而构建技术,也不会为了创新而贸然创新。因此,90% 的亚马逊云科技的产品路线图都是由客户和开发者的直接反馈推动的。

开源也是如此。多数开发者同时也是开源技术的贡献者和推动者。他们告诉我们,他们喜欢开源包容开放的环境和可创造性,同时也希望从云上获得更广泛何成熟的产品和服务。他们看到服务之间深度集成,会带来更显著的敏捷性和可管理性。

  • 开发者说,他们喜欢根据自己选择的标准来决定要运行什么以及如何运行他们的开源技术构建的应用系统。有些时候,他们希望自我管理这些开源工作负载,但有些业务场景,他们会使用由云供应商提供的工具和服务来运行、维护他们的开源应用。

  • 对于亚马逊云科技来说,我们需要深刻了解开发者在开发和运行开源软件时具体的问题和需求,并且要帮助他们解决这些问题。

  • 亚马逊云科技根据不同应用场景提供多种 Apache Airflow 服务方式:Apache Airflow 是一项由 Airbnb 在 2014 年推出的开源项目,其目的是为了管理日益复杂的数据管理工具、脚本和分析工具,提供一个构建批处理工作流的方案。从功能来看,这是一种可扩展的分布式工作流调度系统,允许将工作流建模为有向无环图(DAGs),通过这种方式简化数据管道中各个处理步骤的创建、编排和监控。项目地址:airflow.apache.org

亚马逊云科技提供了自管理方式

相比在自己的数据中心通过完全开源的 Kubernetes 来部署、运行和管理 Apache Airflow,利用公有云在全托管的容器服务,比如 Amazon ECS 、Amazon EKS 上部署 、运行以及管理 Airflow,开发者可以从很大程度上节省了对于基础架构的运维、计算资源的配置和预留以及集群资源管理的人力和时间的开销,同时还会获得了更多工具、服务的选择以及更多的灵活性。深度集成的云托管服务也会帮助开发者完成自动化 IT 运维管理、弹性扩展以及高可用等等复杂且繁琐的工作。让他们可以更加专注于 Airflow 本身的开发和运营。

细节请参阅《在 Amazon Fargate 上运行 Airflow》:

但是自管理方式依旧会面临以下的挑战:

  • 部署配置繁琐。开源软件的配置管理通常是一个完全手动的过程。对于很多开发者来说,面对大规模的部署就需要定制他们自己环境的开发工具。同时对于部署配置过程中的多种选择,选择一个最合适的配置绝非易事;

  • 扩展难度高。虽然开发者在云上可以通过虚拟机的自动扩展或容器集群扩展来完成,但这两个配置管理工作本身就有一定的复杂性。开发者需要一定的技术积累,在生产中也会产生相应的项目成本;

  • 安全风险高。在安全方面,支持基于角色的认证和授权通常涉及的是一个过程。开发者必须在一个地方进行认证,然后进入 Apache Airflow 的用户界面,去授权该特定人员所属的具体角色(比如管理员或查看者)。很多开发者为了节省配置时间,常常会授权所有的开发者都成为管理员。但从安全的角度来说,这是非常危险的事情,很容易造成项目的管理混乱和人为的安全风险;

  • 版本升级复杂。在 Apache Airflow 中有数百个 Python 库,在这些库和其他依赖关系中去跟踪、准确定位哪些版本是稳定的,哪些版本是必须的,哪些版本有安全风险,几乎不可能。而升级 Apache Airflow 的痛苦又往往出现在升级失败后的回滚过程。

亚马逊云科技提供了全托管服务—— MWAA

为了解决开发者以上痛点和开发过程中挑战,在 2020 年 12 月亚马逊云科技为 Apache Airflow 推出了 Managed Workflows for Apache Airflow(MWAA)的全托管服务。

Managed Workflows for Apache Airflow(MWAA)

  • 通过亚马逊云科技管理控制台、CLI 工具、Amazon CloudFormation 或者 Amazon SDK,开发者在几分钟内就可以完成基础环境的部署,开始账户创建,以及将 “有向无环图” 部署到自己的 Apache Airflow 环境中,不依赖于开发资源或者预置的基础设施。这让开发者可以更轻松地在云中大规模设置和运营端到端数据流水线;这项服务还提供了 Apache Airflow 的上游版本,这有效的解决了配置、扩展以及升级补丁等自管理的困扰,大大提升了生产效率。并且 MWAA 可以与开发者在亚马逊云科技服务账户中的其他服务集成,提供更多的自动化。

  • 使用全托管的 MWAA,开发者的数据会更加安全——因为可以借助内置的安全性运行 Apache Airflow。首先工作负载会在 Amazon VPC 提供的彼此隔离的安全环境中运行。其次数据则会利用 Amazon Key Management Service (KMS) 自动加密,对于 Apache Airflow 的用户管理界面,开发者可以使用 Amazon Identity and Access Management (IAM) 来控制基于角色的身份验证和授权,并提供单点登录访问。

  • 借助 MWAA,开发者能免去大规模运行开源 Apache Airflow 时需要的繁琐且复杂的部署、配置,扩展、安全等工作,节省了开发中更多服务工具学习的开销,也降低生产中对应的工程开销。

亚马逊云科技提供了更丰富的生态环境

亚马逊云科技丰富的生态使得 Apache Airflow 在部署以及运行中获得更多的帮助。开发者还可以选择通过一些亚马逊云科技的合作伙伴使用 Apache Airflow。丰富的生态可以在部署以及运行中获得更多的帮助,这一点,我们从亚马逊云科技 marketplace 提供各种服务中可以看到:AWS Marketplace: Search Results

另外,为了让 Apache Airflow 工作流程的测试和开发工作更加的灵活和敏捷,开发者们希望利用本地资源以及熟悉的 IDE 测试开发 Apache Airflow 的工作流程。为了帮助开发者实现这一目标,亚马逊云科技贡献了一个与之相关的开源项目,aws-mwaa-local-runner。它可以帮助开发者在提交给实际运行环境之前,在本地利用本地资源,开发和测试他们的 Apache Airflow 工作流程。

当开发者在具体的项目中想要找到并使用源代码时,发现源代码用起来是需要一个过程。当深入了解这些细节时,可以看到,操作开源技术并从中获益,是一项复杂且繁琐的工作。当然这也是为什么开发者喜欢多种选择使用开源技术的原因。对于亚马逊来说,客户至尚,就是始终以客户和开发者为中心,在开源领域,亚马逊始终认为:客户至尚就是让开发者用自己的方式开源,所以无论我们的开发者选择哪种方式,我们终将和他们站在一起。

我们会在下一篇分享中,为您解读指引亚马逊开源文化的另一领导力准则——最高标准。这是我们打造自管理、全托管服务并保证稳定性、可靠性的重要原则。

欢迎持续关注 Build On Cloud 微信公众号,了解更多面向开发者的技术分享和云开发动态!

往期推荐

  • 机器学习洞察 | JAX,机器学习领域的“新面孔”
  • 机器学习洞察 | 一文带你“讲透” JAX

 

 

作者郑予彬

亚马逊云科技资深开发者布道师,20 年 ICT 行业和数字化转型实践积累,专注于亚马逊云科技云原生、云安全技术领域。18 年架构师经验,致力于为金融、教育、制造以及世界 500 强企业用户提供数据中心建设以及软件定义数据中心等解决方案的咨询及技术落地。

 文章来源:https://dev.amazoncloud.cn/column/article/63e33987e5e05b6ff897ca10?sc_medium=regulartraffic&sc_campaign=crossplatform&sc_channel=CSDN

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/15201.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Stable Diffusion 使用 SadTalker 生成图片数字人

Heygen和D-ID等照片转视频的工具,都需要在线付费使用。本次介绍一个SadTalker数字人。SadTalker有多种使用方式,包括完整安装程序和stable diffusion插件模式。安装程序操作较繁琐,因此推荐stable diffusion插件模式。 文章目录 SadTalker安…

最小栈——力扣155

方法&#xff1a;辅助栈 这些函数中只有求最小值函数需要借助辅助栈 代码如下&#xff1a; class MinStack {stack<int> x_stack;stack<int> min_stack; public:MinStack() {min_stack.push(INT_MAX);}void push(int val) {x_stack.push(val);min_stack.push(…

Java的异常Exception

异常 1、异常概述与异常体系结构 1.1、异常概述 异常&#xff1a;在Java语言中&#xff0c;将程序执行中发生的不正常情况称为“异常”&#xff08;开发过程中的语法错误和逻辑错误不是异常&#xff09; Java程序在执行过程中所发生的异常事件可分为两类&#xff1a; Erro…

MachineLearningWu_7+8_LogisticRegression/Classification

x.1 logistic regression 对于诸如分辨细胞是恶性肿瘤细胞与否的类似分类问题&#xff0c;我们使用Linear Regression的模型并不合适&#xff0c;所以引入Logistic Regression的模型&#xff0c;并绘制decision boundary&#xff0c;如下&#xff0c; Classification的最后一层…

基于Java+Swing+Mysql实现图书管理系统V2.0

基于JavaSwingMysql实现图书管理系统V2.0 一、系统介绍二、功能展示1.项目内容2.项目骨架3.数据库表4.主界面5.添加6、修改7、查询8、删除 四、其它1.其他系统实现五.获取源码 一、系统介绍 本系统主要有对图书信息的增删改查操作功能。 项目类型&#xff1a;Java SE项目&…

多元分类预测 | Matlab 粒子群算法(PSO)优化xgboost的分类预测,多输入单输出模型。PSO-xgboost分类预测模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元分类预测 | Matlab 粒子群算法(PSO)优化xgboost的分类预测,多输入单输出模型。PSO-xgboost分类预测模型 多特征输入单输出的二分类及多分类模型。程序内注释详细,直接替换数据就可以用。程序语言为matlab,程…

软考高级之系统架构师系列之系统配置与性能评价、信息化基础

系统配置与性能评价 性能 计算机系统的性能一般包括两个大的方面&#xff1a; 可用性&#xff0c;也就是计算机系统能正常工作的时间&#xff0c;其指标可以是能够持续工作的时间长度&#xff0c;也可以是在一段时间内&#xff0c;能正常工作的时间所占的百分比处理能力&…

网页版代码编辑器实现

接着前几天写的博客https://blog.csdn.net/woyebuzhidao321/article/details/131495855&#xff0c;提到了涉及vscode网页版工作区创建的api&#xff0c;这两天一时兴起&#xff0c;搞了一个网页版的代码编辑器&#xff0c;如果在2020年10月之前&#xff0c;实现一个网页版代码…

【Java语法小记】求字符串中某个字符的数量——IntStream流的使用

文章目录 引入需求代码原理解读s.chars()IntStream filter​(IntPredicate predicate)long count()补充&#xff1a;IntStream peek​(IntConsumer action) 流操作和管道 引入需求 从一段代码引入 return s.length() - (int) s.chars().filter(c -> c S).count(); 其中 (…

cmake流程控制---cmake数学计算操作和if命令

目录 cmake 数学计算操作 demo if命令 基本表达式 逻辑表达式(NOT AND OR) 比较表达式 正则表达式 demo 文件系统相关 判断是否存在的表达式 cmake 数学计算操作 有时候我们需要对cmake变量之间进行数学运算,这时候cmake提供了math()这个命令,命令格式如下: math(…

SQL-每日一题【584.寻找用户推荐人】

题目 给定表 customer &#xff0c;里面保存了所有客户信息和他们的推荐人。 写一个查询语句&#xff0c;返回一个客户列表&#xff0c;列表中客户的推荐人的编号都 不是 2。 对于上面的示例数据&#xff0c;结果为&#xff1a; 解题思路 1.题目要求查询列表中客户的推荐人的…

RTL8309M实现VLAN功能-驱动编进内核

部分硬件实现图 一、使内核支持802.1Q功能 1、使用内核kernel版本4.19.232 2、make menuconfig 配置内核 3、进入Networking support 4、进入Networking options 5、把这些都编进内核 6、点击保存退出 CONFIG_GARPy CONFIG_MRPy CONFIG_BRIDGE_VLAN_FILTERINGy CONFIG_VLAN…