文/科技看門道 余文
“在云原生環(huán)境下通常一個企業(yè)業(yè)務流程由多個微服務共同組成,比如商城、會員、訂貨、零售、基礎(chǔ)服務、OMS、API查詢等等。如果每一個微服務需要占用8G內(nèi)存,10個微服務就是80G,占用的計算資源就太大了。”用友網(wǎng)絡YonBIP開發(fā)總監(jiān)肖靜提到了一個很少見諸于媒體的技術(shù)名詞——“元數(shù)據(jù)驅(qū)動”。
依照肖靜的說法,只有元數(shù)據(jù)驅(qū)動,才能讓這些微服務動態(tài)共享地調(diào)用計算資源,在面向多域多例的企業(yè)應用時形成緊耦合,提升計算效率;不僅如此,只有基于大量最佳實踐封裝了的元數(shù)據(jù)驅(qū)動模型,才能讓低代碼或無代碼真正高效發(fā)揮作用。
這幾句話或許在IT男肖靜看來,是最通俗易懂的解釋了,然而對于筆者這樣一個編程門外漢來說,仍然太過生澀。筆者忽然想起來最近在陪上小學的兒子學編程,他學的其實就是無代碼、搭積木式的編程方法,或許能夠幫助我們更直觀地理解什么是元數(shù)據(jù)驅(qū)動。
云數(shù)據(jù)驅(qū)動讓無代碼編程成為現(xiàn)實
小時候,誰都玩過搭積木。其實無代碼編程就和搭積木差不多,只不過組成積木的是“當”xx被xx”,或者“如果xx否則xx”,“重復執(zhí)行”,“保持等待直到xx”等隱含著代碼的邏輯指令,孩子們需要的僅僅是“編”。
實際上,“編程”這個詞是由編和程兩個字組成的,和“編書”、“編故事”沒啥區(qū)別,因為“編”就代表著一種邏輯。
荷蘭計算機科學家、圖靈獎獲得者Edsger Wybe Dijkstra說過一句話:“我們使用的工具影響著我們的思維方式和思維習慣,從而也將深刻地影響我們的思維能力”。
很顯然,用英語寫出來的編程語言作為一個工具不僅對于中國人太難了,即便對于英語是母語的人來說,也并非易事。因為只有圖形化、積木化的無代碼開發(fā)工具,才能讓每一個普通人真正把全部精力用于思考業(yè)務的流程邏輯,才能在企業(yè)數(shù)字化轉(zhuǎn)型和IT進入社會化創(chuàng)新時代的今天,最大化發(fā)揮創(chuàng)新力。
換句話說,如今的企業(yè)數(shù)字化轉(zhuǎn)型不僅是要把企業(yè)內(nèi)部各系統(tǒng)間的數(shù)據(jù)打通,而且還要引入各種企業(yè)外的數(shù)據(jù),包括供應鏈上下游和社會化的數(shù)據(jù),來進行實時的運營分析,來支持企業(yè)的管理和輔助決策。對于數(shù)字時代企業(yè)信息系統(tǒng)的構(gòu)建來說,實際上就是從傳統(tǒng)ERP拓展到BIP社會化商業(yè)創(chuàng)新平臺的過程。
然而,數(shù)據(jù)采集范圍擴大了,數(shù)據(jù)來源增多了,對于IT系統(tǒng)技術(shù)架構(gòu)來說,社會級應用意味著需要依靠新的云原生架構(gòu),在其基礎(chǔ)上部署和運行多方基于云原生和容器化的微服務,才能夠為企業(yè)帶來真正的數(shù)據(jù)和業(yè)務閉環(huán)。
這時候,IT技術(shù)架構(gòu)就回到了文章開篇所討論到的問題:如何降低多方開發(fā)的多個微服務共同組成的業(yè)務應用的計算資源負載?如何讓微服務間的松耦合變成動態(tài)緊耦合,來提升計算效率?答案是,構(gòu)成同一個企業(yè)業(yè)務應用的微服務需要在同一套規(guī)則下編寫,也就是說,構(gòu)成各個微服務的“積木”,需要統(tǒng)一,而這些“積木”,就是“元數(shù)據(jù)模型”。
肖靜舉了個直觀的例子,就像雷神山、火神山蓋醫(yī)院,它不再用傳統(tǒng)的水泥、沙子、鋼筋蓋樓,而是框架式的,還支持靈活配置,因此施工速度大大提高了。
云數(shù)據(jù)驅(qū)動是構(gòu)建微服務的能力
“其實MDD元數(shù)據(jù)驅(qū)動本身屬于APaaS,是應用平臺或者業(yè)務中臺能力。云原生屬于GPaaS,是技術(shù)中臺的能力。元數(shù)據(jù)驅(qū)動對應的是開發(fā)框架,即模型驅(qū)動開發(fā)和元數(shù)據(jù)動態(tài)建模。”肖靜解釋說,“用友做了大量最佳實踐模型的封裝,從對應的領(lǐng)域?qū)?、業(yè)務層一直到視圖模型層和UI層,形成了用友iuap5.0業(yè)務中臺里面快速支撐業(yè)務應用構(gòu)建的能力。”
實際上,iuap平臺最早脫胎于用友NC自身的開發(fā)平臺UAP——Unified Application Platform,即統(tǒng)一應用平臺。2014年發(fā)布的iuap3.0,雖然在服務客戶方面與UAP有一脈相承的地方,但實際上已經(jīng)是一個完全重寫代碼的基于互聯(lián)網(wǎng)架構(gòu)的平臺。而最新的iuap5.0,更是完全基于云原生架構(gòu)重寫的新一代PaaS,包括了技術(shù)平臺、數(shù)據(jù)中臺、智能中臺及業(yè)務中臺,為企業(yè)提供了中臺化構(gòu)建能力、多云環(huán)境下的混合云開放集成互聯(lián)互通能力、 技術(shù)普惠化下的低代碼開發(fā)和數(shù)智能力、自助應用快速構(gòu)建能力,支撐企業(yè)服務產(chǎn)業(yè)生態(tài)伙伴共享共創(chuàng), 實現(xiàn)數(shù)字企業(yè)的智能服務。
“我們從2018年開始做用友云的終端云服務套件YonSuite,當時定位我們先把對應的財務、供應鏈和制造三個領(lǐng)域的產(chǎn)品,包括數(shù)字化建模、財務的收付、總賬、固定資產(chǎn)、存額核算、進銷存,以及生產(chǎn)訂單、物料清單等十幾個模塊用對應的元數(shù)據(jù)驅(qū)動引擎進行對應的應用構(gòu)建。”肖靜回憶說。
應該說,元數(shù)據(jù)驅(qū)動并不是一個新概念,因為元數(shù)據(jù)模型實際上就是積木式的封裝模塊,但以前的元數(shù)據(jù)的驅(qū)動引擎是放在虛機環(huán)境下的,主要是單域單例,滿足不了今天社會化應用需要對應多個數(shù)據(jù)庫實例的需求。
“在對應的云原生、微服務下,我們把每一個領(lǐng)域下的應用拆成一個服務,那它就是一個域;每一個域我們?yōu)榱吮WC服務的獨立性,就要單獨的實例。”肖靜解釋說,“要讓服務之間不受對應的各種資源互相之間進行沖突,保證獨立性、隔離性,就必須全新開發(fā)支撐多域多例的元數(shù)據(jù)驅(qū)動引擎。”
據(jù)悉,無論是Salesforce還是其它友商的元數(shù)據(jù)驅(qū)動,大部分還沒有對應到微服務架構(gòu)下的多域多例模式;即便少數(shù)對應了多域多例,也只停留在領(lǐng)域?qū)?,極少部分到了業(yè)務邏輯層,但覆蓋到UI和視圖模型層的應該只有用友一家。
“我們不僅封裝了大量的前端模型,而且對驅(qū)動引擎做了徹底的云原生微服務的改造。”肖靜表示,“用友今天的元數(shù)據(jù)驅(qū)動引擎,是我們將企業(yè)應用服務進行了一系列的微服務解藕,對每個服務進行數(shù)據(jù)庫實例獨享,并且進行了大量的驗證,填平了無數(shù)的坑,是真正的自研自創(chuàng)。”
元數(shù)據(jù)驅(qū)動是BIP賦能生態(tài)的底層邏輯
我們知道,傳統(tǒng)的ERP對于企業(yè)來說主要是業(yè)務支撐和管控,把企業(yè)內(nèi)部的人財物打通,以流程為中心進行驅(qū)動,在適應變化的靈活性上有一定的局限性;而今天的商業(yè)環(huán)境需要企業(yè)快速應變,需要企業(yè)通過在線的運營服務和客戶保持黏性,需要利用在線產(chǎn)生的數(shù)據(jù),通過算法和模型,優(yōu)化和快速迭代服務。
換句話說,數(shù)智化時代,企業(yè)必然以數(shù)據(jù)驅(qū)動為核心,進行商業(yè)化創(chuàng)新。這中間,企業(yè)需要一個商業(yè)創(chuàng)新平臺,協(xié)同企業(yè)內(nèi)部、企業(yè)外部,以及社會化商業(yè)線索,進行便捷 、快速和高效地開發(fā)和部署應用。
YonBIP技術(shù)架構(gòu)體系
在這樣一個大環(huán)境下,用友YonBIP應運而生。因而YonBIP不只是一個工具化的商業(yè)操作系統(tǒng),更是全生命周期的多元綜合服務體。實際上,YonBIP是用友及生態(tài)整體業(yè)務的統(tǒng)一平臺,而iuap5.0則是YonBIP的技術(shù)支撐底座。
很顯然,iuap5.0需要承載的上層應用極其復雜,同時iuap5.0又需要讓生態(tài)伙伴能夠很方便地上手進行面向各個業(yè)務場景的個性化開發(fā)和各個領(lǐng)域的定制開發(fā),因為YonBIP需要通過平臺服務和運營,賦能生態(tài)伙伴,與生態(tài)ISV合作創(chuàng)新,服務于更多的行業(yè)客戶。
這,就是YonBuilder低代碼開發(fā)平臺以及元數(shù)據(jù)驅(qū)動引擎和模型的意義所在。
有了這樣的業(yè)務需求,肖靜和他的同事們沒有退路。肖靜舉了一個例子:“早期做云服務,PC寫PC的,移動寫移動的,沒有視圖模型層。而現(xiàn)在的架構(gòu)是組件化開發(fā),在對應的運行態(tài)、部署態(tài)要做到服務的可分可合,對應的業(yè)務邏輯、計算模型必須視為同一份,因此我們在元數(shù)據(jù)驅(qū)動開發(fā)框架里面,每一層的視圖模型、業(yè)務邏輯、領(lǐng)域模型都要完全一致才能做到多端應用在模型層的統(tǒng)一,而且還要保障獨立服務的資源擴容的高可用。”
這一番話說起來簡單,但實現(xiàn)起來,會遇到各式各樣的問題。“比如OLTP、OLAP對應分析查詢,我們就選擇了很多條路;比如微服務架構(gòu)拆分完之后的事務一致性問題,實際上有非常多的攻堅點,我們需要一個一個去攻堅。”肖靜解釋說,“當我們真正把大量對應的能力,高度封裝集成形成這套開發(fā)框架之后,用友iuap5.0業(yè)務中臺就具備了快速支撐業(yè)務應用構(gòu)建的能力,業(yè)務的開發(fā)配置就變得極其簡單——像YonSuite1.0采用這套框架建模,從立項到發(fā)版只花了半年多的時間,而以前沒有三年時間是做不出來的。”
肖靜對用友的技術(shù)架構(gòu)如數(shù)家珍,這也難怪,因為今年已經(jīng)是他在用友的第18個年頭。作為一個有著近20年碼農(nóng)經(jīng)歷的典型技術(shù)男,肖靜的日常穿著普通得不能再普通:一件黑色套頭衫、一條牛仔褲。然而讓人沒想到的是,這件印著BIP和OD(overcome difficulties,即攻堅克難)logo組成的套頭衫竟然是一件榮譽文化衫,代表著肖靜團隊的精神“攻堅克難”、癡迷客戶、高效協(xié)作、持續(xù)賦能、無所不學——只有每個月獲評的出色人物才能得到團隊文化官的嘉獎。
“我們十一期間都在加班,每周都是996甚至007,所以大伙得有目標,得認同這個目標,因此文化建設(shè)十分重要。”看得出肖靜一臉平靜,但內(nèi)心是澎湃的,“YonBIP怎么達成?就是要踐行攻堅克難,因為我們用友3.0戰(zhàn)略實施進入第二個階段,云服務從產(chǎn)品服務模式升維到平臺服務模式,就是肩負著數(shù)智化時代讓企業(yè)商業(yè)創(chuàng)新如此便捷的使命和責任。”
(免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關(guān)資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負任何法律責任。
任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )