企業在數字化轉型過程中,為了提高效率、降低成本,追求如何快速高效地開發企業應用,以及如何有效複用現有的應用資產,避免重複造輪子。
BizWorks是阿里雲釋出的一體化的雲原生應用的開發和運營平臺,其提供的產品能力普遍適用於企業雲原生應用高效開發以及企業資產沉澱和複用的場景,能夠幫助客戶高效、低門檻地構建雲原生應用。BizWorks平臺內建阿里業務中臺構建的最佳技術實踐,主要包括了業務建模平臺、業務應用平臺、演練壓測平臺、能力運營平臺、一體化執行和運維平臺,涵蓋開發、測試、運維、運營等應用全生命週期,致力於成為企業數字化轉型的新基座。
BizWorks作為企業級雲原生應用數字工作臺,能很好地支撐企業數字中臺建設、雲原生應用開發、企業資產運營管理等場景。本文不會全面介紹BizWorks平臺的能力,而是著重介紹BizWorks在實現應用高效開發與複用上提供的產品能力。
企業應用的高效開發
建模設計平臺
BizWorks建模設計平臺是基於領域驅動設計方法論的模型設計平臺,提供了對業務域、領域模型、資料模型等視覺化建模能力。主要包括:
-
領域模型設計:包括領域物件屬性、關係配置,以及領域服務的設計
-
資料模型設計:包括資料模型屬性設定、關係配置,支援資料模型匯入匯出,並可依據模型設定快捷生成資料庫指令碼
-
應用服務設計:設計和管理業務域提供的應用服務及其下屬的應用服務方法
使用領域模型設計器,可以直觀地看到領域物件之間的關係,也可透過圖形化介面建立、編輯及刪除領域模型。
在完成領域模型設計後,平臺支援根據領域物件直接批次建立應用服務、結構物件和資料模型,同時會自動建立模型間的關係對映,其中應用服務涵蓋了日常使用的增刪改查應用服務方法,可以極大的降低領域建模操作複雜度,提高應用開發的效率。
對於資料模型設計,平臺支援根據資料模型一鍵生成資料庫指令碼或者從資料庫匯入資料模型,同時也能根據資料模型批次生成應用服務。
應用開發平臺
應用開發平臺是BizWorks應用的建立、開發和管理平臺,支援API介面定義、根據業務域和商業能力模型生成腳手架程式碼以及程式碼掃描上報功能,並能基於流水線完成應用的部署。在完成建模平臺的模型設計後,可快速利用應用平臺完成應用開發。
BizWorks中心應用是利用應用開發平臺進行建模、開發、部署並運維的中臺應用,提供視覺化編排、程式碼生成等能力,能夠加快應用開發速度。在完成業務域技術建模後,可以建立中心應用,中心應用可關聯已建立的業務域,作為對該業務域的一種技術實現。
中心應用提供了腳手架程式碼生產能力,可根據當前應用關聯的業務域和商業能力模型生成對應的介面定義、介面實現、領域服務類、聚合根、值物件、實體類、資料物件類、資料ORM以及常用的操作,包括增、刪、改、查等相關操作程式碼。程式碼生成能力可大幅提升研發效率,讓研發人員專注業務邏輯本身。
在生成腳手架程式碼完成邏輯開發的過程中,可能存在需要修改模型的情況。平臺提供了後設資料和程式碼雙向同步的能力,研發人員可以在開發過程中使用特定的註解新增、修改或刪除模型後設資料,開發完成後再上報到平臺,和平臺上的後設資料做合併,形成最終確定的後設資料。這個功能特效能保持研發人員流暢的工作流程,提高工作效率。
針對Web應用構建場景,Bizworks又支援低程式碼應用開發模式。BizWorks平臺上持續沉澱的中臺業務能力,可以在低程式碼平臺直接可見,開發者可以根據需要選擇依賴使用相應的業務能力,使低程式碼應用構建在業務中臺之上。目前低程式碼配置和編排標準能力主要包括四編排:模型編排、服務編排、流程編排、頁面編排。
- 開發人員可以在低程式碼應用中定義服務方法(API),用於前端呼叫或者後端呼叫。平臺的系統方法頁面中平臺預置了部分服務方法,同時服務方法支援從業務域的應用服務批次建立。其中自定義服務編排支援變數定義、變數賦值、條件分支、遍歷迴圈、表示式、中臺服務方法呼叫、應用服務方法呼叫、REST API呼叫,主要針對已有的中臺服務做進一步編排和組裝,編排完成後可以被前端頁面呼叫,實現前端頁面和後端服務的打通。
- 頁面編排支援Web介面的視覺化設計,平臺預置了豐富的前端元件,支援前端邏輯流的編排和JavaScript開發,同時提供自定義元件、自定義頁面的全程式碼開發能力,助力開發者快速開發企業級的Web頁面。頁面編排中可以非常方便的呼叫各種服務編排的方法,有效降低了前後端溝通協作的成本,提升整體的研發效率。
- 頁面設計支援應用預覽功能,能夠讓開發人員快速看到頁面設計改動的效果。同時,平臺也提供了一些頁面校驗能力,幫助開發人員快速定位頁面設計中存在的問題,提升開發設計的效率。
- 針對長事務的業務流程,平臺支援對企業業務流程做視覺化建模和實現。開發人員利用人工任務、審批任務、服務呼叫(自動化任務)、分支等流程節點把應用系統的業務流程模型編排出來,藉助BizWorks平臺提供的流程引擎快速開發業務流程。
此外, 當領域模型面對的業務場景愈加複雜,提供一套全面的模型檢測能力對模型錯誤的快速定位和排查效率都非常重要。平臺提供了應用級別和設計器級別(針對頁面編排、服務編排、流程編排設計器)2種視角的合法性檢查校驗,支援定義配置完整性、表示式語法、資源依賴關係等檢查校驗,幫助開發人員在應用部署前高效地發現問題,定位問題和處理問題。
模型資產的快速複用
為了實現高效的應用開發以及幫助企業完成資產的持續沉澱和複用,BizWorks平臺提供了一些應用模型資產的複用能力,這些能力既可以幫助開發人員基於現有的能力進行改進,提升開發效率;也能幫助企業不斷沉澱資產,可以做到快速複製並重用現有的能力。
資料模型的匯入匯出
針對設計好的資料模型,開發人員可以將資料模型匯出儲存為json型別的模型檔案,然後在其他專案中匯入資料模型檔案,基於現有的資料模型做進一步改進,實現了資料模型的複用。
業務域模型的匯入匯出
進一步的,整個業務域模型也支援模型的匯入與匯出。系統可以完整的將所選擇業務域版本下的領域物件、領域服務、結構物件和應用服務一起匯出,儲存為xlsx型別的模板檔案。而在匯入模板時可選擇將模板檔案的資料匯入到指定的業務域中。
結構物件、服務方法及頁面的複製
在使用低程式碼應用開發模式時,考慮到可能存在需要重複地建立相似結構物件、服務方法或者頁面的場景,BizWorks平臺實現了結構物件、服務方法以及頁面的複製功能,可基於現有的物件直接複製或作出一定改動,生成新的結構物件、服務方法以及頁面,提升了開發的效率。
在頁面設計的過程中,也可透過複製Schema的方式實現頁面編排的快速複製。
不同應用模板的匯入匯出
BizWorks支援建立不同型別的應用,主要包括中心應用、託管應用、輕應用以及整合應用。中心應用是利用BizWorks平臺進行建模、開發、部署並運維的中臺應用,提供視覺化編排、程式碼生成等能力,能夠加快應用開發速度;託管應用可用來託管各類應用,一個託管應用支援由多種型別的元件構成,目前支援的元件型別包括程式碼、映象和模板(Helm Chart)三種;而輕應用能夠在BizWorks底層模型的基礎上,透過模型關聯、服務編排及頁面編排,以視覺化方式搭建前端頁面,完成前端應用和中臺服務的打通。
BizWorks能夠支援不同應用生成相應的應用模板。針對不同型別的應用,開發人員按照建立模板的步驟對模板檔案資訊進行設定,然後將模板匯出儲存成檔案。生成的模板檔案可供開發人員在新的專案下進行模板安裝,這樣就實現了應用的快速複製和複用,有效利用了現有的企業應用資產,避免開發過程中的重複造輪子。此外,開發人員還可將應用模板進行上架,應用模板上架後將同步至企業應用模板中心,該模板可被企業內其他使用者訪問並下載使用。這樣BizWorks就幫助企業完成了應用資產的匯聚和管理,同時提供統一的資產釋出門戶,實現資產可管、可視、可用、可溯的全生命週期管理。
開發人員可以透過模板的方式安裝應用,模板來源既可以是透過現有的企業應用模板,也可以是開發人員自己匯入的模板檔案。模板安裝的方式可以讓開發人員在專案中快速複製並進一步修改,提升了研發的效率。
進一步瞭解BizWorks
以上只是BizWorks為實現高效的企業應用開發與複用提供的部分功能,作為一個企業級雲原生應用數字工作臺,BizWorks具備豐富的靈活性和較高的專業性,提供一站式雲原生應用開發和運營平臺,涵蓋開發、測試、運維、運營等應用全生命週期,讓企業實現雲原生使用自由,同時提供規範管理、組織協同、多雲支撐的能力。如果大家對BizWorks相關產品有興趣,歡迎阿里雲廣網搜尋訪問BizWorks主頁做詳細瞭解。