开发者

如何融合不同计算范式?Ray在蚂蚁的规模化应用实践?

指导语:随着互联网技术的发展,新技术不断出现,这产生了意想不到的新问题。制作服务时,可能经常结合各种领域的技术深度,但由于各种原因这些技术往往很难结合。蚂蚁集团基于开源的分布式计算框架Ray构筑融合引擎,在不同场合解决这个问题,取得了一定的成果。现在让我们看看他们是怎么做到的

利用Ray构筑融合引擎

随着互联网的发展,人们倾向于使用新的计算模式来应对不同的场景,出现了OLAP引擎、图计算、流程计算、深度学习等新技术。这意味着在解决一个问题时,可能需要两个或多个技术进行深度结合。

Ray的使用也很简单,在目前比较流行的分布式框架,都有三个比较基础的分布式原语,分布式任务、对象和服务。而常用的面向过程的编程语言中,也刚好有三个基本概念,函数、变量和类。这三个编程语的基本概念正好可以对应分布式框架的原语。Ray系统可以通过简单的变更实现其间的转换。

但在将不同的技术结合起来时,会遇到很多挑战。

●复杂系统的协调。多个核心计算引擎组合时,系统的复杂性大幅度提高,工程师对复杂系统的协调难度也提高了

●性能优化。在进行性能调整工作时,技术人员需要面对各个领域的计算引擎,使系统难以突破性能瓶颈

●开发效率。工程师需要熟悉多个发动机如何合作,即使发生问题也难以定位和调查,开发效率下降。

这是蚂蚁集团开发者_JS百科开发融合计算引擎的原因,其目标是融合各种范围的引擎,提供更好的服务,融合计算是基于分布式计算框架Ray开发的,具有以下特性:

●简单通用的API。

●同时支持多个编程语言。

●弹性和可定制的任务日程。

●分布式状态管理。

●易于使用的错误处理和故障恢复。

●低成本的DevOps。

Ray是伯克利大学RiseLab实验室开始的,蚂蚁金融服务共同参与的开源分布式计算框架,其初衷是使分布式系统的开发和应用更加简单。Ray作为计算框架具有敏捷的调度机制,也可以根据计算对资源的使用需求实现异构调度。

Ray的使用也很简单,现在流行的分布框架有三个比较基础的分布原语、分布任务、对象和服务。在常用的编程语言中,正好有三个基本概念、函数、变量和类别。这三个编程语的基本概念正好可以对应分布式框架的原语。Ray系统可以通过简单的变更实现其间的转换。

左侧是一个简单的例子,在这个函数之前添加@remote修饰符,可以将函数转换为分布任务。任务通过.remote调用执行,返回值是一个变量,又可以参与到其他计算中。

右边是另一个例子,通过加@remote修饰符的方式可以把一个类转变成服务。类别中的方法可以通过.remote调用成为分布式任务,与函数的使用非常相似。通过这种方式,可以实现从单个程序到分布任务的变化,将当地任务调度到远程机器进行。

关于Ray的更多介绍,效率下降:蚂蚁金服如何通过融合计算改造在线机械学习

蚂蚁金融智能技术结构,融合计算运行在Kubernetes集团上,Ray作为分布式计算的基础设施,支持动态图计算、在线机械学习等应用框架

蚂蚁深入参与Ray开源项目的开发,Ray社区贡献居前两位。截至2020年10月,前25名贡献者中有8名蚂蚁工程师,22%的代码由蚂蚁集团贡献。蚂蚁为Ray贡献了包括Java API、容错性GCS等功能特性,并为Ray在大规模落地实践提供了宝贵经验。

Ray在蚂蚁集团的规模化应用实践

蚂蚁在18年Ray项目初期参与项目开发,长期与Ray开源社区密切合作,深入参与Ray核心开发。在蚂蚁内部,我们建立了实时图计算、在线计算、在线机械学习等计算平台,以及多个直接运行在Ray上的分布式业务系统。这些系统广泛应用于微型贷款、风力控制、智能营销、金融智能、金融核心等核心业务领域,多次顺利支持双十一大促进。

下面简要介绍Ray在蚂蚁集团的规模化应用实践。

首先是在线机器学习系统。

传统的在线机器学习系统是一系列子系统组成的任务管道,原始的实时数据需要流经过滤、采样、特征工程、训练和部署等系统,才能发挥作用。这给我们带来了数据一致性、系统稳定性、多平台等挑战。

蚂蚁基于Ray开发从端到端的在线机械学习结构,如下图所示。

该结构包括在线机械学习框架中实时数据处理、分布式训练和模型配置三个部件,通过Ray的分布式计算特性,支持跨编程语言的开发、exactlyonce、自动化训练和模型更新等。

在这个在线学习系统的运行中,可以看到实时数据处理和训练和配置高度集成,外部实时数据转换为微量处理,实时同步交给训练组件进行配置,这个设计可以最大限度地提高系统的效率。这套系统同时支持数据流API和SQL两种调用方式,进一步为业务方降低了使用的学习成本。

另一个落地场景是大规模并行处理。

随着业务场景和需求的不断深化扩展,许多在线应用开始承担分布式计算功能,然而,现有的应用架构缺乏分布式计算系统中的任务调度、集群管理、灵活容错 FO 等能力,导致在业务规模化过程中,容易出现集群负载不均、单机瓶颈、资源无法动态隔离等问题。

银行卡支付一直是支付工具中重要的组成部分。银行卡业务涉及各类金融机构渠道,涉及的机构众多,各个机构的能力各不相同。如何保障用户在大促进期间的高支付成功率,使用户的大促进体验像丝一样顺畅有很大的挑战。银行卡支付发生异常时,必须尽快做出正确的决定,实施应变操作,及时减少异常造成的损失。传统监视警报提供的秒级指标查询延迟较高,特别是对于决策常用的成功率联合计算指标,延迟超过1分钟,决策也只能实现分级熔断能力,稳定性也不能满足大的SLA要求。

为了解决上述问题,我们建立了Ray-MPP在线计算系统,具有端到端极低延迟、高可用性、数据准确性保障等特点。

一方面,可以很好地处理在线计算应用程序中大规模细粒度任务调用的场景,另一方面发挥Ray在运行时动态扩展的特点,使系统具有更好的运行时资源动态隔离能力,在处理任务时具有更强的灵活性。

Ray-MPP应用于金融网络的金融决策链接,为金融决策指标查询计算和决策脚本计算提供分布式计算能力。经过实际场景的检验,Ray-MP在计算性能、稳定性、研究开发性能等各个方面都提高了业务。

未来展望

目前,Ray项目发展势头良好,备受瞩目。除了蚂蚁,Uber、Intel、微软、打工跳跃等公司也积极参加Ray社区。同时,越来越多的开源项目融入Ray生态。

未来,我们将从扩展性、性能、调度、弹性、生态建设等方面继续提高Ray的能力,使Ray成为稳定、高效、易用、通用的分布式计算机箱,期待与业界和社区进行更多的交流探讨。

同时,我们也向应届毕业生招募2021年的实习生,欢迎推荐和推荐。

团队介绍

我们是蚂蚁集团数据技术部,是整个蚂蚁集团数据引擎的底盘,保护整个集团的业务发展。我们打造的蚂蚁集团计算存储基础架构,其技术核心包括金融大数据的开放计算体系,金融级大规模图计算存储,金融智能机器学习平台及系统架构,以及适合金融场景的多模融合计算引擎等方面的研发和攻关。

依托蚂蚁集团丰富的数字金融和数字生活场景,我们致力于打造新一代大数据和AI基础设施。

我们的团队横跨美国硅谷和中国北京、上海、杭州和成都。我们追求的工程师文化是开放、简单、反复、追求效率、技术解决问题!

你想要的我们都有!什么?

●平台好:顶级工程师团队、超大规模数据计算平台、Stanford、Berkeley等一流大学的合作伙伴、SQLFlow等多个自我研究和开源项目。

●成长速度:面对罕见的一流计算场景,挑战世界技术问题,主管兄弟带你去。

●福利好:提供业内竞争力高的工资,考虑各种补助金。

● 活动多:生日会、工程师节日、阿里日、战役庆功、各种团建来了你就知道了!

招聘需求

面向对象:2021.11202.10期间毕业的应届毕业生

●研发技术人员:C/C级、Java、Python、To

●算法技术人员:机械学习

技术方向:图计算、分布式计算、分布式计算、分布式存储、数据库、人工智能

工作城市:杭州、北京、上海、上海、成都

应聘方向:图计师:图计算、分布式计算、分布式、分布式计算、分布式、分布式、分布式、数据库、人工智能

工p>工智能

以最帅/最美的姿势完成招聘过程,期待报价的到来!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜