南通颐猩文化传播有限公司

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

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

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

  域名預訂/競價,好“米”不錯過

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

01.中臺的起源與定義

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

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

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

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

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

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

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

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

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

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

1、顆粒度

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

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

2、構(gòu)件標準化

標準化分為兩層:

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

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

3、組裝方式

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

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

4、分離通用性和可變性

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

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

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

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

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

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

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

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

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

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

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

開發(fā)時可擴展

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

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

(2)引擎機制

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

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

部署可替換

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

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

運行時可配置、可編排

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

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

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

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

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

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

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

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

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

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

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

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

申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!

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

相關(guān)文章

熱門排行

信息推薦