摘要:阿里巴巴資深技術(shù)專家毗盧毗盧,阿里巴巴資深技術(shù)專家,主導(dǎo)設(shè)計(jì)了框架,并基于該框架完成交易平臺架構(gòu)升級改造,目前負(fù)責(zé)商品中心,專注電商領(lǐng)域業(yè)務(wù)建模與工程交付相結(jié)合的研究與平臺推廣。
摘要: 本文是《2017雙11交易系統(tǒng)TMF2.0技術(shù)揭秘》演講整理,主要講解了基于TMF2.0框架改造的交易平臺,通過業(yè)務(wù)管理域與運(yùn)行域分離、業(yè)務(wù)與業(yè)務(wù)的隔離架構(gòu),大幅度提高了業(yè)務(wù)在可擴(kuò)展性、研發(fā)效率以及可維護(hù)性問題,同時(shí)以更好的開放模式,讓業(yè)務(wù)方能自助進(jìn)行無侵入的需求開發(fā)。
12月13-14日,由云棲社區(qū)與阿里巴巴技術(shù)協(xié)會(huì)共同主辦的《2017阿里巴巴雙11技術(shù)十二講》順利結(jié)束,集中為大家分享了2017雙11背后的黑科技。本文是《2017雙11交易系統(tǒng)TMF2.0技術(shù)揭秘》演講整理,主要講解了基于TMF2.0框架改造的交易平臺,通過業(yè)務(wù)管理域與運(yùn)行域分離、業(yè)務(wù)與業(yè)務(wù)的隔離架構(gòu),大幅度提高了業(yè)務(wù)在可擴(kuò)展性、研發(fā)效率以及可維護(hù)性問題,同時(shí)以更好的開放模式,讓業(yè)務(wù)方能自助進(jìn)行無侵入的需求開發(fā)。內(nèi)容如下。
阿里巴巴資深技術(shù)專家 毗盧
毗盧,阿里巴巴資深技術(shù)專家,主導(dǎo)設(shè)計(jì)了TMF2.0框架,并基于該框架完成交易平臺架構(gòu)升級改造,目前負(fù)責(zé)商品中心,專注電商領(lǐng)域業(yè)務(wù)建模與工程交付相結(jié)合的研究與平臺推廣。
交易平臺遇到的挑戰(zhàn)
在剛剛過去的2017雙11,交易峰值達(dá)到了32.5萬筆/秒,這給整個(gè)交易系統(tǒng)帶來了非常大的挑戰(zhàn)。一方面,系統(tǒng)需要支撐全集團(tuán)幾十個(gè)事業(yè)部的所有交易類需求:要考慮如何能更快響應(yīng)需求、加快發(fā)布周期;如何能為新小業(yè)務(wù)提供快速支撐、降低準(zhǔn)入門檻;是否足夠開放使得業(yè)務(wù)方能做到自助式擴(kuò)展;新需求是否已經(jīng)在其他事業(yè)部有可復(fù)用資產(chǎn)等問題。另一方面,整個(gè)電商體系涉及的應(yīng)用高達(dá)7000+:要考慮需求的評估是否具有全鏈路視角;業(yè)務(wù)需求的技術(shù)評估是否分析全面、技術(shù)方案的影響范圍是否評估到位;業(yè)務(wù)的全鏈路穩(wěn)定性保障、調(diào)用鏈路監(jiān)控、強(qiáng)弱依賴等問題。此外面對每天幾百個(gè)業(yè)務(wù)需求,500+個(gè)獨(dú)立的發(fā)布變更:要考慮各業(yè)務(wù)方的需求發(fā)布是否會(huì)相互產(chǎn)生影響;需求代碼是否對平臺有侵入、導(dǎo)致平臺腐化;高頻率的需求發(fā)布下如何管控質(zhì)量;能否按業(yè)務(wù)維度進(jìn)行業(yè)務(wù)監(jiān)控、故障分析等等。
TMF2.0解決的關(guān)鍵問題
面對這些挑戰(zhàn),TMF2.0框架需要六大關(guān)鍵問題。
業(yè)務(wù)可視化:平臺能力、業(yè)務(wù)規(guī)則決定是否對外透出;
需求結(jié)構(gòu)化支持:基于透出的業(yè)務(wù)能力、已有的業(yè)務(wù)規(guī)則完成需求結(jié)構(gòu)化分解降低溝通成本;
業(yè)務(wù)配置化:這是可視化的前提,要在需求明確的情況下在線配置業(yè)務(wù)、快速發(fā)布上線;
業(yè)務(wù)測試一體化:根據(jù)修改的代碼進(jìn)行自動(dòng)化用例篩選、自動(dòng)化測試;
業(yè)務(wù)監(jiān)控:以精細(xì)化的業(yè)務(wù)維度進(jìn)行監(jiān)控,而不僅僅局限于交易大盤;
故障排查:當(dāng)業(yè)務(wù)故障時(shí)快速拿到故障快照、還原故障現(xiàn)場以及迅速定位問題原因。
針對以上六大關(guān)鍵問題,TMF2.0的關(guān)鍵設(shè)計(jì)點(diǎn)有以下三個(gè)層面。
首先,需要實(shí)現(xiàn)業(yè)務(wù)/平臺分離插件化架構(gòu)。平臺提供插件包注冊機(jī)制,實(shí)現(xiàn)業(yè)務(wù)方插件包在運(yùn)行期的注冊。業(yè)務(wù)代碼只允許存在于插件包中,與平臺代碼嚴(yán)格分離。業(yè)務(wù)包的代碼配置庫也與平臺的代碼庫分離,通過二方包的方式,提供給容器加載。
其次,要統(tǒng)一業(yè)務(wù)身份。平臺需要能有按“業(yè)務(wù)身份”進(jìn)行業(yè)務(wù)與業(yè)務(wù)之間邏輯隔離的能力,而不是傳統(tǒng)SPI架構(gòu)不區(qū)分業(yè)務(wù)身份,簡單過濾的方式。如何設(shè)計(jì)這個(gè)業(yè)務(wù)身份,也成為業(yè)務(wù)與業(yè)務(wù)之間隔離架構(gòu)的關(guān)鍵。
另外,要注重管理域與運(yùn)行域分離。業(yè)務(wù)邏輯不能依靠運(yùn)行期動(dòng)態(tài)計(jì)算,要能在靜態(tài)期進(jìn)行定義并可視化呈現(xiàn)。業(yè)務(wù)定義中出現(xiàn)的規(guī)則疊加沖突,也在靜態(tài)器進(jìn)行沖突決策。在運(yùn)行期,嚴(yán)格按照靜態(tài)器定義的業(yè)務(wù)規(guī)則、沖突決策策略執(zhí)行。
下文將針對這三塊的內(nèi)容分別展開來詳細(xì)介紹。
業(yè)務(wù)定制包與平臺分離的架構(gòu)
如上所示的業(yè)務(wù)定制包與平臺分離架構(gòu)可以分為四個(gè)層次。最底層是交易規(guī)范層,包括一些交易模型、交易領(lǐng)域的劃分、業(yè)務(wù)領(lǐng)域的劃分、以及交易啟動(dòng)環(huán)境下的配置項(xiàng)?;谶@個(gè)理論模型,就可以進(jìn)行一些定義及規(guī)范工作,比如接口定義、流程規(guī)范、模型規(guī)范等,而且其中的很多內(nèi)容都可以在不同的領(lǐng)域進(jìn)行復(fù)用。
上面一層是解決方案層。大家都知道阿里巴巴目前正在走國際化的戰(zhàn)略,所以面對不同的市場會(huì)構(gòu)建不同的解決方案,不同的解決方案中也就有自己不同的業(yè)務(wù)玩法、業(yè)務(wù)邏輯。所以要將不同的市場解決方案和他們自身的流程、規(guī)則結(jié)合起來。但是這一過程中會(huì)發(fā)現(xiàn),不同的市場解決方案會(huì)有很多可以復(fù)用的地方,比如營銷模式。所以形成的可復(fù)用基礎(chǔ)實(shí)現(xiàn)就可以在不同的解決方案中得到復(fù)用,所那么在面對不同的市場時(shí)就不用考慮可復(fù)用基礎(chǔ)實(shí)現(xiàn)的內(nèi)容,只需要關(guān)注市場相關(guān)的業(yè)務(wù)就可以了。
往上一層是業(yè)務(wù)定制層。即使是在一個(gè)市場內(nèi),也會(huì)有各種細(xì)分的定制玩法,這些不同的細(xì)分點(diǎn)就會(huì)有各自不同的業(yè)務(wù)邏輯,這就是制定業(yè)務(wù)定制層的原因。團(tuán)隊(duì)會(huì)根據(jù)底層的需求點(diǎn)來進(jìn)行一些業(yè)務(wù)定制包的組裝,就可以實(shí)現(xiàn)不同的業(yè)務(wù)邏輯和玩法了。
在這樣一個(gè)復(fù)雜的分離架構(gòu)中,最重要的是要將不同層次間的職責(zé)劃分清晰,整個(gè)代碼都嚴(yán)格地、有意識地進(jìn)行分離。所以在最后的部署過程中,首先要完成底層業(yè)務(wù)的復(fù)用,然后形成不同市場的解決方案,再在解決方案下對不同的業(yè)務(wù)實(shí)現(xiàn)差異化的點(diǎn)。
業(yè)務(wù)身份定義標(biāo)準(zhǔn)化
上面所講的是業(yè)務(wù)和平臺的分離,在業(yè)務(wù)和平臺分離之后就要進(jìn)行業(yè)務(wù)和業(yè)務(wù)之間的隔離,即統(tǒng)一的業(yè)務(wù)身份,類似于身份證號碼,在整個(gè)交易鏈路上必須是唯一的。業(yè)務(wù)身份需要通過人、貨、場三個(gè)維度進(jìn)行抽象,比如市場類型、垂直市場、渠道來源等等,確定了這個(gè)唯一的業(yè)務(wù)身份后就可以將業(yè)務(wù)流程和業(yè)務(wù)規(guī)則進(jìn)行關(guān)聯(lián)。
基于業(yè)務(wù)識別,團(tuán)隊(duì)也提供了一個(gè)基于UIL的業(yè)務(wù)身份識別方案,總體設(shè)計(jì)基于標(biāo)準(zhǔn)模型來抽象,自定義語法,統(tǒng)一管理模型。事實(shí)上,通過樣品模型、買家模型、賣家模型、類目模型這四個(gè)維度,99%的商品都可以有效地進(jìn)行標(biāo)識。業(yè)務(wù)身份確定后,就可以按照業(yè)務(wù)身份維度,對業(yè)務(wù)配置、部署進(jìn)行統(tǒng)一管理,在這其中要注意配置隔離性、熱部署、配置回滾、配置確定性等核心要素。
業(yè)務(wù)管理域與運(yùn)行域分離的框架
業(yè)務(wù)身份確定后就要進(jìn)行業(yè)務(wù)定義,這其中就涉及管理域和運(yùn)行域分離的問題。管理域就是指對業(yè)務(wù)生命周期、業(yè)務(wù)身份、業(yè)務(wù)對象進(jìn)行定義,包括業(yè)務(wù)流程、業(yè)務(wù)管理等。這些操作完成之后就會(huì)將配置文件下發(fā)到,運(yùn)行域上的各種平臺就會(huì)自動(dòng)解析配置域所下發(fā)的配置文件,然后將配置文件解析成業(yè)務(wù)命令來執(zhí)行。
在上面所講的業(yè)務(wù)域中,一個(gè)核心的問題就是如何定義業(yè)務(wù):核心三要素是業(yè)務(wù)身份、業(yè)務(wù)疊加關(guān)系、沖突決策,即基于業(yè)務(wù)協(xié)議標(biāo)準(zhǔn)定義業(yè)務(wù),執(zhí)行單元按協(xié)議執(zhí)行業(yè)務(wù)邏輯。
在業(yè)務(wù)疊加關(guān)系中,業(yè)務(wù)的復(fù)雜度就在于業(yè)務(wù)規(guī)則在不同維度下產(chǎn)生的沖突。業(yè)務(wù)的復(fù)雜度可以分為兩個(gè)維度,一個(gè)是橫向維度,一個(gè)是垂直維度。
垂直維度,也可稱之為“行業(yè)”。往往一個(gè)特定的“業(yè)務(wù)對象”(如商品),在靜態(tài)期就能確認(rèn)其具體歸屬于哪個(gè)行業(yè)。行業(yè)與行業(yè)之間的業(yè)務(wù)規(guī)則是不會(huì)有疊加的。比如,付款超時(shí)時(shí)間,各可以都設(shè)置為1天超時(shí)。但“天貓汽車”把超時(shí)時(shí)間改了,一定不會(huì)聯(lián)動(dòng)改其他業(yè)務(wù)的超時(shí)設(shè)置。橫向維度,也稱為產(chǎn)品維度,特點(diǎn)有:產(chǎn)品是可以被多個(gè)垂直業(yè)務(wù)所使用的、一個(gè)垂直業(yè)務(wù)是可以使用多個(gè)產(chǎn)品的、產(chǎn)品是否生效是需要結(jié)合業(yè)務(wù)會(huì)話的。比如,“電子憑證”是否生效,要看用戶是否選擇了“電子憑證”的交付方式。
通過業(yè)務(wù)復(fù)雜度的分析,可以得出一個(gè)結(jié)論是:一次業(yè)務(wù)會(huì)話完整的規(guī)則=1個(gè)垂直業(yè)務(wù)規(guī)則集合+ N個(gè)水平業(yè)務(wù)規(guī)則集。所以在做業(yè)務(wù)定義和管理的時(shí)候,具體就是在管某一個(gè)垂直業(yè)務(wù)是和哪些橫向業(yè)務(wù)在疊加。在疊加之后產(chǎn)生的業(yè)務(wù)沖突又是怎么解決的?要基于這一點(diǎn)進(jìn)行業(yè)務(wù)管理。這是比較關(guān)鍵的一點(diǎn)。
TMF 2.0的關(guān)鍵模型介紹
基于以上的業(yè)務(wù)域介紹,下面詳細(xì)闡述一下TMF 2.0的關(guān)鍵模型,主要包括業(yè)務(wù)配置主線和業(yè)務(wù)運(yùn)行主線。
在業(yè)務(wù)配置主線中,由項(xiàng)目的業(yè)務(wù)PD來看一下當(dāng)前業(yè)務(wù)涉及到哪些業(yè)務(wù)域,以及這些業(yè)務(wù)域下面有哪些功能和產(chǎn)品可以去使用,哪些業(yè)務(wù)點(diǎn)是可以去擴(kuò)展的。這其中就需要能力域模型的支撐,通過這個(gè)模型所透出的結(jié)構(gòu)化數(shù)據(jù),來研究平臺中每個(gè)域具備的能力、每個(gè)能力具有的可變點(diǎn),從而有針對性地進(jìn)行設(shè)置。在配置模型里,通過關(guān)鍵的視圖模板,進(jìn)行模板透出,然后保存、下發(fā)配置數(shù)據(jù)到業(yè)務(wù)運(yùn)行主線。業(yè)務(wù)配置主線和業(yè)務(wù)運(yùn)行主線是相交互的。
基于TMF 2.0關(guān)鍵模型,整個(gè)交易平臺實(shí)現(xiàn)了業(yè)務(wù)定義可視、可管、可配。業(yè)務(wù)定義可視化包括系統(tǒng)能力可視化、業(yè)務(wù)流程可視化、業(yè)務(wù)規(guī)則可視化、產(chǎn)品疊加可視化等;業(yè)務(wù)可配置,所見即所得的業(yè)務(wù)規(guī)則可配置能力,凡是基于TMF2標(biāo)準(zhǔn)構(gòu)建的系統(tǒng)均立刻可獲取業(yè)務(wù)可配置能力,不需做額外的開發(fā);配置版本化,針對業(yè)務(wù)配置有完善的版本化管理機(jī)制,配置推送可實(shí)現(xiàn)按版本快速生效或者回退;業(yè)務(wù)多租戶管理,不同的業(yè)務(wù)系統(tǒng)之間可以通過租戶完全隔離的。不同的租戶有自己的數(shù)據(jù)空間,以及配置推送策略。
在實(shí)際應(yīng)用中,基于TMF2.0交易平臺改造效果具體如下:
業(yè)務(wù)需求平均開發(fā)周期縮短至12天。比如汽車4S服務(wù)中,在老系統(tǒng)上做了一個(gè)月(未完成),新系統(tǒng)7天完成;五道口業(yè)務(wù)中,在老系統(tǒng)中評估工作量兩個(gè)月,新系統(tǒng)12個(gè)工作日完成;餓了么業(yè)務(wù)中,老系統(tǒng)評估要兩周,基于新系統(tǒng)2天完成。
平臺與業(yè)務(wù)解耦。目前已完成的業(yè)務(wù),其業(yè)務(wù)定制均只存在于業(yè)務(wù)包;在平臺未改動(dòng)情況下,業(yè)務(wù)方的發(fā)布更加靈活(有多次單業(yè)務(wù)發(fā)布,不需要其他業(yè)務(wù)方進(jìn)行回歸的案例)。
業(yè)務(wù)資產(chǎn)庫。積累形成了50+業(yè)務(wù)資產(chǎn)庫,新業(yè)務(wù)可快速進(jìn)行快速復(fù)制、調(diào)整并發(fā)布。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/11801.html
摘要:今年的無論是常態(tài)全鏈路壓測或者是雙十一當(dāng)天,面臨的主要問題是如何保障自身系統(tǒng)在海量數(shù)據(jù)沖擊下的穩(wěn)定性,以及如何更快的展現(xiàn)各個(gè)系統(tǒng)的狀態(tài)及更好的幫助開發(fā)同學(xué)發(fā)現(xiàn)及定位問題。在整個(gè)雙十一備戰(zhàn)過程中,遇到并解決了很多疑難雜癥。 摘要: EagleEye作為阿里集團(tuán)老牌的鏈路跟蹤系統(tǒng),其自身業(yè)務(wù)雖不在交易鏈路上,但卻監(jiān)控著全集團(tuán)的鏈路狀態(tài),特別是在中間件的遠(yuǎn)程調(diào)用上,覆蓋了集團(tuán)絕大部分的場景,...
摘要:每秒實(shí)時(shí)處理超過萬項(xiàng)監(jiān)控指標(biāo),讓異常無所遁形。此外,對于復(fù)雜數(shù)據(jù)庫故障事后排查故障根源現(xiàn)場還原歷史事件追蹤也迫使我們建設(shè)一個(gè)覆蓋線上所有環(huán)境數(shù)據(jù)庫實(shí)例事件的監(jiān)控系統(tǒng),做到覆蓋阿里全球子公司所有機(jī)房。所有性能指標(biāo)做到秒級連續(xù)不間斷監(jiān)控。 摘要: 2017雙11再次創(chuàng)下了32.5萬筆/秒交易創(chuàng)建的紀(jì)錄,在這個(gè)數(shù)字后面,更是每秒多達(dá)幾千萬次的數(shù)據(jù)庫寫入,如何大規(guī)模進(jìn)行自動(dòng)化操作、保證數(shù)據(jù)庫的...
閱讀 3854·2021-09-06 15:00
閱讀 2183·2019-08-30 15:53
閱讀 3291·2019-08-23 16:44
閱讀 953·2019-08-23 15:19
閱讀 1402·2019-08-23 12:27
閱讀 4201·2019-08-23 11:30
閱讀 592·2019-08-23 10:33
閱讀 376·2019-08-22 16:05