實戰(zhàn) – 低代碼平臺在金融行業(yè)的創(chuàng)新研究及實踐(低代碼平臺實現(xiàn))
文 / 中國工商銀行金融科技研究院前端領(lǐng)域研究員? 楊丹
“十四五”時期,我國開啟全面建設(shè)社會主義現(xiàn)代化國家新征程,數(shù)字技術(shù)成為新的發(fā)展引擎,數(shù)字經(jīng)濟(jì)浪潮勢不可擋。為加快企業(yè)數(shù)字化轉(zhuǎn)型速度及滿足業(yè)務(wù)高速發(fā)展,賦能專業(yè)研發(fā)人員、運營人員及分行業(yè)務(wù),減少低價值重復(fù)性的研發(fā)工作,更多聚焦和滿足業(yè)務(wù)敏捷創(chuàng)新,低代碼平臺已成為眾多企業(yè)在數(shù)字化轉(zhuǎn)型升級中的重要手段。
圍繞國家“十四五”戰(zhàn)略規(guī)劃,工商銀行迅速布局?jǐn)?shù)字化轉(zhuǎn)型效能提升領(lǐng)域,開展低代碼平臺創(chuàng)新研究,積極探索低代碼在金融領(lǐng)域的應(yīng)用場景。隨著工商銀行IT架構(gòu)轉(zhuǎn)型的深入推進(jìn),云原生基礎(chǔ)設(shè)施及微服務(wù)架構(gòu)發(fā)展已趨于成熟,在此基礎(chǔ)之上,工商銀行積極探索低代碼在數(shù)字化賦能方面的創(chuàng)新及實踐。
低代碼平臺概述
低代碼開發(fā)平臺是一種可視化快速搭建軟件應(yīng)用的開發(fā)平臺。通過拖拽、拼接等方式,在只編寫少量代碼或不寫代碼的情況下,將通用的資產(chǎn)組件快速組裝為所需應(yīng)用,從而實現(xiàn)快速交付和產(chǎn)品迭代,同時有助于解決應(yīng)用系統(tǒng)過多帶來的信息孤島問題。
低代碼平臺的概念于2014年首次提出,在近幾年的發(fā)展中,主要經(jīng)歷了三個階段。一是低速發(fā)展期,這段時期內(nèi)尚無成熟的產(chǎn)品,但是部分CRM(客戶關(guān)系管理)、BPM(業(yè)務(wù)流程管理)、ERP(企業(yè)資源計劃)廠商已經(jīng)具備部分低代碼能力。二是快速成長期,伴隨著DevOps、分布式、云原生等技術(shù)的不斷發(fā)展,低代碼平臺的能力也日益成熟。三是高速井噴期,隨著移動互聯(lián)網(wǎng)的普及以及企業(yè)數(shù)字化轉(zhuǎn)型的趨勢下,軟件開發(fā)需求爆炸式增長,生產(chǎn)力已跟不上企業(yè)日益增長的業(yè)務(wù)需求。
在此大背景下,低代碼開發(fā)平臺的企業(yè)級市場快速增長,適用的場景越來越多。疫情期間,各大云廠商利用低代碼技術(shù)支持機(jī)構(gòu)及個人在短時間內(nèi)搭建了2000多個防疫應(yīng)用,充分體現(xiàn)了低代碼技術(shù)的開發(fā)效率。隨著低代碼技術(shù)的不斷成熟,主流低代碼平臺已經(jīng)可以滿足OA、內(nèi)部管理、移動APP等眾多信息系統(tǒng)的研發(fā)需求,支撐各行各業(yè)輕應(yīng)用數(shù)字化轉(zhuǎn)型的需要。
從技術(shù)路徑上分析,低代碼有表單驅(qū)動和模型驅(qū)動兩種路徑。表單驅(qū)動模式與傳統(tǒng)的BPM軟件類似,通過流程串聯(lián)表單,比較適合輕量級應(yīng)用的打造,如OA審批、客戶管理等。模型驅(qū)動面向數(shù)據(jù)對象,對業(yè)務(wù)實體進(jìn)行建模,靈活性較高,能夠服務(wù)于企業(yè)的復(fù)雜場景開發(fā)需求,適合大中型企業(yè)根據(jù)核心業(yè)務(wù)進(jìn)行個性化定制。從運行模式劃分,業(yè)界主流的低代碼平臺可劃分為基于配置運行以及生成代碼運行兩類。基于配置文件依托于低代碼平臺引擎進(jìn)行解析運行,低代碼生成物無法進(jìn)行二次開發(fā)和擴(kuò)展,開發(fā)能力受到平臺可視化資產(chǎn)及組件的嚴(yán)重制約;生成代碼,即可視化搭建結(jié)果通過解析并轉(zhuǎn)換為可讀性源碼工程,開發(fā)人員可充分了解代碼運行機(jī)制,并在源碼上進(jìn)行二次開發(fā)及擴(kuò)展。
工商銀行低代碼平臺的創(chuàng)新研究及實踐
工商銀行2012年就進(jìn)行了可視化開發(fā)模式的探索,并在開發(fā)平臺中集成了部分可視化開發(fā)工具,以簡化繁重的研發(fā)工作。隨著工商銀行分布式技術(shù)體系的不斷發(fā)展,前后端分離研發(fā)模式、新一代企業(yè)級基礎(chǔ)開發(fā)平臺、云平臺、微服務(wù)體系走向成熟,為充分復(fù)用優(yōu)良的技術(shù)資產(chǎn)的架構(gòu)沉淀,同時滿足金融業(yè)務(wù)安全及性能的較高要求,工商銀行于2020年底啟動業(yè)界低代碼平臺研究,并于2021年建成了基于數(shù)據(jù)模型驅(qū)動、依托代碼運行模式的低代碼平臺。
基于上述背景,工商銀行形成了融合現(xiàn)有研發(fā)體系、打造全鏈路可視化開發(fā)的建設(shè)思路。一是納管存量技術(shù)資產(chǎn),繼承分布式技術(shù)體系,構(gòu)建多層次細(xì)粒度可復(fù)用的企業(yè)數(shù)字化資產(chǎn);二是建設(shè)云上可視化開發(fā)IDE,以數(shù)據(jù)模型驅(qū)動為核心,面向整個研發(fā)過程,實現(xiàn)全流程可視化開發(fā)的能力;三是完善代碼擴(kuò)展能力,讓低代碼平臺的產(chǎn)出應(yīng)用不再受制于平臺本身的能力;四是打通DevOps構(gòu)建交付流程,支撐應(yīng)用全生命周期管理。充分整合現(xiàn)有研發(fā)支撐體系能力,復(fù)用存量資產(chǎn),實現(xiàn)更高效的企業(yè)級應(yīng)用開發(fā)。平臺整體架構(gòu)建立于行內(nèi)新一代前后端分離開發(fā)體系之上,引入可視化技術(shù),承接現(xiàn)有服務(wù)體系,基于數(shù)據(jù)模型驅(qū)動技術(shù),快速實現(xiàn)應(yīng)用開發(fā),并整合行內(nèi)研發(fā)支撐體系,實現(xiàn)應(yīng)用的快速構(gòu)建及交付。如圖1所示。
圖1 低代碼平臺總體架構(gòu)
1.構(gòu)建多層次細(xì)粒度可復(fù)用企業(yè)數(shù)字化資產(chǎn)
低代碼平臺的快速搭建應(yīng)用能力依托于豐富的數(shù)字化資產(chǎn)。工商銀行始終走在金融科技創(chuàng)新的先列,已建成數(shù)量眾多的企業(yè)級應(yīng)用,積累了寶貴的研發(fā)資產(chǎn)。通過規(guī)范化、標(biāo)準(zhǔn)化的資產(chǎn)接入方式,將已有資產(chǎn)納入低代碼平臺,能夠為“積木式”搭建提供有效物料,實現(xiàn)已有資產(chǎn)的復(fù)用。
資產(chǎn)接入主要劃分為組件、模板及外部接口。通過提供資產(chǎn)擴(kuò)展腳手架,在其中添加組件、區(qū)塊的結(jié)構(gòu)化定義,實現(xiàn)可視化組件納入。基于原子化組件在平臺內(nèi)進(jìn)行編排搭建的頁面、流程及應(yīng)用可導(dǎo)出為模板,供后續(xù)開發(fā)復(fù)用。通過平臺內(nèi)置的接口中心,可以導(dǎo)入外部接口實現(xiàn)能力復(fù)用。如圖2所示。
圖2 資產(chǎn)中心
存量技術(shù)資產(chǎn)納入低代碼開發(fā)平臺后,實現(xiàn)了應(yīng)用開發(fā)資產(chǎn)互通互聯(lián),可以有效盤活存量資產(chǎn);同時角色劃分更為清晰,對于技術(shù)能力較強(qiáng)的專業(yè)開發(fā)人員,可以聚焦于平臺基礎(chǔ)組件開發(fā),通過不斷持續(xù)交付新的組件,實現(xiàn)平臺整體能力提升,對于業(yè)務(wù)流程熟悉的開發(fā)人員,低代碼能有效屏蔽底層技術(shù)細(xì)節(jié),讓開發(fā)人員聚焦于業(yè)務(wù)實現(xiàn)。如圖3所示。
圖3 低代碼開發(fā)模式
2.以數(shù)據(jù)模型驅(qū)動為核心,建設(shè)全流程可視化開發(fā)能力
數(shù)據(jù)是金融行業(yè)的關(guān)鍵生產(chǎn)要素。在技術(shù)選型上,我行低代碼平臺以數(shù)據(jù)模型驅(qū)動為核心,圍繞業(yè)務(wù)數(shù)據(jù)處理流轉(zhuǎn)等場景,根據(jù)開發(fā)過程中涉及的表結(jié)構(gòu)設(shè)計、前端頁面開發(fā)、業(yè)務(wù)邏輯及業(yè)務(wù)流程開發(fā)等環(huán)節(jié)分別對標(biāo)建設(shè)了數(shù)據(jù)模型可視化開發(fā)、頁面可視化編排、邏輯可視化編排、流程可視化編排,實現(xiàn)了全流程可視化開發(fā)能力。
數(shù)據(jù)模型可視化開發(fā)提供表格化的數(shù)據(jù)模型設(shè)計能力,通過數(shù)據(jù)模型驅(qū)動引擎識別元數(shù)據(jù)和自定義字段,自動生成建表腳本,并同步生成表單頁面及持久層交互接口。其中,元數(shù)據(jù)基于業(yè)務(wù)標(biāo)準(zhǔn)、技術(shù)規(guī)范設(shè)計,能夠動態(tài)滿足客戶需求變化,通過數(shù)據(jù)模型驅(qū)動動態(tài)建模,實現(xiàn)對業(yè)務(wù)數(shù)據(jù)的快速處理功能。如圖4所示。
圖4 數(shù)據(jù)模型驅(qū)動
頁面可視化編排指的是通過多種交互行為,比如拖拽組件、設(shè)計布局等,形成一個完整的前端頁面,降低了前端頁面的開發(fā)門檻。編排后的頁面和流程通常以Schema的形式保存。Schema是一種數(shù)據(jù)結(jié)構(gòu)規(guī)范,常用的有JSON Schema和XML Schema,通過Schema可以實現(xiàn)可視化頁面或流程與數(shù)據(jù)之間的雙向轉(zhuǎn)換。
邏輯可視化編排將傳統(tǒng)編程語言提取為可視化的邏輯圖元,提供可視化創(chuàng)建變量、公式、規(guī)則的能力,通過開發(fā)人員的拖拽組合行為,將業(yè)務(wù)邏輯可視化地表達(dá)為邏輯節(jié)點與線條,以圖形化形式直觀地表達(dá)業(yè)務(wù)邏輯,屏蔽技術(shù)實現(xiàn)細(xì)節(jié)。
流程可視化編排遵循業(yè)界BPMN2.0標(biāo)準(zhǔn),建設(shè)流程環(huán)節(jié)定義、流程環(huán)節(jié)調(diào)度與控制等核心模塊,對業(yè)務(wù)流程進(jìn)行可視化定義與編排,從而快速實現(xiàn)業(yè)務(wù)流、審批流等常見流程類場景。
3.完善代碼擴(kuò)展機(jī)制,實現(xiàn)靈活業(yè)務(wù)邏輯拓展
由于低代碼開發(fā)依賴于可復(fù)用資產(chǎn)的完善程度,無法完全取代代碼開發(fā)的靈活性和安全性。例如針對涉賬類、涉密類或某業(yè)務(wù)有高度個性化需求等場景,仍需開發(fā)人員手動編碼以保障業(yè)務(wù)需求靈活實現(xiàn),故低代碼平臺采用了高低代碼相結(jié)合的開發(fā)模式。針對業(yè)務(wù)邏輯相對簡單的輕應(yīng)用場景,在頁面樣式編輯、前后端邏輯編排中,內(nèi)置可編輯代碼塊,實現(xiàn)函數(shù)級別的代碼擴(kuò)展;針對復(fù)雜業(yè)務(wù)邏輯或面向存量業(yè)務(wù)系統(tǒng)開發(fā)時,采用導(dǎo)出源碼二次開發(fā)的模式,將低代碼的快速搭建能力與傳統(tǒng)編碼能力相結(jié)合,以覆蓋更多業(yè)務(wù)場景。
4.打通構(gòu)建部署環(huán)節(jié),支撐應(yīng)用全生命周期管理
金融企業(yè)有著比一般企業(yè)更嚴(yán)格的穩(wěn)定性及安全性要求,通過適配行內(nèi)實施多年已經(jīng)過穩(wěn)定性驗證的DevOps流程,做到充分適配我行全生命周期管理,在開發(fā)階段,基于全流程的可視化開發(fā)能力,實現(xiàn)在線協(xié)作開發(fā),并對接Git進(jìn)行項目管理;在測試階段,提供功能在線發(fā)布與測試,通過靜態(tài)類型校驗進(jìn)行異常提示以及在線問題定位;在交付階段,對接流水線實現(xiàn)持續(xù)集成與持續(xù)交付,通過將引擎以及中間件等資源打包入鏡像,結(jié)合前端資源與結(jié)構(gòu)化配置文件,自動化構(gòu)建標(biāo)準(zhǔn)Docker鏡像進(jìn)行交付,從而實現(xiàn)低代碼平臺對應(yīng)用的全生命周期管理。
低代碼平臺運用成效
低代碼開發(fā)平臺底層基于云架構(gòu),支持容器化部署方式,有著友好的可視化界面、一鍵部署的運行環(huán)境以及高度可擴(kuò)展性,能夠降低開發(fā)門檻,打通信息孤島,賦能IT人員,加速數(shù)字技術(shù)發(fā)展。目前工商銀行低代碼平臺已在內(nèi)管類、工具類等多個系統(tǒng)中進(jìn)行了落地試點,在圍繞業(yè)務(wù)數(shù)據(jù)的增刪改查場景、業(yè)務(wù)邏輯較為固化的場景中實現(xiàn)業(yè)務(wù)的快速上線。此外,工商銀行也在繼續(xù)挖掘領(lǐng)域級解決方案,通過劃分業(yè)務(wù)領(lǐng)域,在領(lǐng)域內(nèi)不斷完善低代碼資產(chǎn),抽取通用化業(yè)務(wù)場景,滿足更多業(yè)務(wù)線的需求。工商銀行低代碼平臺有以下4個顯著特點。
一是降低應(yīng)用構(gòu)建門檻:全云化線上開發(fā)模式,圖形可視化操作,學(xué)習(xí)成本低,開發(fā)人員能夠直接構(gòu)建并運行應(yīng)用。
二是加速業(yè)務(wù)敏捷創(chuàng)新:拖拽式頁面構(gòu)建、靈活可視的邏輯編排、流程編排,積木式搭建應(yīng)用可提升開發(fā)效率,縮短業(yè)務(wù)創(chuàng)新周期。
三是快速復(fù)用已有資產(chǎn):提供全面開放的生態(tài)與豐富的集成能力,有效地沉淀業(yè)務(wù)與技術(shù)資產(chǎn),可在多個項目間快速復(fù)用和靈活擴(kuò)展。
四是提供標(biāo)準(zhǔn)化開發(fā)能力:標(biāo)準(zhǔn)組件化開發(fā)方式,屏蔽各種技術(shù)規(guī)范,降低技術(shù)棧迭代成本,破解前端框架無法前向兼容帶來的升級難題,將開發(fā)人員從重復(fù)的編碼與測試中解放,去專注業(yè)務(wù)邏輯。
總結(jié)與展望
基于低代碼平臺標(biāo)準(zhǔn)化開發(fā)能力,能夠降低應(yīng)用構(gòu)建成本,助力企業(yè)統(tǒng)一技術(shù)路線與規(guī)范,保障應(yīng)用安全與穩(wěn)定,加速金融行業(yè)的數(shù)字化轉(zhuǎn)型速度。隨著產(chǎn)品技術(shù)水平的不斷提升,低代碼開發(fā)未來仍有巨大的提升空間。工商銀行將全面總結(jié)試點經(jīng)驗,在以下3個方面提升平臺建設(shè),精進(jìn)低代碼平臺在金融業(yè)務(wù)領(lǐng)域的應(yīng)用。一是建設(shè)領(lǐng)域級技術(shù)資產(chǎn):依照業(yè)務(wù)領(lǐng)域劃分,結(jié)合各領(lǐng)域特點,抽象提取公共組件、頁面、流程等,建設(shè)領(lǐng)域級低代碼應(yīng)用模板。二是提升移動端場景覆蓋:建設(shè)H5及小程序的可視化開發(fā)能力,覆蓋更多業(yè)務(wù)領(lǐng)域。三是探索SaaS場景的建設(shè)模式:在金融業(yè)、生態(tài)云等基礎(chǔ)平臺上,建設(shè)低代碼開發(fā)及一鍵發(fā)布上線能力,賦能業(yè)務(wù)開發(fā)人員,助力傳統(tǒng)金融行業(yè)加速實現(xiàn)數(shù)字化轉(zhuǎn)型。
(欄目編輯:韓維蜜)