指導(dǎo)語:隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,新技術(shù)不斷出現(xiàn),這產(chǎn)生了意想不到的新問題。制作服務(wù)時,可能經(jīng)常結(jié)合各種領(lǐng)域的技術(shù)深度,但由于各種原因這些技術(shù)往往很難結(jié)合。螞蟻集團(tuán)基于開源的分布式計(jì)算框架Ray構(gòu)筑融合引擎,在不同場合解決這個問題,取得了一定的成果?,F(xiàn)在讓我們看看他們是怎么做到的
利用Ray構(gòu)筑融合引擎
隨著互聯(lián)網(wǎng)的發(fā)展,人們傾向于使用新的計(jì)算模式來應(yīng)對不同的場景,出現(xiàn)了OLAP引擎、圖計(jì)算、流程計(jì)算、深度學(xué)習(xí)等新技術(shù)。這意味著在解決一個問題時,可能需要兩個或多個技術(shù)進(jìn)行深度結(jié)合。
Ray的使用也很簡單,在目前比較流行的分布式框架,都有三個比較基礎(chǔ)的分布式原語,分布式任務(wù)、對象和服務(wù)。而常用的面向過程的編程語言中,也剛好有三個基本概念,函數(shù)、變量和類。這三個編程語的基本概念正好可以對應(yīng)分布式框架的原語。Ray系統(tǒng)可以通過簡單的變更實(shí)現(xiàn)其間的轉(zhuǎn)換。
但在將不同的技術(shù)結(jié)合起來時,會遇到很多挑戰(zhàn)。
●復(fù)雜系統(tǒng)的協(xié)調(diào)。多個核心計(jì)算引擎組合時,系統(tǒng)的復(fù)雜性大幅度提高,工程師對復(fù)雜系統(tǒng)的協(xié)調(diào)難度也提高了
●性能優(yōu)化。在進(jìn)行性能調(diào)整工作時,技術(shù)人員需要面對各個領(lǐng)域的計(jì)算引擎,使系統(tǒng)難以突破性能瓶頸
●開發(fā)效率。工程師需要熟悉多個發(fā)動機(jī)如何合作,即使發(fā)生問題也難以定位和調(diào)查,開發(fā)效率下降。
這是螞蟻集團(tuán)開發(fā)融合計(jì)算引擎的原因,其目標(biāo)是融合各種范圍的引擎,提供更好的服務(wù),融合計(jì)算是基于分布式計(jì)算框架Ray開發(fā)的,具有以下特性:
●簡單通用的API。
●同時支持多個編程語言。
●彈性和可定制的任務(wù)日程。
●分布式狀態(tài)管理。
●易于使用的錯誤處理和故障恢復(fù)。
●低成本的DevOps。
Ray是伯克利大學(xué)RiseLab實(shí)驗(yàn)室開始的,螞蟻金融服務(wù)共同參與的開源分布式計(jì)算框架,其初衷是使分布式系統(tǒng)的開發(fā)和應(yīng)用更加簡單。Ray作為計(jì)算框架具有敏捷的調(diào)度機(jī)制,也可以根據(jù)計(jì)算對資源的使用需求實(shí)現(xiàn)異構(gòu)調(diào)度。
Ray的使用也很簡單,現(xiàn)在流行的分布框架有三個比較基礎(chǔ)的分布原語、分布任務(wù)、對象和服務(wù)。在常用的編程語言中,正好有三個基本概念、函數(shù)、變量和類別。這三個編程語的基本概念正好可以對應(yīng)分布式框架的原語。Ray系統(tǒng)可以通過簡單的變更實(shí)現(xiàn)其間的轉(zhuǎn)換。
左側(cè)是一個簡單的例子,在這個函數(shù)之前添加@remote修飾符,可以將函數(shù)轉(zhuǎn)換為分布任務(wù)。任務(wù)通過.remote調(diào)用執(zhí)行,返回值是一個變量,又可以參與到其他計(jì)算中。
右邊是另一個例子,通過加@remote修飾符的方式可以把一個類轉(zhuǎn)變成服務(wù)。類別中的方法可以通過.remote調(diào)用成為分布式任務(wù),與函數(shù)的使用非常相似。通過這種方式,可以實(shí)現(xiàn)從單個程序到分布任務(wù)的變化,將當(dāng)?shù)厝蝿?wù)調(diào)度到遠(yuǎn)程機(jī)器進(jìn)行。
關(guān)于Ray的更多介紹,效率下降:螞蟻金服如何通過融合計(jì)算改造在線機(jī)械學(xué)習(xí)
螞蟻金融智能技術(shù)結(jié)構(gòu),融合計(jì)算運(yùn)行在Kubernetes集團(tuán)上,Ray作為分布式計(jì)算的基礎(chǔ)設(shè)施,支持動態(tài)圖計(jì)算、在線機(jī)械學(xué)習(xí)等應(yīng)用框架
螞蟻深入?yún)⑴cRay開源項(xiàng)目的開發(fā),Ray社區(qū)貢獻(xiàn)居前兩位。截至2020年10月,前25名貢獻(xiàn)者中有8名螞蟻工程師,22%的代碼由螞蟻集團(tuán)貢獻(xiàn)。螞蟻為Ray貢獻(xiàn)了包括Java API、容錯性GCS等功能特性,并為Ray在大規(guī)模落地實(shí)踐提供了寶貴經(jīng)驗(yàn)。
Ray在螞蟻集團(tuán)的規(guī)?;瘧?yīng)用實(shí)踐
螞蟻在18年Ray項(xiàng)目初期參與項(xiàng)目開發(fā),長期與Ray開源社區(qū)密切合作,深入?yún)⑴cRay核心開發(fā)。在螞蟻內(nèi)部,我們建立了實(shí)時圖計(jì)算、在線計(jì)算、在線機(jī)械學(xué)習(xí)等計(jì)算平臺,以及多個直接運(yùn)行在Ray上的分布式業(yè)務(wù)系統(tǒng)。這些系統(tǒng)廣泛應(yīng)用于微型貸款、風(fēng)力控制、智能營銷、金融智能、金融核心等核心業(yè)務(wù)領(lǐng)域,多次順利支持雙十一大促進(jìn)。
下面簡要介紹Ray在螞蟻集團(tuán)的規(guī)?;瘧?yīng)用實(shí)踐。
首先是在線機(jī)器學(xué)習(xí)系統(tǒng)。
傳統(tǒng)的在線機(jī)器學(xué)習(xí)系統(tǒng)是一系列子系統(tǒng)組成的任務(wù)管道,原始的實(shí)時數(shù)據(jù)需要流經(jīng)過濾、采樣、特征工程、訓(xùn)練和部署等系統(tǒng),才能發(fā)揮作用。這給我們帶來了數(shù)據(jù)一致性、系統(tǒng)穩(wěn)定性、多平臺等挑戰(zhàn)。
螞蟻基于Ray開發(fā)從端到端的在線機(jī)械學(xué)習(xí)結(jié)構(gòu),如下圖所示。
該結(jié)構(gòu)包括在線機(jī)械學(xué)習(xí)框架中實(shí)時數(shù)據(jù)處理、分布式訓(xùn)練和模型配置三個部件,通過Ray的分布式計(jì)算特性,支持跨編程語言的開發(fā)、exactlyonce、自動化訓(xùn)練和模型更新等。
在這個在線學(xué)習(xí)系統(tǒng)的運(yùn)行中,可以看到實(shí)時數(shù)據(jù)處理和訓(xùn)練和配置高度集成,外部實(shí)時數(shù)據(jù)轉(zhuǎn)換為微量處理,實(shí)時同步交給訓(xùn)練組件進(jìn)行配置,這個設(shè)計(jì)可以最大限度地提高系統(tǒng)的效率。這套系統(tǒng)同時支持?jǐn)?shù)據(jù)流API和SQL兩種調(diào)用方式,進(jìn)一步為業(yè)務(wù)方降低了使用的學(xué)習(xí)成本。
另一個落地場景是大規(guī)模并行處理。
隨著業(yè)務(wù)場景和需求的不斷深化擴(kuò)展,許多在線應(yīng)用開始承擔(dān)分布式計(jì)算功能,然而,現(xiàn)有的應(yīng)用架構(gòu)缺乏分布式計(jì)算系統(tǒng)中的任務(wù)調(diào)度、集群管理、靈活容錯 FO 等能力,導(dǎo)致在業(yè)務(wù)規(guī)?;^程中,容易出現(xiàn)集群負(fù)載不均、單機(jī)瓶頸、資源無法動態(tài)隔離等問題。
銀行卡支付一直是支付工具中重要的組成部分。銀行卡業(yè)務(wù)涉及各類金融機(jī)構(gòu)渠道,涉及的機(jī)構(gòu)眾多,各個機(jī)構(gòu)的能力各不相同。如何保障用戶在大促進(jìn)期間的高支付成功率,使用戶的大促進(jìn)體驗(yàn)像絲一樣順暢有很大的挑戰(zhàn)。銀行卡支付發(fā)生異常時,必須盡快做出正確的決定,實(shí)施應(yīng)變操作,及時減少異常造成的損失。傳統(tǒng)監(jiān)視警報(bào)提供的秒級指標(biāo)查詢延遲較高,特別是對于決策常用的成功率聯(lián)合計(jì)算指標(biāo),延遲超過1分鐘,決策也只能實(shí)現(xiàn)分級熔斷能力,穩(wěn)定性也不能滿足大的SLA要求。
為了解決上述問題,我們建立了Ray-MPP在線計(jì)算系統(tǒng),具有端到端極低延遲、高可用性、數(shù)據(jù)準(zhǔn)確性保障等特點(diǎn)。
一方面,可以很好地處理在線計(jì)算應(yīng)用程序中大規(guī)模細(xì)粒度任務(wù)調(diào)用的場景,另一方面發(fā)揮Ray在運(yùn)行時動態(tài)擴(kuò)展的特點(diǎn),使系統(tǒng)具有更好的運(yùn)行時資源動態(tài)隔離能力,在處理任務(wù)時具有更強(qiáng)的靈活性。
Ray-MPP應(yīng)用于金融網(wǎng)絡(luò)的金融決策鏈接,為金融決策指標(biāo)查詢計(jì)算和決策腳本計(jì)算提供分布式計(jì)算能力。經(jīng)過實(shí)際場景的檢驗(yàn),Ray-MP在計(jì)算性能、穩(wěn)定性、研究開發(fā)性能等各個方面都提高了業(yè)務(wù)。
未來展望
目前,Ray項(xiàng)目發(fā)展勢頭良好,備受矚目。除了螞蟻,Uber、Intel、微軟、打工跳躍等公司也積極參加Ray社區(qū)。同時,越來越多的開源項(xiàng)目融入Ray生態(tài)。
未來,我們將從擴(kuò)展性、性能、調(diào)度、彈性、生態(tài)建設(shè)等方面繼續(xù)提高Ray的能力,使Ray成為穩(wěn)定、高效、易用、通用的分布式計(jì)算機(jī)箱,期待與業(yè)界和社區(qū)進(jìn)行更多的交流探討。
同時,我們也向應(yīng)屆畢業(yè)生招募2021年的實(shí)習(xí)生,歡迎推薦和推薦。
團(tuán)隊(duì)介紹
我們是螞蟻集團(tuán)數(shù)據(jù)技術(shù)部,是整個螞蟻集團(tuán)數(shù)據(jù)引擎的底盤,保護(hù)整個集團(tuán)的業(yè)務(wù)發(fā)展。我們打造的螞蟻集團(tuán)計(jì)算存儲基礎(chǔ)架構(gòu),其技術(shù)核心包括金融大數(shù)據(jù)的開放計(jì)算體系,金融級大規(guī)模圖計(jì)算存儲,金融智能機(jī)器學(xué)習(xí)平臺及系統(tǒng)架構(gòu),以及適合金融場景的多模融合計(jì)算引擎等方面的研發(fā)和攻關(guān)。
依托螞蟻集團(tuán)豐富的數(shù)字金融和數(shù)字生活場景,我們致力于打造新一代大數(shù)據(jù)和AI基礎(chǔ)設(shè)施。
我們的團(tuán)隊(duì)橫跨美國硅谷和中國北京、上海、杭州和成都。我們追求的工程師文化是開放、簡單、反復(fù)、追求效率、技術(shù)解決問題!
你想要的我們都有!什么?
●平臺好:頂級工程師團(tuán)隊(duì)、超大規(guī)模數(shù)據(jù)計(jì)算平臺、Stanford、Berkeley等一流大學(xué)的合作伙伴、SQLFlow等多個自我研究和開源項(xiàng)目。
●成長速度:面對罕見的一流計(jì)算場景,挑戰(zhàn)世界技術(shù)問題,主管兄弟帶你去。
●福利好:提供業(yè)內(nèi)競爭力高的工資,考慮各種補(bǔ)助金。
● 活動多:生日會、工程師節(jié)日、阿里日、戰(zhàn)役慶功、各種團(tuán)建來了你就知道了!
招聘需求
面向?qū)ο?2021.11202.10期間畢業(yè)的應(yīng)屆畢業(yè)生
●研發(fā)技術(shù)人員:C/C級、Java、Python、To
●算法技術(shù)人員:機(jī)械學(xué)習(xí)
技術(shù)方向:圖計(jì)算、分布式計(jì)算、分布式計(jì)算、分布式存儲、數(shù)據(jù)庫、人工智能
工作城市:杭州、北京、上海、上海、成都
應(yīng)聘方向:圖計(jì)師:圖計(jì)算、分布式計(jì)算、分布式、分布式計(jì)算、分布式、分布式、分布式、數(shù)據(jù)庫、人工智能
工p>工智能
以最帥/最美的姿勢完成招聘過程,期待報(bào)價(jià)的到來!