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

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

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

  域名預(yù)訂/競價,好“米”不錯過

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

01.中臺的起源與定義

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

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

大家可以看到,一邊是現(xiàn)時可用的一堆技術(shù)手段和工具,比如人工智能、大數(shù)據(jù)、云計(jì)算等等,一邊是企業(yè)想要達(dá)到的業(yè)務(wù)目標(biāo),比如改善客戶體驗(yàn)、改進(jìn)產(chǎn)品、提升運(yùn)營效能等,從而降本增效,促進(jìn)企業(yè)業(yè)務(wù)增長。技術(shù)手段和業(yè)務(wù)目標(biāo)中間存在的鴻溝就是企業(yè)如何建設(shè)數(shù)字化系統(tǒng)來支撐數(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ù)不通、沒有沉淀企業(yè)的數(shù)字資產(chǎn)等。再者這些系統(tǒng)都是單體方式,無法應(yīng)對互聯(lián)網(wǎng)大用戶的高并發(fā)。因此,企業(yè)需要改變建設(shè)應(yīng)用系統(tǒng)的方式,通過引入一個抽象層來把公共的能力沉淀起來,而這個抽象層就是中臺。

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

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

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

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

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

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

1、顆粒度

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

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

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

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

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

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

3、組裝方式

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

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

4、分離通用性和可變性

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

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

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

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

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

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

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

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

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

03.中臺的構(gòu)建過程

圍繞上面綁定的時機(jī)一個一個展開,再來講系統(tǒng)的構(gòu)建過程。

開發(fā)時可擴(kuò)展

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

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

(2)引擎機(jī)制

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

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

部署可替換

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

熱門排行

信息推薦