隨著企業數字化和上云的趨勢愈演愈烈,越來越多的個性化SaaS應用,需要更快、更高效的開發。低代碼是近年來流行的一種企業軟件快速開發技術和工具,憑借其低門檻、高效率和易集成等特性,受到越來越多軟件開發團隊的青睞。
據Gartner預測,到2024年四分之三的大企業將會使用至少4種低代碼開發平臺,用于信息化應用開發。屆時,65% 的應用開發將通過低代碼完成。今天我們就一起來聊聊低代碼!
一、什么是低代碼平臺?
1、Wikipedia的定義:
低代碼開發平臺(LCDP)提供了一個開發環境,用于通過圖形用戶界面而不是傳統的手工編碼計算機編程來創建應用程序軟件。低編碼的平臺可能產生完全可操作的應用程序,可能需要為特定情況編寫額外的代碼。低代碼開發平臺減少了傳統手工編碼的數量,加速了業務應用程序的交付。一個常見的好處是,更廣泛的人可以為應用程序的開發做出貢獻——不僅僅是那些具有編碼技能的人。lcdp還可以降低安裝、培訓、部署和維護的初始成本。
維基百科關于低代碼的定義有5個關鍵的點:
(1)通過圖形界面寫程序
(2)可以產生完整應用程序
(3)減少代碼量,加速應用交付
(4)降低門檻(讓更多人可以參與到程序開發中)
(5)降低成本(安裝、培訓、部署和維護)
2、Forrester的定義:
應用程序開發平臺,支持用最少的手工編碼快速交付應用程序,并快速設置和部署。
Forrester的定義和Wikipedia定義基本一致,但是更加直白,去掉了圖形界面的限制,強調以最少的手工編碼,實現快速交付、設置和部署。
3、Gartner的定義:
企業低代碼應用程序平臺(Enterprise Low-code application platform, LCAP)使用低代碼和無代碼技術,如聲明式、模型驅動的應用程序設計和開發,以及簡化的一鍵式應用程序部署,提供快速的應用程序開發和部署。LCAP通常創建元數據,并在運行時解釋該元數據,并抽象底層服務器基礎設施,以方便使用;許多還允許可選的過程編程擴展。LCAP支持:
(1)通過響應式web和移動應用程序的UI功能;
(2)頁面、業務流程和決策或業務規則的編配或編排;
(3)內置的數據庫;
(4)應用程序的“一鍵”部署。
Gartner的非常詳細,甚至將低代碼的常見技術棧都羅列了出來。
綜合以上三家的定義,我們來看看什么是低代碼?
從表現上來看,低代碼應具備圖形界面編碼,響應式的UI功能(托拉拽),可以實現編配和編排,可以產生應用程序。
從本質上來看,也就是低代碼的核心價值。低代碼能夠:
(1)降低寫代碼的門檻——讓更多的非軟件專業人員可以來實現功能;
(2)降低編寫的代碼數量——減少測試、部署和運維工作;
(3)降低交付和部署成本——提升客戶滿意度。
二、騫云的低代碼思考
SmartCMP作為云原生的IT統一管理平臺需要對接大量系統,包括公有云、私有云(甚至是魔改的私有云)、各類第三方系統(釘釘、微信、各種OA、堡壘機、備份恢復系統)、客戶自研的系統等;此外,企業需求發散,流程復雜也成為業內研發中的難題。很多IT統一管理平臺很難實現產品化也正是由于這兩大原因。
自產品設計之初,SmartCMP的目標便是實現千人千面,即要求每個權限、菜單、按鈕、甚至字段都應該可以配置和模塊解耦,即每個對接的平臺、資源、甚至資源上的操作都應該可以快速接入并單獨配置,并且這種配置不需要編譯,用戶可以直接參與。于用戶而言,能夠最大化滿足用戶個性化場景;于自身而言,能夠大幅度提高產品開發交付效率,降低合作伙伴和用戶參與的門檻,業務專家可以直接開發產品。
那么SmartCMP是如何實現上述目標的呢?沒有銀彈,但低代碼確是一劑良藥,騫云認為低代碼是針對IT管理的上述的兩大問題的良藥。我們是這么理解低代碼的:
首先是插件化和模型化,插件化就是相互不影響,又可以進行組裝,在我們的平臺上不同的模塊、不同的功能、對接的不同平臺、甚至同平臺的不同資源,都應該是插件。模型就是相同的部分可以抽象成模型,增加復用。就像樂高積木,可以使用10塊拼成一個小鴨子,可以使用3696塊拼成一輛蘭博基尼,更可以使用7541塊拼成一個千年隼,千年隼和小鴨子本質都是樂高積木塊,但是呈現這么大不同,那是因為他們設計不同。
其次,還是拼樂高的例子。拼的過程很愉悅,但確實費時費力還費手,所以我們發明了引擎。什么是引擎驅動?與3D打印機類似,只要給出圖紙,放入材料,3D打印機什么都可以制造出來,可以是一顆牙齒,一艘船,甚至是一只鞋子。
騫云平臺針對不同場景提供三大引擎,業務專家們只要“畫圖紙”,我們的“引擎”,便可將“模型”自動組裝起來,這樣就可以低代碼甚至無代碼的進行功能開發。這三大引擎包括表單引擎(用來生成頁面)、編排引擎(用來驅動模型)、流程引擎(用來驅動任務)。
1、表單引擎
基于可視化表單,只需要通過拖拽的方式創建和編輯所需要的表單,完成更多內容的編輯和配置。超強便捷的可配置能力,使用者只需通過圖形化拖拽方式,就能實現服務表單配置。拖過拖拽審批表單+可視化流程配置,兩步即可完成一個個性化服務流程。
2、藍圖編排引擎
服務編排藍圖目前已經是面向服務、面向應用的云管理平臺的核心能力之一。SmartCMP通過基于TOSCA的藍圖,可以構建一個面向目標的編排引擎,也就是我們畫出來什么,最后就部署出來什么,變更出來什么。藍圖編排引擎是SmartCMP平臺的一大特色,非專業運維人也可以便捷的進行服務編排。
SmartCMP有兩種服務藍圖設計狀態:
(1)所見即所得的畫布設計
(2)YAML語言編輯,會根據可視化藍圖動態生產
3、流程引擎
基于靈活的BPMN引擎,無需寫代碼,只需在編輯器內將組件拖拽到畫布中,在配置組件的樣式、數據源和交互動作,以可視化的方式完成對功能的開發。同時,內置大量標準流程,供用戶開箱即用。通過可視化流程編輯器可高效實現多種審批方式:多級審批、平行審批、條件審批、第三方審批對接(釘釘、企業微信等)。
三、騫云的低代碼之路
任何物體都具有屬性、操作和關系三個要素,以手機和浮動IP為例:
關于屬性:手機的屬性就是手機的品牌、型號和操作系統等等,比如手機是小米牌,型號是11ultra,系統是安卓;對于浮動IP來說,她的屬性就是ID、帶寬等等。
關于操作:對于手機來說,就是開機和關機等;對于浮動IP來說,就是綁定IP、調整帶寬等。
關于關系:手機的關系包括這部手機由誰制造,現在屬于誰;對于浮動IP來說,就是可以關聯到一個虛擬機上等。
騫云的組件是對云資源的抽象,我們標準化、抽象化了所有云平臺的云資源為組件。對于SmartCMP來說,虛擬機、數據庫、負載均衡甚至安全組都是組件,每個組件,我們都賦予了其標準的屬性、操作和關系,甚至還可以關聯該組件的監控。
通過低代碼的運用,騫云的團隊開發效率得到了大幅提升,接入一個新平臺的計算、網絡和存儲由原先4人月減少至4人周,釋放了75%的人力;合作伙伴甚至客戶自己都可以參與到產品開發中,業務專家可以直接把自己的想法實現出來,而不再需要通過程序員,交付效率也有了質的飛躍。
騫云通過近些年的低代碼實踐,在該項技術上也總結出了“低代碼實踐三步走”的經驗:
(1)開發人員使用,用戶內部開發效率的提升,尤其是產品開發的定制化和交付定制化;
(2)提供給合作伙伴和客戶使用,方便定制和二次開發,靈活應對不同場景特點,實現低成本交付;
(3)吸引用戶或者專業團隊(比如ISV),在平臺上構建全新應用,利用售賣給平臺客戶。
目前第一步和第二步騫云已經走的非常扎實,第三步正在穩步持續進行中。
四、低代碼之未來展望
合理并有效地運用低代碼,能夠為企業縮短開發周期、降低運營成本、提高開發質量,低代碼的價值在業內的實踐探索過程中已有目共睹。當前,低代碼還處于國內發展的初期階段,但在軟件產業供給遠跟不上社會需求的今天,低代碼不會成為曇花一現的概念,而將會作為新的軟件開發模式,形成長遠發展趨勢,對軟件產業乃至整個社會產生巨大影響。
騫云是低代碼平臺的前沿實踐者,并取得了實踐的豐碩成果。未來,低代碼將帶領數字化轉型去往何處,讓我們拭目以待!