履約核心引擎低程式碼化原理與實踐
來源:京東技術
導讀
規則引擎是一種嵌入在應用程式中的元件,主要解決易變邏輯和業務耦合的問題,行業上開源的規則引擎,在網際網路場景使用存在諸多障礙,如高併發略顯不足、更多面向技術人員、無法規模化的讓規則從應用程式程式碼中實現分離。
基於此,京東供應鏈研發部自研了一套,面向業務角色的海納低程式碼規則引擎平臺,產品定位是面向業務、研發多角色一體化的零低程式碼開發平臺,其中規則引擎是其最核心的部分之一,本文以此為核心展開說明。
來源:京東技術
導讀
規則引擎是一種嵌入在應用程式中的元件,主要解決易變邏輯和業務耦合的問題,行業上開源的規則引擎,在網際網路場景使用存在諸多障礙,如高併發略顯不足、更多面向技術人員、無法規模化的讓規則從應用程式程式碼中實現分離。
基於此,京東供應鏈研發部自研了一套,面向業務角色的海納低程式碼規則引擎平臺,產品定位是面向業務、研發多角色一體化的零低程式碼開發平臺,其中規則引擎是其最核心的部分之一,本文以此為核心展開說明。
然而,行業上開源的規則引擎,在網際網路場景使用卻存在諸多障礙。從技術上來看,面對特大流量的高併發略顯不足;從交付上看,操作語言是以研發視角,無法讓更多的非技術人員參與來實現交付鏈條的最大化降低;從實施上,也沒有配套的標準化架構開放規範,無法規模化的讓規則從應用程式程式碼中實現分離。
基於此,京東供應鏈研發部自研了一套,面向業務角色的海納低程式碼規則引擎平臺,產品定位是面向業務、研發多角色一體化的零低程式碼開發平臺,這其中規則引擎是其最核心的部分之一。
這個平臺,不僅可以高效的支援網際網路高併發業務,它還具有一套標準化擴充套件開放的能力。基於此業務系統可以快速實現業務規則的規模化開放,短短4個月內,低成本開放了近100+個擴充套件點,抽取沉澱了近400+個業務規則,支援了14+個京東核心鏈路重大專案,產品經理/ISV也首次以無程式碼的方式,在安全清晰的工作邊界內,自助式的完成京東核心鏈路的業務需求,平均交付週期0.5天內。
2.1 現狀
2.2 挑戰
2.3 方案
一個月後,產品雛形已初步完成,小彭拉上業務線對口的產品和業務來試用,算是譭譽參半,小彭沒有洩氣,收集了大家的問題和反饋,並開始快速迭代。又半個月過去,產品總算達到了可用、可交付的狀態。經過一段時間的試點使用後,一些業務、產品開始主動來尋求合作和反饋。總算形成了正向反饋。
03 核心原理介紹
以上闡述了很多,那這個產品到底是如何完成的呢,其中的原理和亮點分別是什麼? 提高交付效率、保證交付質量、擴大交付角色,是業界追求的最高目標,也是小彭及其小分隊追求的最終目標。為保障產品功能可安全、可靠的交付給業務角色,小分隊探索出了一個帶視覺化介面、研發和產品可共同參與開發的通用性規則平臺,並在平臺內設定了一系列的規範化約定,計劃提供沙箱模式、錄製與回放驗證等機制來保證交付的質量,並提升聯調與驗證的效率。 而其核心原理,簡而言之可以表述為:平臺提供視覺化設計器,業務角色在視覺化介面沉浸式式編排業務規則,即可完成所有業務功能的新增、變更、修改與釋出。與之相對應的,平臺在功能後臺自動生成規則引擎描述檔案,待業務角色稽核完成後自動化的同步給應用系統。應用系統透過SDK對擴充套件點進行攔截,並在擴充套件點執行生效的規則編排。 圖1.海納低程式碼規則引擎工作示意圖 對於適用於業務規則類的業務場景,小分隊的成員很快就發現存在共性特點:“當滿足部分特定業務條件時,執行特定業務動作的一組規則集合”。 小分隊成員對此特點深入研究,發現市面上常見的規則引擎提供的技術規則內容太深奧、太專業,對於普通的業務人員理解難度太高,導致市面的規則引擎產品主要在研發內部使用。為解決這一難題,小分隊在平臺中除了提供純技術規則註冊外,還提供了業務規則註冊與組合編排。使得平臺的使用者不光可以覆蓋至研發角色,還可以覆蓋至業務角色。業務交付需求時,只需關注其業務規則與業務編排,而其背後支撐的複雜技術規則可完全對業務角色透明。最終業務像畫流程圖一樣在平臺進行操作即可自助式完成需求交付。 伴隨著需求交付個數的增長,系統中的業務規則和業務行為不斷地擴充,後續的需求交付可複用之前沉澱確定的業務規則,包括如“自營”、“廠直”、“醫藥”等統一的業務含義,均可統一在後續需求進行復用,可進一步提升交付速度。 下面以一個實際的例子展示海納規則引擎的主要特色功能。為了讓讀者有直觀的感受視覺化規則編排和執行過程,先展示規則編排結果:
圖2.視覺化規則編排結果 從規則流程圖可以看到主要的元素就是菱形和矩形。菱形表示條件,類似於程式碼中的if;而矩形則是動作,就是具體做的一個動作,比如更新資料庫、遠端介面呼叫等任何想做的事。 那麼規則流程是如何被編排出來,編排出來後又是如何執行的呢? 圖3.視覺化規則編排主要過程 註冊擴充套件點: 擴充套件點是規則要執行的切入點,在平臺註冊擴充套件點後,可圍繞該擴充套件點進行業務規則流程編排。 業務模型註冊: 業務模型是業務資料的載體,確保引擎正確識別並訪問模型以進行邏輯運算。 技術規則註冊: 圖4.註冊頁面展示 主要面向研發人員,主要包括方法的簽名資訊,和系統中的程式碼方法對應,提供最基礎的規則。 平臺還內建了豐富的技術規則,如下圖所示,對於一般業務而言,預製的規則可以滿足80%及以上的場景。對於其餘個性化場景,平臺也提供了可擴充套件的能力。 圖5. 預製規則展示 業務規則註冊: 圖6.業務規則註冊 業務規則是對技術規則或業務規則的組合,形成具有業務語義的規則,最終用於業務規則流程編排。為了實現複雜業務條件,提供了and/or/not/group等多種組合形式,方便業務靈活配置。 圖7.組合形式展示 業務規則編排: 圖8.業務規則編排 對業務規則進行組合,以流程圖的方式展現業務流程,最終形成規則流程描述檔案。 規則引擎執行: SDK將規則流程描述檔案解析成規則引擎能執行的指令碼,規則引擎透過執行指令碼完成業務規則的執行。 小結: 對業務角色而言,海納平臺提供視覺化規則編排能力,業務規則主要是由具有業務語義化的條件規則和動作規則組成,因此產品業務人員可以輕鬆地自助完成業務規則編排。隨著規則豐富度持續提升,業務人員也可以對已有規則進行組合或透過自定義規則方式實現新業務規則建立,實現全面自助。 對於研發角色而言,應用系統只需引入SDK並定義要執行規則擴充套件點即可完成整合工作。後續需求業務實現自助化交付後,整個交付的過程從原來的10天,可縮短至最快0.5天,達成了提效的目的。
下面以一個實際的例子展示海納規則引擎的主要特色功能。為了讓讀者有直觀的感受視覺化規則編排和執行過程,先展示規則編排結果:
對於研發角色而言,應用系統只需引入SDK並定義要執行規則擴充套件點即可完成整合工作。後續需求業務實現自助化交付後,整個交付的過程從原來的10天,可縮短至最快0.5天,達成了提效的目的。
04 亮點
1、輕量化 海納規則引擎以對業務系統無侵入,只需引入規則引擎SDK,新增註解即可完成接入,對於存量系統具有友好的支援。一般而言,1天即可快速完成整合工作。 2、高效能 海納平臺是去中心化的設計,平臺只負責流程編排,編排後的結果以流程描述檔案的方式同步給業務系統,應用系統透過SDK解析並執行,採取本地化執行方式,沒有效能瓶頸,並透過了京東訂單履約核心繫統11.11大促驗證。平臺提供的能力支援峰值一天處理超億級訂單平穩執行,單個規則執行的耗時在納秒級別內完成。 3、研發和業務實現分離 海納規則引擎將研發角色和業務角色分離,在技術領域和業務領域間建立規則適配,遮蔽技術細節,讓業務角色更關注業務規則,提高業務角色的使用體驗。 4、視覺化 面向業務語義的流程編排,流程的編排可以向畫流程圖一樣方便,實現所見即所得的業務體驗。 5、技術資產沉澱 透過在平臺上註冊業務規則和業務行為,可實現技術資產沉澱,隨著業務規則的擴充,可支援更為豐富的業務流程。
05 總結
時間又回到了當下,產品小李找到了小彭,同步了近期業務提過來的幾個需求,均已經在海納規則引擎低程式碼平臺自助化實現了,單個需求差不多5到10分鐘即可完成配置,全程在平臺上沉浸式操作即可。但最終上線需要小彭幫忙審批一下。仔細檢查了業務規則條件,確認業務邏輯符合預期後,小彭快速移動滑鼠,輕輕點選了“釋出生效”,新配置的規則就如同打一個響指一樣,秒級的速度就更新至線上生產環境,並全面執行了。送走小李後,小彭看著線上平穩的監控曲線出神,這個手段確實挺有效,省去了需求評審、業務功能開發、業務功能內部測試的時間,業務角色可以快速自助化交付。那麼其餘60%的需求如何提效呢?是否有其他的解決方案呢?小彭又陷入了沉思。
在專案需求日趨增加,而人力資源逐步成為瓶頸的時候,採用多種方式來達成提效的效果,是擺在所有人面前的一個難題。希望本文章可以以一個視角和解決方案,以拋磚引玉的方式,引起讀者更多的共鳴和思考。
04 亮點
1、輕量化 海納規則引擎以對業務系統無侵入,只需引入規則引擎SDK,新增註解即可完成接入,對於存量系統具有友好的支援。一般而言,1天即可快速完成整合工作。 2、高效能 海納平臺是去中心化的設計,平臺只負責流程編排,編排後的結果以流程描述檔案的方式同步給業務系統,應用系統透過SDK解析並執行,採取本地化執行方式,沒有效能瓶頸,並透過了京東訂單履約核心繫統11.11大促驗證。平臺提供的能力支援峰值一天處理超億級訂單平穩執行,單個規則執行的耗時在納秒級別內完成。 3、研發和業務實現分離 海納規則引擎將研發角色和業務角色分離,在技術領域和業務領域間建立規則適配,遮蔽技術細節,讓業務角色更關注業務規則,提高業務角色的使用體驗。 4、視覺化 面向業務語義的流程編排,流程的編排可以向畫流程圖一樣方便,實現所見即所得的業務體驗。 5、技術資產沉澱 透過在平臺上註冊業務規則和業務行為,可實現技術資產沉澱,隨著業務規則的擴充,可支援更為豐富的業務流程。
05 總結
時間又回到了當下,產品小李找到了小彭,同步了近期業務提過來的幾個需求,均已經在海納規則引擎低程式碼平臺自助化實現了,單個需求差不多5到10分鐘即可完成配置,全程在平臺上沉浸式操作即可。但最終上線需要小彭幫忙審批一下。仔細檢查了業務規則條件,確認業務邏輯符合預期後,小彭快速移動滑鼠,輕輕點選了“釋出生效”,新配置的規則就如同打一個響指一樣,秒級的速度就更新至線上生產環境,並全面執行了。送走小李後,小彭看著線上平穩的監控曲線出神,這個手段確實挺有效,省去了需求評審、業務功能開發、業務功能內部測試的時間,業務角色可以快速自助化交付。那麼其餘60%的需求如何提效呢?是否有其他的解決方案呢?小彭又陷入了沉思。
在專案需求日趨增加,而人力資源逐步成為瓶頸的時候,採用多種方式來達成提效的效果,是擺在所有人面前的一個難題。希望本文章可以以一個視角和解決方案,以拋磚引玉的方式,引起讀者更多的共鳴和思考。
透過在平臺上註冊業務規則和業務行為,可實現技術資產沉澱,隨著業務規則的擴充,可支援更為豐富的業務流程。
05 總結
時間又回到了當下,產品小李找到了小彭,同步了近期業務提過來的幾個需求,均已經在海納規則引擎低程式碼平臺自助化實現了,單個需求差不多5到10分鐘即可完成配置,全程在平臺上沉浸式操作即可。但最終上線需要小彭幫忙審批一下。仔細檢查了業務規則條件,確認業務邏輯符合預期後,小彭快速移動滑鼠,輕輕點選了“釋出生效”,新配置的規則就如同打一個響指一樣,秒級的速度就更新至線上生產環境,並全面執行了。送走小李後,小彭看著線上平穩的監控曲線出神,這個手段確實挺有效,省去了需求評審、業務功能開發、業務功能內部測試的時間,業務角色可以快速自助化交付。那麼其餘60%的需求如何提效呢?是否有其他的解決方案呢?小彭又陷入了沉思。
在專案需求日趨增加,而人力資源逐步成為瓶頸的時候,採用多種方式來達成提效的效果,是擺在所有人面前的一個難題。希望本文章可以以一個視角和解決方案,以拋磚引玉的方式,引起讀者更多的共鳴和思考。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024420/viewspace-2953001/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Redis核心原理與實踐--事務實踐與原始碼分析Redis原始碼
- 轉轉上門履約的LBS實踐
- JDK ThreadPoolExecutor核心原理與實踐JDKthread
- Redis核心原理與實踐--列表實現原理之ziplistRedis
- 低程式碼與大語言模型的探索實踐模型
- 低程式碼-業務流程引擎
- 聊聊「低程式碼」的實踐之路
- Nestjs最佳實踐教程(六): 簡化程式碼與自定義約束JS
- Redis核心原理與實踐--Redis啟動過程原始碼分析Redis原始碼
- Redis核心原理與實踐--列表實現原理之quicklist結構RedisUI
- 《流程引擎原理與實踐》開源電子書
- 新書介紹 -- 《Redis核心原理與實踐》新書Redis
- 【提升團隊運營效率】交易履約之訂單中心實踐
- 攜程後臺低程式碼平臺的探究與實踐
- 前端效能優化原理與實踐前端優化
- 履約產品:產品體系&履約監控產品搭建
- 開源低程式碼平臺開發實踐一:低程式碼開發探討與技術選型
- 網易雲音樂低程式碼體系建設思考與實踐
- 低程式碼實時數倉構建系統的設計與實踐
- 銀彈谷:低程式碼助力行業數字化轉型實踐行業
- angr原理與實踐(一)——原理
- 【阿順】Flex編碼約定與最佳實踐Flex
- Webpack原理與實踐Web
- vysor原理與程式碼實現
- 低程式碼平臺選型(一)| 引擎篇
- 實踐,製作一個高擴充套件、視覺化低程式碼前端,詳實、完整套件視覺化前端
- Mysql事務原理與最佳化最佳實踐MySql
- 程式碼除錯-入門、實踐到原理除錯
- 高德客戶端低程式碼系統架構實踐客戶端架構
- MelGan原理與實踐篇
- Vue CLI 原理與實踐Vue
- RocketMQ的原理與實踐MQ
- C#非同步程式設計:原理與實踐C#非同步程式設計
- 《機器學習觀止——核心原理與實踐》之 K-NN 演算法機器學習演算法
- Flink 引擎在快手的深度優化與生產實踐優化
- 阿里云云效智慧化程式碼平臺的探索與實踐阿里
- Spark 以及 spark streaming 核心原理及實踐Spark
- YonBuilder低程式碼開發實踐:4行程式碼實現跨實體列表資料同步UI行程