華為云低代碼引擎 TinyEngine 服務(wù)端正式開源(華為云低代碼平臺)

作者 | TinyEngine 團隊

策劃 | Tina

背景介紹

TinyEngine 低代碼引擎介紹

隨著企業(yè)對于低代碼開發(fā)平臺的需求日益增長,急需一個通用的解決方案來滿足各種低代碼平臺的開發(fā)需求。正是在這種情況下,低代碼引擎應(yīng)運而生。它是一種通用的開發(fā)框架,通過對低代碼平臺系統(tǒng)常用的功能進行解構(gòu),將其劃分為多個功能模塊,并為每個模塊定義了相應(yīng)的協(xié)議和開發(fā)范式,使得開發(fā)者可以根據(jù)自身的業(yè)務(wù)需求,輕松定制開發(fā)出自己的低代碼開發(fā)平臺。

TinyEngine 提供了低代碼底層能力,并集成了人工智能,從而使用戶能夠高效開發(fā)。TinyEngine 具有強大的拖拽功能,無論是圖元還是復雜組件,都能在畫布上帶來流暢的體驗。它適用于多場景的低代碼平臺開發(fā),包括資源編排、流程編排、服務(wù)端渲染、模型驅(qū)動、移動端、大屏端以及頁面編排等低代碼平臺。

TinyEngine 官網(wǎng):_https://opentiny.design/tiny-engine

TinyEngine 源碼:_https://github.com/opentiny/tiny-engine (歡迎 star)

服務(wù)端開源介紹

2023 年 9 月 21 日,TinyEngine 在華為全聯(lián)接大會正式宣布開源,引發(fā)了廣泛的關(guān)注,3 個月時間收獲了 960 個 Star,組建了 4 個用戶交流社群,成員數(shù) 772 名。

很多企業(yè)和個人開發(fā)者嘗試基于 TinyEngine 搭建自己的低代碼平臺,為搭建企業(yè) Web 應(yīng)用提效。在使用過程中,大家也遇到了很多問題,比較常見的包括:如何對接服務(wù)端、如何導入第三方組件庫、如何使用插槽、如何生成代碼、如何開發(fā)自定義插件等,為此我們在 10 月 27 日策劃了一次線上直播答疑活動,邀請了團隊技術(shù)專家為大家答疑解惑。

其中如何對接服務(wù)端是眾多開發(fā)者非常關(guān)注的問題,為了幫助開發(fā)者打通低代碼平臺搭建的前后端整體流程,本次 TinyEngine 低代碼引擎服務(wù)端配套代碼的開源,讓開發(fā)者能夠深入了解 TinyEngine 低代碼引擎的前后端運行機制,更能夠讓更多的小伙伴以更深的層次參與到產(chǎn)品共建,共同探討并改進系統(tǒng),推動其不斷優(yōu)化,帶來更高的創(chuàng)新潛力,使得更多的人能夠從中受益。

同時服務(wù)端的開源為自由定制和擴展提供了可能,開發(fā)者可以參考 TinyEngine 的代碼,根據(jù)自身需求對服務(wù)端進行改造創(chuàng)新,從而使得產(chǎn)品更具靈活性,能夠滿足各種復雜的業(yè)務(wù)需求,構(gòu)建一個強大而健壯的 TinyEngine 生態(tài)系統(tǒng)。

核心特性

當今互聯(lián)網(wǎng)應(yīng)用的復雜性和用戶需求的多樣性要求我們搭建一套靈活的、便于擴展的系統(tǒng)架構(gòu),以滿足不斷變化的業(yè)務(wù)需求。因此我們引入了微服務(wù)的概念,將系統(tǒng)拆分為小而獨立的服務(wù)單元,使得每個服務(wù)單元都可以獨立開發(fā)、測試和部署。這種架構(gòu)不僅提高了團隊的協(xié)作效率,還使得系統(tǒng)更容易擴展和維護。

  • TinyEngine 設(shè)計器微服務(wù)選擇了基于 Node.js 的技術(shù)棧,為前端開發(fā)者提供了一致的開發(fā)體驗,無需學習額外的語言即可全棧開發(fā),降低了開發(fā)難度和學習曲線,避免了學習新語言的困擾。更能夠從服務(wù)端的角度去理解 TinyEngine 設(shè)計器的運行原理與設(shè)計思想。
  • 在我們的架構(gòu)設(shè)計中,我們采用了 Egg.js 作為業(yè)務(wù)接口微服務(wù)的框架。Egg.js 優(yōu)秀的設(shè)計和豐富的插件生態(tài)系統(tǒng),使得我們能夠迅速構(gòu)建可維護、可擴展的微服務(wù),從而確保系統(tǒng)的穩(wěn)定性和可維護性。
  • 為了降低服務(wù)耦合,我們還單獨封裝了提供數(shù)據(jù)庫操作接口的數(shù)據(jù)中心微服務(wù),在框架選型上我們選擇了 Strapi,Strapi 是一個開源數(shù)據(jù)管理框架。不僅提供了強大的數(shù)據(jù)管理和查詢功能,還支持自定義內(nèi)容類型和靈活的 API 構(gòu)建,為我們的微服務(wù)提供了豐富的數(shù)據(jù)支持。Strapi 的易用性和可擴展性使得我們能夠高效地管理和發(fā)布數(shù)據(jù),確保前端業(yè)務(wù)接口始終能夠獲得及時、準確的數(shù)據(jù)支持。

綜上所述,我們的技術(shù)架構(gòu)旨在提供高效、可維護、可擴展的系統(tǒng),充分利用 Node.js 和現(xiàn)代化的開源工具,使我們能夠更好地滿足不斷變化的業(yè)務(wù)需求。這種架構(gòu)不僅提高了開發(fā)效率,還為未來的擴展和創(chuàng)新提供了堅實的基礎(chǔ)。

服務(wù)端架構(gòu)

根據(jù)上面的介紹,開發(fā)者可以根據(jù)微服務(wù)這一特性,輕松擴展并實現(xiàn)自己的 TinyEngine 服務(wù)端架構(gòu)。

  • 業(yè)務(wù)接口微服務(wù)(webService):構(gòu)建業(yè)務(wù)的引擎, 匯總連接其他微服務(wù)為前端提供接口。
  • 數(shù)據(jù)中心 (dataCenter):作為數(shù)據(jù)基座,統(tǒng)一進行數(shù)據(jù)管理,為其他微服務(wù)提供一致性的數(shù)據(jù)支持。

華為云低代碼引擎 TinyEngine 服務(wù)端正式開源(華為云低代碼平臺)

根據(jù)上述架構(gòu)特點,我們可以在此基礎(chǔ)上,通過核心的 webService (業(yè)務(wù)接口微服務(wù)) 搭配任務(wù)隊列服務(wù) (RabbitMq、 Kafka、 RocketMq 等等) 連接其他功能微服務(wù), 從而拓展整體系統(tǒng)的功能,例如:

  • 構(gòu)建服務(wù):由 webService 收集用戶請求觸發(fā)任務(wù)隊列執(zhí)行耗費機器資源的構(gòu)建設(shè)計器、區(qū)塊、物料的相關(guān)服務(wù)。
  • 爬蟲服務(wù):單獨封裝 安裝了 puppeteer 服務(wù)器的微服務(wù),由 webService 觸發(fā)去執(zhí)行一些爬取數(shù)據(jù)、代理登錄等等操作。
  • AI 大模型相關(guān)服務(wù):連接自己內(nèi)部 AI 大模型, 進行設(shè)計器智能化相關(guān)的 AI 代碼生成、指令操作等等功能的。
  • 發(fā)布服務(wù):封裝自己的 CI/CD 流水線微服務(wù),結(jié)合設(shè)計器代碼產(chǎn)出,使代碼生產(chǎn) – 構(gòu)建 – 部署一條龍式運作。

華為云低代碼引擎 TinyEngine 服務(wù)端正式開源(華為云低代碼平臺)

硬件配置

本地開發(fā)

推薦使用 windows 操作系統(tǒng), 推薦配置如下:

  • 64 位操作系統(tǒng)
  • 12 核 CPU
  • 32G 內(nèi)存

服務(wù)容器化部署

以下信息為支撐 50 qps 并發(fā)量的配置參考, 開發(fā)者可根據(jù)實際情況進行具體問題具體分析,配置信息僅供參考.

配置單位:

  • U: cpu 核數(shù)
  • G: 內(nèi)存單位

在配置負載均衡的情況下推薦:

華為云低代碼引擎 TinyEngine 服務(wù)端正式開源(華為云低代碼平臺)

FAQ

服務(wù)端開源之后,如果不想啟動 webService 和 dataCenter 兩個后端服務(wù)器,是否還能沿用原來 mockServer?

答:可以正常使用 mockServer,啟動方式和原先一致,直接在項目里執(zhí)行 pnpm dev 即可

如果本地啟動了 webService 和 dataCenter,那么前端本地工程是否還需要更改配置?如果需要,如何更改配置?

答:需要更改配置,更改流程如下:啟動 tinyengine 修改 packages/design-core/vite.config.js 中 origin 的值為自己本地 webService 項目的地址端口(webService 端口默認為 7011)

運行如下腳本并啟動

pnpm install # 第一次啟動項目需要pnpm serve:frontend

復制代碼

啟動成功后瀏覽器會自動打開設(shè)計器頁面

華為云低代碼引擎 TinyEngine 服務(wù)端正式開源(華為云低代碼平臺)

具體搭建流程可參考官網(wǎng)本地化部署文檔:https://opentiny.design/tiny-engine#/help-center/course/backend/51

未來規(guī)劃

人工智能:計劃將低代碼平臺與 AIGC(人工智能生成內(nèi)容)技術(shù)相結(jié)合,為用戶提供更加智能、高效的應(yīng)用開發(fā)體驗。后續(xù)我們考慮將低代碼平臺的開發(fā)流程與 AIGC 技術(shù)相結(jié)合,通過自然語言處理、機器學習和深度學習等技術(shù),實現(xiàn)應(yīng)用界面的自動生成、功能模塊的智能推薦和代碼的自動化生成等功能。

模型驅(qū)動:我們將致力于將低代碼平臺與模型驅(qū)動能力相結(jié)合,為用戶提供更加高效、智能的開發(fā)體驗。深入研究各種業(yè)務(wù)模型,包括數(shù)據(jù)模型、業(yè)務(wù)流程模型等,以了解其特性和需求。后續(xù),我們將低代碼平臺的開發(fā)流程與模型驅(qū)動能力相結(jié)合,通過可視化建模工具和自動化技術(shù),實現(xiàn)業(yè)務(wù)模型的快速構(gòu)建和部署。通過這一創(chuàng)新性的接入方式,用戶將能夠更加高效地構(gòu)建和調(diào)整業(yè)務(wù)模型,降低開發(fā)難度和成本。

原文鏈接:https://www.infoq.cn/article/H97rFm7UrBoj4cfz51ar

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號
公眾號
在線咨詢
分享本頁
返回頂部