當(dāng)前位置:首頁(yè) >  科技 >  IT業(yè)界 >  正文

云徙首席架構(gòu)師拆解xLightning的構(gòu)建密碼

 2022-08-29 11:57  來(lái)源: 互聯(lián)網(wǎng)   我來(lái)投稿 撤稿糾錯(cuò)

  域名預(yù)訂/競(jìng)價(jià),好“米”不錯(cuò)過(guò)

“徙說(shuō)數(shù)字化”云徙產(chǎn)品系列直播課的第2期于本周二19:00準(zhǔn)時(shí)直播,云徙科技首席架構(gòu)師陳新宇博士圍繞“中臺(tái):可變、可建、可控!云徙xLightning的構(gòu)建原理”進(jìn)行了精彩分享,以下為精華實(shí)錄:

01.中臺(tái)的起源與定義

中臺(tái)源起數(shù)字化,從技術(shù)的角度解讀數(shù)字化,其實(shí)就是三個(gè)詞語(yǔ):連接、數(shù)據(jù)、智能。

通過(guò)連接產(chǎn)生數(shù)據(jù),基于數(shù)據(jù)發(fā)現(xiàn)規(guī)律產(chǎn)生智能,通過(guò)智能來(lái)幫助我們決策,實(shí)時(shí)指導(dǎo)行動(dòng)產(chǎn)生新的連接,周而復(fù)始,生生不息,從而推動(dòng)企業(yè)業(yè)務(wù)的增長(zhǎng)。

大家可以看到,一邊是現(xiàn)時(shí)可用的一堆技術(shù)手段和工具,比如人工智能、大數(shù)據(jù)、云計(jì)算等等,一邊是企業(yè)想要達(dá)到的業(yè)務(wù)目標(biāo),比如改善客戶體驗(yàn)、改進(jìn)產(chǎn)品、提升運(yùn)營(yíng)效能等,從而降本增效,促進(jìn)企業(yè)業(yè)務(wù)增長(zhǎng)。技術(shù)手段和業(yè)務(wù)目標(biāo)中間存在的鴻溝就是企業(yè)如何建設(shè)數(shù)字化系統(tǒng)來(lái)支撐數(shù)字化轉(zhuǎn)型。

而很多企業(yè)建設(shè)系統(tǒng)的方式是建設(shè)了了非常多的系統(tǒng),并且在不斷地重復(fù)建設(shè),比如財(cái)務(wù)系統(tǒng)、供應(yīng)鏈系統(tǒng)、HR系統(tǒng)等,也包括B2C、BBC等交易商城。煙囪式的建設(shè)導(dǎo)致企業(yè)建設(shè)系統(tǒng)的成本高、數(shù)據(jù)不通、沒(méi)有沉淀企業(yè)的數(shù)字資產(chǎn)等。再者這些系統(tǒng)都是單體方式,無(wú)法應(yīng)對(duì)互聯(lián)網(wǎng)大用戶的高并發(fā)。因此,企業(yè)需要改變建設(shè)應(yīng)用系統(tǒng)的方式,通過(guò)引入一個(gè)抽象層來(lái)把公共的能力沉淀起來(lái),而這個(gè)抽象層就是中臺(tái)。

中臺(tái)是基于云計(jì)算、大數(shù)據(jù)、人工智能等新一代技術(shù)架構(gòu)打造的持續(xù)演進(jìn)的企業(yè)級(jí)業(yè)務(wù)能力和數(shù)據(jù)共享服務(wù)平臺(tái)。

業(yè)務(wù)中臺(tái)是以業(yè)務(wù)劃分領(lǐng)域,業(yè)務(wù)領(lǐng)域劃分邊界,形成高內(nèi)聚、低耦合的面向業(yè)務(wù)領(lǐng)域的能力中心,比如商品中心、交易中心、營(yíng)銷中心等等;數(shù)據(jù)中臺(tái)則首先要構(gòu)建人貨場(chǎng)主題模型和下單、支付、評(píng)價(jià)等事件模型,并通過(guò)機(jī)器學(xué)習(xí)建設(shè)標(biāo)簽等算法模型。業(yè)務(wù)中臺(tái)和數(shù)據(jù)中臺(tái)一起合力來(lái)支撐上層的商業(yè)應(yīng)用。

02.中臺(tái)建設(shè)的本質(zhì)

一句話概括中臺(tái)建設(shè)的本質(zhì):分析相似性和差異性,從而管理通用性和可變性。

平時(shí)大家來(lái)談建設(shè)系統(tǒng)都說(shuō)我這個(gè)系統(tǒng)跟其他系統(tǒng)很不一樣,這個(gè)企業(yè)跟其他企業(yè)的需求很不一樣,但實(shí)際上細(xì)拆,打開(kāi)表層往下深挖后就會(huì)發(fā)現(xiàn)原來(lái)它們是有共通性的。比如,金剛石和石墨看起來(lái)就是完全不同的物質(zhì),但往下分析都是碳原子組成的,只不過(guò)組織方式不太一樣。

中臺(tái)在系統(tǒng)建設(shè)上最終落地的方法是什么呢?我們提了四個(gè)中臺(tái)建設(shè)的基石:顆粒度、構(gòu)件標(biāo)準(zhǔn)化、組裝方式、可變性。

1、顆粒度

一個(gè)系統(tǒng)通過(guò)前后端分離會(huì)拆成前端和后端。后端拆成微服務(wù),微服務(wù)是由很多的API組成的。前端現(xiàn)在也流行微前端。微前端是由頁(yè)面組成的。微服務(wù)、微前端正好是在同一層,即物理部署單元。

我們認(rèn)為以API或頁(yè)面作為一個(gè)組裝的顆粒度,太細(xì)了,需要在微服務(wù)、微前端和API、頁(yè)面之間增加一層顆粒度,我們叫功能包。

2、構(gòu)件標(biāo)準(zhǔn)化

標(biāo)準(zhǔn)化分為兩層:

功能包自身的標(biāo)準(zhǔn):第一,功能包的結(jié)構(gòu)標(biāo)準(zhǔn),諸如在開(kāi)發(fā)功能包時(shí),代碼工程結(jié)構(gòu)的問(wèn)題;第二,打包標(biāo)準(zhǔn),即開(kāi)發(fā)出來(lái)的功能包如何打包?第三,展示標(biāo)準(zhǔn):打完包的功能包本身如何展示?

功能包間關(guān)系的標(biāo)準(zhǔn):第一,使用標(biāo)準(zhǔn);第二,組裝標(biāo)準(zhǔn),如何把它組裝出來(lái);第三,管控標(biāo)準(zhǔn),如何讓一個(gè)管控平臺(tái)去管控功能包里面的內(nèi)容。

3、組裝方式

從大的角度有兩類,第一類是無(wú)關(guān)系組裝,相當(dāng)于是砌墻式的,把磚疊上去就行了,磚之間沒(méi)有關(guān)系。

第二個(gè)是有關(guān)系的組裝,這個(gè)關(guān)系就是依賴關(guān)系,依賴關(guān)系細(xì)分又分成兩類,本地引用和遠(yuǎn)程調(diào)用。有一類特殊的本地引用是擴(kuò)展。

4、分離通用性和可變性

不管是顆粒度、標(biāo)準(zhǔn)化、還是組裝方式,都是為了可變性,來(lái)使用生產(chǎn)出來(lái)的系統(tǒng)能滿足企業(yè)不同業(yè)務(wù)的需要。

我們需要考慮是什么東西在變,為什么會(huì)變,怎么變的?

什么在變?就是變化點(diǎn),我們一定要把它抽象地建模分析出來(lái)什么在變;

為什么變?一般就是業(yè)務(wù)需求,也可考慮技術(shù)角度的原因;

怎么變?就是變化的候選值。

之后,就需要對(duì)變化點(diǎn)的值先用合適的候選值,既候選值賦值或綁定到變化點(diǎn),最終讓變化點(diǎn)固定下來(lái)。固定下來(lái)的過(guò)程就是賦值和綁定的時(shí)間,但問(wèn)題是什么時(shí)候去綁定,這個(gè)時(shí)機(jī)很重要。

怎么分析變化點(diǎn)?簡(jiǎn)單的方法就是場(chǎng)景-需求矩陣,把場(chǎng)景一一列舉出來(lái),然后整理需求點(diǎn),看看同一個(gè)需求點(diǎn)是否適用于不同的場(chǎng)景。如果有不適合的場(chǎng)景,那個(gè)地方就是可變化的點(diǎn)。

分析通用性和可變性的目的,不是說(shuō)變化點(diǎn)越多越好,我們應(yīng)該盡量減少變化點(diǎn),讓我們的系統(tǒng)更通用,簡(jiǎn)化系統(tǒng)的開(kāi)發(fā),同時(shí)又讓它適應(yīng)各種場(chǎng)景。

前面講到綁定的時(shí)機(jī),綁定的時(shí)機(jī)分成這三大類:第一類,開(kāi)發(fā)的時(shí)候綁定,第二類是部署的時(shí)候綁定,第三類是運(yùn)行的時(shí)候綁定。

03.中臺(tái)的構(gòu)建過(guò)程

圍繞上面綁定的時(shí)機(jī)一個(gè)一個(gè)展開(kāi),再來(lái)講系統(tǒng)的構(gòu)建過(guò)程。

開(kāi)發(fā)時(shí)可擴(kuò)展

(1)規(guī)劃預(yù)埋式擴(kuò)展接口,整理非預(yù)埋式邏輯。

我們現(xiàn)在有很多不同的組件、不同的功能包,它們之間是怎么擴(kuò)展的?第一,下層的功能包已經(jīng)預(yù)埋了一些可擴(kuò)展的擴(kuò)展點(diǎn),上層的功能包根據(jù)需要選用擴(kuò)展點(diǎn)、變化點(diǎn)。但是系統(tǒng)不是那么簡(jiǎn)單,不可能所有東西會(huì)被預(yù)先想到,都被預(yù)埋好,所以我們需要第二種,非預(yù)埋式。提供一種非預(yù)埋式的、可以動(dòng)態(tài)嵌入的,插入一些處理前代碼或置換代碼。

(2)引擎機(jī)制

引擎對(duì)于系統(tǒng)的可擴(kuò)展性是很重要的,在此以促銷引擎舉例。

什么樣的人,什么樣的商品,在什么店鋪下,什么時(shí)間,滿足什么條件,才可以做什么動(dòng)作,是滿還是贈(zèng),把促銷策略整理好后,組裝成一個(gè)觸發(fā)器,再配合前端下單的時(shí)間點(diǎn)、用戶行為,就形成了最終的促銷引擎。當(dāng)有新的促銷活動(dòng),很容易擴(kuò)展,而不是做整體系統(tǒng)的開(kāi)發(fā),所以引擎機(jī)制也是我們動(dòng)態(tài)可擴(kuò)展的很重要的方式。

部署可替換

要把系統(tǒng)組裝起來(lái),比如說(shuō)我們的商品也可以組裝起來(lái),為了這個(gè)系統(tǒng)可跑,還會(huì)需要依賴一些其他的中間件,比如說(shuō)cache、消息隊(duì)列或配置中心等等,但是這些所需要提供的提供者本身不是我們?cè)陂_(kāi)發(fā)時(shí)候綁定的,是我們把這個(gè)系統(tǒng)組裝完以后,部署到具體某一云環(huán)境,才會(huì)具體綁定的過(guò)程。

前端頁(yè)面在部署時(shí)也是可替換的。比如移動(dòng)端現(xiàn)有三大類:移動(dòng)APP、H5、小程序。為了開(kāi)發(fā)這些程序,有不同的語(yǔ)言,如React、Taro。需要針對(duì)不同的語(yǔ)言實(shí)現(xiàn)多個(gè)渲染引擎;再上層就是在做頁(yè)面編排時(shí)候的統(tǒng)一語(yǔ)言,也就是數(shù)據(jù)模型。當(dāng)需要把這個(gè)開(kāi)發(fā)出來(lái)的移動(dòng)端的應(yīng)用部署成APP的時(shí)候,比如是部署成安卓APP的時(shí)候,就會(huì)根據(jù)指定的AppWidgets和渲染引擎,把這個(gè)對(duì)應(yīng)的實(shí)現(xiàn)打包到對(duì)應(yīng)的代碼里面去。

運(yùn)行時(shí)可配置、可編排

可配置什么呢?在這個(gè)系統(tǒng)里面不同的構(gòu)建或功能包里面所提供的配置項(xiàng),需要把它管理起來(lái)。首先要把這個(gè)分布式的系統(tǒng)里面所蘊(yùn)含的、可被控制或可被配置的部件、配置項(xiàng)收集起來(lái),上報(bào)到統(tǒng)一的配置中心,配置中心根據(jù)配置項(xiàng)做一個(gè)配置視圖的設(shè)計(jì),讓運(yùn)營(yíng)方便配置,所以他會(huì)做一些配置視圖的管理,配置完的系統(tǒng)本身或配置具體的值再統(tǒng)一下發(fā)回各自的中心。

配置項(xiàng)會(huì)根據(jù)不同的租戶、不同的業(yè)務(wù)來(lái)配置,我們叫業(yè)務(wù)空間,不同業(yè)務(wù)空間需要做隔離,所以當(dāng)不同的中心在啟動(dòng)的時(shí)候,會(huì)根據(jù)它當(dāng)前這個(gè)業(yè)務(wù)所在的租戶或業(yè)務(wù)空間找到合適的配置項(xiàng),從而達(dá)到系統(tǒng)可動(dòng)態(tài)柔性的執(zhí)行,改變它的運(yùn)行行為,根據(jù)參數(shù)和流程編排去改變它的行為。

開(kāi)發(fā)時(shí)可擴(kuò)展、部署時(shí)可替換、運(yùn)行時(shí)可配置,但實(shí)際上做的過(guò)程中我們會(huì)發(fā)現(xiàn)還缺少一個(gè),如果所有的東西都讓別人可配置,特別是放在最后來(lái)配置,其實(shí)會(huì)加大了業(yè)務(wù)開(kāi)發(fā)工作量和系統(tǒng)的復(fù)雜性,可能導(dǎo)致系統(tǒng)也不好運(yùn)維。

如何簡(jiǎn)化?預(yù)組裝。當(dāng)系統(tǒng)要上架到市場(chǎng)讓別人使用之前,可以進(jìn)行一定的預(yù)組裝。按照特定的場(chǎng)景或特定的解決方案先把它組裝好,組裝好的結(jié)果也可以上架到市場(chǎng),來(lái)簡(jiǎn)化部署和運(yùn)行時(shí)候的一些配置工作。

04.支撐中臺(tái)構(gòu)建的工具體系

為了支撐以上復(fù)雜的過(guò)程,需要一個(gè)工具體系。

功能包的開(kāi)發(fā)需要一個(gè)開(kāi)發(fā)平臺(tái);開(kāi)發(fā)出來(lái)的系統(tǒng)得讓它構(gòu)建,需要一個(gè)構(gòu)建平臺(tái);最終把它們組裝起來(lái),需要一個(gè)組裝工廠。

組裝構(gòu)建出來(lái)的系統(tǒng)本身需要一個(gè)管控平臺(tái),來(lái)把功能包里面的內(nèi)容、配置項(xiàng)上報(bào)回來(lái),讓它管控;同時(shí)配置的結(jié)果需要回傳回去,這些組件得有一個(gè)地方可以存儲(chǔ)、共享,這就是物料市場(chǎng)。

為了支撐以上概念,我們需要設(shè)計(jì)一個(gè)一體化開(kāi)發(fā)平臺(tái)。打通規(guī)劃、建模、開(kāi)發(fā)、集成、部署、運(yùn)營(yíng),通過(guò)業(yè)務(wù)與數(shù)據(jù)一體化全鏈路開(kāi)發(fā)平臺(tái)來(lái)加快中臺(tái)落地速度。

由此,按上述理念構(gòu)建的參考實(shí)現(xiàn)即云徙xLightning的架構(gòu)如下:

首先是業(yè)務(wù)中臺(tái)和數(shù)據(jù)中臺(tái),其次需要一個(gè)一體化、全鏈路的技術(shù)平臺(tái)來(lái)支撐復(fù)雜的業(yè)務(wù)中臺(tái)和數(shù)據(jù)中臺(tái)的建設(shè),以簡(jiǎn)化開(kāi)發(fā)。從另一個(gè)維度將系統(tǒng)拆成三個(gè)平面:從執(zhí)行平面來(lái)講,系統(tǒng)一定要達(dá)到柔性執(zhí)行,達(dá)到系統(tǒng)的可變性,來(lái)應(yīng)對(duì)業(yè)務(wù)系統(tǒng)的需要;從控制平面來(lái)講,要把這些分布式的執(zhí)行單元集中管控起來(lái)。所以云徙設(shè)計(jì)了一個(gè)叫中臺(tái)控制臺(tái)MPC,去做配置項(xiàng)的管控、上報(bào)和下發(fā);從運(yùn)營(yíng)平面來(lái)講,需要BOC商業(yè)運(yùn)營(yíng)平臺(tái)來(lái)方便業(yè)務(wù)運(yùn)營(yíng)做整體的、全局的、統(tǒng)一的運(yùn)營(yíng)。

“徙說(shuō)數(shù)字化”下期直播預(yù)告8月30日晚7點(diǎn)云徙科技首席產(chǎn)品官王潘云將詳細(xì)解讀數(shù)艦企業(yè)云企業(yè)級(jí)數(shù)字化應(yīng)用系統(tǒng)

申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!

相關(guān)標(biāo)簽
企業(yè)建站系統(tǒng)

相關(guān)文章

熱門排行

信息推薦