日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

作者 | 網易數帆低代碼架構團隊、編程語言實驗室

自 2020 年來,網易數帆探索可視化低代碼編程已兩年有余,打造了 CodeWave 智能開發平臺(原輕舟低代碼平臺)用于企業應用開發。然而,不少編程技術人員對這一領域還比較陌生。我們開設《低代碼技術內幕》專欄,旨在討論低代碼編程領域中的困難、問題,以及高效的解決方案。本文為第三篇,與讀者共同探討數字化轉型背景下的低代碼平臺架構設計。

專欄內容回顧:

基于 Vue 和 Canvas,輕舟低代碼 Web 端可視化編輯器設計解析 | 低代碼技術內幕

低代碼編程及其市場機遇剖析 | 低代碼技術內幕

在低代碼市場篇中我們概述了低代碼的定義和低代碼產品的主要定位,描繪了低代碼在近年的高速發展和其在未來 5~10 年國內外的巨大市場,其中聚焦到了國內數字化轉型的背景和機遇,及其對低代碼發展的推動作用。當前國內企業面對數字化轉型仍然有很多挑戰,因此低代碼得到越來越多的企業的青睞。那么 為了幫助企業應對這些挑戰,低代碼平臺需要具備哪些不可或缺及輔助增強的能力?為了支持這些能力,低代碼平臺架構又需要怎樣合格及完善的設計?本文會一一揭秘。

企業面對數字化轉型有哪些挑戰?

近年來,我國數字化轉型政策持續向好,各部委陸續發布多個政策,強調加速企業數字化轉型,促進企業高質量發展,大力推動我國數字經濟建設。2021 年國家發布《中華人民共和國國民經濟和社會發展第十四個五年規劃和 2035 年遠景目標綱要》,其中第五篇“加快數字化發展,建設數字中國”明確了“數字化”在十四五國家發展戰略中的重要地位。

然而,隨著企業規模的擴張和系統更新速度的加快,企業在數字化發展中亟需解決 有限的開發運維能力與日益增長的數字化轉型需求之間的矛盾,它主要體現在以下幾個方面:

  • 開發人力成本高:專業開發人員門檻高、招聘難、穩定性差;
  • 項目建設效率低:項目研發周期長,創新思路無法及時驗證;
  • 缺乏軟件生產最佳實踐:缺少標準的軟件生產實踐,流程與規范無法落地;
  • 軟件資產利用率低:軟件資產復用性差,重復造輪子。

經過對國內軟件發展趨勢和技術發展趨勢的分析,我們認為 傳統的開發模式無法很好地解決以上問題。例如,如果應用開發工程師要實現一套普通的 IT 系統,他不僅要掌握業務,往往還需要同時掌握以前繁多的技術概念和知識:

  • 運維:云計算、k8s、中間件、微服務、DevOps
  • 語言:JAVA、Java、css、html、SQL
  • 框架:Spring、Vue/React
  • 其他:用戶認證鑒權、業務流程管理、CSR/SSR、小程序多端開發等
  • ...

對于大部分開發工程師來說,掌握各種技術棧等等大量業務無關的專業知識是件令人沮喪的事情。要知道不少中型的互聯網公司在養了不少專業方向的技術人才的情況下,尚且不能打通任督二脈,為上層業務開發者提供友好業務開發環境,何況急需數字化轉型的大量傳統企業?同時,伴隨著國內 IT 領域人才的高流動率,一個企業內部往往各種不同技術棧和架構并存,最終不堪重負。

低代碼平臺需要具備哪些能力?

可視化開發與協作:應用開發往往會涉及多個專業的子領域,比如數據定義子領域、數據查詢子領域、頁面子領域、流程子領域等。經過大量的研究分析,在多數領域可視化相比于文本會包含更豐富的信息,閱讀性起來更直觀更友好,對普通人來說更易于學習。另一方面,復雜軟件往往需要多人協作來完成,這是因為其通常需要涉及多個領域的專業知識和技能,一個人難以勝任。協作功能使得每個開發者專注于不同模塊,緊密合作以高效完成各自的任務,并確保項目的整體一致性和準確性。因此開發平臺、工具還需要提供諸如分支版本控制、沖突解決等協作的能力,以有效地幫助團隊的每一位開發在整個軟件開發周期中追蹤和管理代碼變化。

統一的前后端語言:復雜的應用程序通常需要多個組件之間協同工作,這些組件涉及到前端(用戶界面)和后端(服務器端)兩個部分。使用統一的前端、后端語言可以有效提高開發效率和減少溝通成本,例如開發人員可以更輕松地共享代碼、知識和工具,減少技術轉換成本和學習成本。統一的前端、后端語言還可以提高應用程序的可維護性和可擴展性,例如一段函數既可以在客戶端運行也可以在服務端運行,而無需額外的實現和轉換成本。

資產中心:隨著用戶群體增長,應用平臺往往會形成大量優質資產,因此需要提供一個分享、管理這些優質資產的平臺。另一方面,針對企業在發展過程中已經沉淀下來的高質量資產,平臺需要提供適當的方式來接入;此外,企業的專業開發人員應有辦法為低代碼應用定制高級功能。

集成:指集成更多應用程序和數據源:企業內部往往具有多個系統以及已有的技術棧體系,各系統之間有著豐富的交互邏輯和數據互訪需求。通過集成能力可以提升低代碼平臺的靈活性和擴展性,從數據源、協議、應用等各個層面實現企業各系統之間的數據和服務交互,從而提升低代碼應用的價值和可用性。

可用、安全:可用性是軟件的一個重要方面。企業軟件通常是企業中關鍵的業務應用程序,例如企業資源規劃(ERP)、客戶關系管理(CRM)和財務管理系統等。這些應用程序與企業中的日常業務緊密相關,在發生故障或停機時,可能會導致企業的財務損失、服務中斷和信譽問題。因此,企業軟件需要是高度可用的,以確保企業的繼續運營和穩定發展。另一方面,企業軟件往往涉及到用戶的敏感數據和信息,如個人身份信息、財務信息、醫療記錄等。如果這些信息被泄露或被黑客攻擊,將會對用戶造成極大的損失和傷害,甚至會讓公司面臨法律問題。

輕舟低代碼平臺的架構

針對上述數字化轉型背景和低代碼平臺的能力要求,我們決定提供一門圖靈完備的可視化編程語言以及一套功能完備的集成開發環境,來達到語言統一,開發高效,程序安全,擴展性強,門檻低上限高的目標;借助于云原生的優勢,打造一個故障隔離,靈活安全,可觀測性完善的一站式平臺,并通過資產中心完成數字資產的沉淀和復用。

我們的平臺架構整體上可以劃分成平臺服務,集成開發環境,NASL 語言及其配套設施,資產中心,云原生基座五大模塊,設計如下:

輕舟低代碼平臺產品架構設計

平臺服務

低代碼平臺服務的設計目標是“提供一站式應用開發平臺,維護應用從開發到運維監控的全生命周期管理,并滿足不同企業軟件工程實踐規范”。為此,平臺分為以下幾個部分,各司其職:

  • 應用管理:包含應用創建、列表與詳情、運維、刪除等應用管理能力,其中運維包括應用的部署規格,服務啟停,WebSQL 等操作 。
  • 多租戶管理:租戶是低代碼資源的頂層隔離單位,不同租戶之間的資源互不相通,從而保證平臺資源安全,包含應用資源、資產資源、底層運行資源等。
  • 多環境管理:平臺可以一鍵創建 / 銷毀一整套應用開發環境,在 CI / CD 的設計上可以快速對接云原生 DevOps,從而滿足不同企業不同的軟件工程實踐規范。
  • 應用集成信息管理:低代碼平臺提供了 API、數據源、文件存儲、認證源等應用三方集成能力,需要對集成相關的配置信息做注冊,權限等管理,如數據庫地址,API 地址等。
  • IAM:即 Identity and Access Management,包括身份驗證,各類授權,賬戶管理,用戶行為與活動的審計與監控,是平臺安全實踐的重要體現之一。
  • 應用監控:通過應用可觀測性監控,低代碼開發者可以及時獲知制品應用的內部運行狀態,從而在制品應用頁面響應緩慢、訪問報錯等異常情況發生時,能夠及時定位異常發生的原因,并及時查看修復。應用監控目前包含日志和維度監控,其中日志既支持 NASL(平臺所定義的語言,下述)日志,也支持源代碼日志,未來還會對應用程序在運行時的執行路徑和行為做追蹤記錄。

集成開發環境

低代碼集成開發環境的設計目標是“ 以提高開發效率為中心,同時注重應用集成、多人協作、版本控制等方面的需求”。為此,平臺提供了可視化設計器、應用調試與預覽、一站式部署發布、三方集成能力、依賴管理等功能。

平臺的集成開發環境(IDE)部署在云端,是一款與 CodeSpace 有些類似的 WebIDE,它能夠支撐日常軟件研發所需和軟件工程所需,同時提供應用三方集成的有效手段,以提高開發者應用構建效率和可能性。它包括以下組件:

  • 可視化設計器:可視化設計器提供了 NASL 語言的可視化投影,使得低代碼開發者可以通過可視化拖拉拽的形式來編寫 NASL 語言。包含頁面設計器、數據設計器、邏輯設計器、流程設計器等。同時可視化設計器提供了撤銷重做、復制粘貼等便捷操作能力。
  • 應用調試與預覽:應用調試的技術實現主要依賴 Debugger 提供的一整套高性能 API,包含 breakpoint、step into、step over、resume、evaluation 等能力。此外,集成開發環境支持應用的快速預覽,我們通過狀態機設計,預熱和熱加載等一系列技術優化,大大加快了預覽速度。應用調試和預覽,都是在 NASL 語言階段性編寫完成后,及時驗證程序正確性的手段。
  • 多人協作和版本控制:基于 NASL 倉庫實現的版本控制功能和多人協作功能。技術選型上,我們選取了基于基線研發的工程規范,是低代碼開發過程中小范圍協作的最佳實踐。
  • 應用集成:提供 API、數據庫、文件存儲、認證源等三方集成能力,使得低代碼應用可以便捷快速地與其他應用,PaaS 中間件,開放平臺等三方能力對接,從而方便構建更加復雜的業務解決方案。
  • 應用部署與導出:支持集成平臺一站式部署發布,同時也支持應用的導出,其中導出包括源代碼導出和 Docker 鏡像導出,此外集成開發環境還支持將應用一鍵部署到公有云運行(如阿里云),這也是我們相對于引擎式低代碼平臺的最大區別。
  • 依賴管理:設計與實現了一套依賴管理協議,支持模板和庫的導入、導出、版本檢測等,并托管到資產中心。

NASL 語言及其配套設施

低代碼語言及其配套設施的設計目標是”高效表達應用編程意圖,快速構建軟件應用,同時注重代碼與程序的安全性”。為此,我們設計了.NETEase Application Specific Language(簡稱 NASL),即網易輕舟低代碼用于描述 Web 應用的領域特定語言,它主要包含基礎語言和 Web 應用特定領域的子語言(如數據定義、數據查詢、頁面、流程、權限等)兩部分。NASL 語言作為整個低代碼平臺的內核,是對應用編程語義模型的核心抽象,用于承接用戶應用編程意圖的高效表達。借助于 NASL 和配套的語言設施,低代碼開發者可以快速構建軟件應用。它包括以下組件:

  • Language Server:NASL 語義的最佳實踐,包含類型檢查、推斷、跳轉定義、自動補全等能力,在低代碼應用編輯期提供輔助手段,減少編程出錯概率,提高編程效率,一定程度保證了程序安全性。架構設計上,我們采取 LSP (Language Server Protocol) 標準化的協議,研發出針對 NASL 語言的編輯器和 IDE 的語言服務。
  • Debugger:針對與 NASL 語言研發的調試器,設計并定義了 breakpoint、step into、step over、resume、evaluation 等調試 API,是集成開發環境可以實現 NASL 斷點調試的基礎。
  • Generator:NASL 語義編譯器。低代碼平臺借助于 Generator,將 NASL 語言編譯為 java、js 等通用語言,再借助底層通用語言的運行時設施如 jvm,將 NASL 語言運行在計算機上。
  • NASL 倉庫:用于實時保存用戶構建應用所產生的 NASL 代碼,并滿足高性能、高可用、高可靠等特性,技術選型上,我們選取了 mongodb 作為存儲。同時設計并實現了一套提供了代碼合并、拉取、沖突檢測、合并、暫存、標簽等基礎 API,是集成開發環境實現多人協作和版本控制的基礎。

資產中心

低代碼資產中心的設計目標是“方便用戶進行軟件資產的管理、復用和查詢,以提高開發效率和質量”。資產中心提供了多種多樣的應用和局部模板,并支持根據自身需求場景一鍵生成應用,有利于快速構建符合平臺標準的庫以及提高代碼重用性。

  • 模板管理:對集成開發平臺自身導出的模板的管理。模板中心提供了各種應用和局部模板,根據不同的需求場景,開發者可以選擇相應的模板,一鍵生成應用,并在此基礎上進行個性化修改,以適應自身業務需求。
  • 庫管理:對 NASL 庫和擴展庫的管理。庫是一組可被低代碼應用依賴使用的編程能力,按照產生方式的不同被分為 NASL 庫和擴展庫。NASL 庫是一組在低代碼平臺上開發好的通用功能,供所有應用程序共享使用。擴展庫是由專業程序員使用 Java 或 Java 開發的,可以被低代碼應用依賴使用的編程能力,它們通過平臺腳手架導入到資產中心來使用。

此外,資產中心還遵循著信息管理中“標簽化”、“分類化”、“規范化”的原則,使得軟件資產可以更好地進行管理、維護和查詢。資產中心是平臺構建軟件資產和復用軟件資產的(最)直接體現。

云原生基座

低代碼作為一個 APaaS 平臺,我們選取了云原生技術作為支撐整個平臺和應用運行的基座,其設計目標是“提供支持高度可擴展、高度可觀測、快速部署、故障隔離、運行安全”的上層應用程序。主要技術如下:

  • K8s 與容器云技術。目前支持開源 K8s 以及網易 kubecube 容器云平臺,其中開源 K8s 作為我們首推的輕量部署最佳實踐。未來根據前方市場需求還可以支持各類容器云平臺,如華為 CCE,阿里 ACS。
  • CI / CD。目前平臺的 CI / CD 云原生可擴展性強,跨平臺兼容性優秀的 Jenkins 實現。
  • 可觀測性技術??捎^測性技術主要包含 logging、metrics 和 tracing 三個部分,目前技術選型上選取了業界公認的 Prometheus 作為平臺的監控核心組件,日志服務通過 Loggie 和 ElasticSearch 搭建了一套云原生日志平臺。
  • 對象存儲。低代碼平臺存在大量運行時需要依賴的靜態資源,我們選取了云原生對象存儲中的佼佼者, 兼容 S3 的 MinIO,其輕量部署和高性能低延遲的特性完美契合了低代碼平臺的核心要素。

結 語

我們在這篇文章中討論了低代碼架構設計的背景、挑戰和需求,并展示了 CodeWave 智能開發平臺前身輕舟低代碼平臺的架構設計:我們首先分析了企業在數字化轉型過程中面臨的挑戰,如開發人力成本高、項目建設效率低、缺乏軟件生產最佳實踐等。我們提議使用低代碼平臺來解決這些問題,而該平臺需要具備縮減概念、可視化的開發環境、資產中心、統一的前后端語言、可用性、安全性以及協作等能力。針對這些需求,我們展示了輕舟低代碼平臺的架構設計并詳細介紹了平臺的五大模塊:平臺服務、集成開發環境、NASL 語言及其配套設施、資產中心和云原生基座。這種設計的宗旨乃是幫助企業提高數字化轉型的效率和質量。

作者:網易數帆低代碼架構團隊 & 編程語言實驗室。

分享到:
標簽:架構
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定