深度|低代码开发平台和微服务架构的优势与挑战

本文涉及的产品
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 低代码开发平台和微服务架构是当前软件开发领域的两个热门话题。它们都是为了更高效、更灵活地构建和开发应用程序而出现的解决方案。本文将以一款基于微服务架构的OneCode引擎为案例来探讨低代码开发平台和微服务架构的优势和挑战。

前言

低代码开发平台和微服务架构是当前软件开发领域的两个热门话题。它们都是为了更高效、更灵活地构建和开发应用程序而出现的解决方案。本文将以一款基于微服务架构的OneCode引擎为案例来探讨低代码开发平台和微服务架构的优势和挑战。

一,微服务架构在低代码平台中的优势

(1) 微服务设计优势

  微服务架构是一种面向服务的架构风格,将应用程序拆分为一组小型、自治的服务。以下是微服务架构的一些主要优势:

1. 高度可扩展:微服务架构将应用程序拆分成多个服务,每个服务负责不同的业务功能。这种拆分使得应用程序的各个模块之间相互独立,可以独立部署和扩展。当某个服务需要扩容时,只需增加该服务的实例即可,不会影响其他服务的性能。

2. 灵活性和可维护性:由于微服务架构将应用程序拆分成多个服务,每个服务负责特定的功能,因此开发人员和团队可以更专注于某个特定领域的开发和维护。这提高了问题追踪和修复的效率,同时也增加了应用程序的灵活性,可以更快地适应业务变化。

(2)低代码平台为什么要采用微服务设计

1,企业内部整合开放式API需要微服务架构

    在企业应用中,数据和业务通常会分散在不同的业务系统中,按照业务部门可以分为人事行政、项目、销售、研发、生产等等;按照当前的软件类别又可以分为ERP、SCM、CRM、OA、PLM、MES等等,但在企业的数字化应用场景中,按照业务类型通常包括数据信息管理、业务审批、各类报表分析以及其他业务。在低代码应用初期主要场景还在于基于各业务开放API之上的快速应用扩展,但发展到一定阶段后,这些扩展则会形成一些新的资源池。而这个资源池的最佳的管理方式则是采用微服务架构的 apaas 平台。在低代码平台设计中易用以及便捷性是首选但作为企业级应用而言,对于基于 开放API的管理也是其必选的一个基础性功能,而微服务则是这一管理应用的最合适选择。

添加图片注释,不超过 140 字(可选)

2,低代码平台引擎化设计最佳实践

添加图片注释,不超过 140 字(可选)

    我们在解释什么是低代码平台时,最常用的关键字是:图形化、拖拉拽方式快速实现。但这些简单特性的背后,则是低代码平台的高复杂度设计,高度抽象概括,直至衍生出来一些专为低代码应用而生的“专职”低代码引擎如:可视拖动引擎、流程驱动引擎、模型驱动设计(DDD)引擎、存储引擎、以及专为各垂直行业而匹配的“IOT低代引擎”,“电商低代引擎”等等。这些引擎的设计为低代码平台赋予了更广阔的应用空间,但同时也为低代码平台带来更多的复杂性。这在低代码平台自身的“内部生态”中微服务设计则是不二的技术首选。

3,应用服务持续集成devops最佳方式

添加图片注释,不超过 140 字(可选)

      在企业级应用中,低代码作为新生的事务。必然会先从一些边缘业务开始,逐步向核心业务靠拢。而有实力尝试低代码引擎这种新技术的企业,多数都具备了相对完善的发布和管理的流程。对每一个应用的上线运行都有比较严格的流程安全规范。低代码应用如果仍然采用传统部署方式上线则需要根据企业的自身的应用发布测试流程进行整合,完成代码入库、版本管理,发布脚本,测试脚本等等众多技术性的要求。这显然与低代码本身的设计理念相悖,同时这些定制化也会大幅增加平台服务方与用户方工作量。解决这一问题最简单的方式便是提供独立的DevOps支持,特事特办,针对轻应用的特点,提供独立的运行、测试、发布部署环境支持。在企业原有服务中作为一个独立的服务中间件。而这些独立的应用服务则是微服务架构的最佳实践。

二,OneCode微服务私有云整体设计


onecode私有云结构

        OneCode私有云是OneCode低代码引擎的开发依赖环境 ,OneCode低代引擎运行需要依赖一些集成环境来支持,这些支持可以根据具体的用户场景来配置同时,OneCode也为这些提供了一些默认的微服务实现。包括:

(1)支撑服务

  1. 开发代码协同管理的 onecode-vfs 虚拟目录服务
  2. onecode-org用户认证
  3. onecode-cluster集群节点管理

(2)应用类服务

  1. onecode-bpm流程服务
  2. onecode-iot物联网应用支持
  3. onecode-jmq 消息服务
  4. onecode-index检索服务

每一组服务,onecode也都提供了独立的SDK支持方便集成调用。

三,OneCode低代码微服务私有云技术特点

(1)基于微服务结构提供完备的集群分发及服务注册发现服务

(2)独立云存储结构实现高安全高弹性扩展支持hdfs块存储便于超大规模部署

(3)基于事件响应设计,采用实时架构设计,支持mqtt协议便于高效便捷的接入设计

(4)提供采用微服务结构的流程云引擎,支持标准XPDL2.0,BPMN协议流程导入

(5)独特的多开发者、多应用(租户)支持,实现模板、主键、场景模型等多种资源共享公用

四,OneCode 私有云微服务配置

OneCode 在第四季度开放了,私有云的部署。并且在gitee码云上上传了,可以终身免费使用的低代码开发云。


添加图片注释,不超过 140 字(可选)

    OneCode私有云部署包,本身是一个可以伸缩的部署程序包。可以通过调整本地的配置文件来完成各引擎是以微服务方式部署还是嵌入式部署:配置修改方式为修改配置包中 : /useresbbean_config.xml 文件。

(1)嵌入式启动

如果是嵌入式部署则在pom文件中引入引擎jar

<dependency>    <groupId>cn.raddev</groupId>    <artifactId>onecode-vfs</artifactId>    <version>1.1.1</version></dependency>

同时在useresbbean_config.xml 增加本地服务检索。

//本地服务装载AR<configid>esb</configid><esb>    <cnname>本地服务</cnname>    <path>/../lib/:^onecode.*\.jar;./lib/:^onecode.*\.jar;</path></esb> //检索本地Class装载服务<configid>local</configid>2<local>    <templetname>检索本地Class</templetname>    <path>*com.ds</path></local>

(2)微服务配置

在pom中添加对应的远程访问SDK接口jar

<dependency>    <groupId>cn.raddev</groupId>    <artifactId>onecode-vfs-web</artifactId>    <version>1.1.1</version></dependency> 修改用户服务配置文件 useresbbean_config.xml<configid>bpmservice</configid><bpmservice>    <cnname>工作流服务</cnname>    <path>bpm_tempbean_config.xml</path>    <tokenType>user</tokenType>    <serverUrl>http://bpm.raddev.cn:9080</serverUrl></bpmservice>

(3)通过云控制台修改配置

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)


五,OneCode应用服务微服务支持

     低代码平台引擎的微服务支持是低代应用的核心特性。但如何管理好应用服务并且能有机的融合到微服务体系中,成为微服务的关键组成部分则是更为关键的一个设计。

(1)应用微服务开发组织方式


    onecode在应用服务开发方面采用了,多租户的开发者模型设计。允许开发者使用开源的OneCode Studio使用开发者账号登录微服务开发云。并采用企业客户,微服务工程管理,允许用户自定义工程并将工程作为一个独立部署的微服务节点发布。

添加图片注释,不超过 140 字(可选)


添加图片注释,不超过 140 字(可选)


添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)



添加图片注释,不超过 140 字(可选)


添加图片注释,不超过 140 字(可选)


添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

(2)OneCode“工程”容器微服务技术设计

   应用服务发布需要三方面的资源做支撑,分别是用户通过设计完成的页面及功能交互,通过特定的特定的出码模板完成相应的技术栈前端转换形成的前端页面目录。而后端应用则根据则是用户通过基础数据建模形成的领域模型文件,这些领域模型文件通常会按照,资源库、支撑域工程域等模型方式来独立打包方便后期版本管理及个体更新。另外第三块则是方便工程启动运行以及访问控制,对外暴露监控等相关的工程配置信息。


添加图片注释,不超过 140 字(可选)

(1)后端打包结构总览

低代码应用中如果要具备完整的建模以及对外应用管理功能,就必然会涉及到后端数据建模以及基础的逻辑编排功能,不同的平台面向的开发者群体也会有所不同,有以解决简单数据的增删改查为目的初级数据库建模应用也有面向专业开发者的领域建模应用。但不管哪一类的平台,在打包编译输出的时候。通常会采用一下模型来完成。


添加图片注释,不超过 140 字(可选)

(2)服务模型微服务描述

服务模型接口描述,通常采用的是Rest的web服务模式,每个工程会设定相应的命名控件,然后根据具体页面的服务地址进行重新的编排以树形的的结构来管理和展示webapi结构。

OneCodeAPI模型

在接口描述中通常会包含:

URL地址:标识可通过WEB访问的地址。

页面绑定服务对象:当通过数据接口获取数据后将数据和前端的容器、列表、表格、树形等具体的组件进行绑定。

后端接收绑定:当前端数据发生变化时通过ajax或者表单提交等方式将数据同步到后端数据模型。

服务模型接口描述,在打包应用中是一个必备的选项,在完成打包后需要通知应用服务器完成相关的服务注册同时也为应用服务权限等提供策略服务支撑。


资源(物料)目录树

前端资源目录总览

用户工程目录树:

添加图片注释,不超过 140 字(可选)

用户目录树是由用户自行建立,同时也是工程编辑的入口,用户通过目录配置页面路由。串联相关功能。同时一些个性化的定义也有此导入。


前端支撑库

主要跟开发者出码时选择的技术栈有关,通常也是作为导出模板配置的基本属性。在基础基础栈中会配合相应的调试以及运行集成页面,达到开箱即用的匹配能力。

后端服务


添加图片注释,不超过 140 字(可选)

通用域打包


添加图片注释,不超过 140 字(可选)


相关文章
|
2月前
|
人工智能 数据可视化 数据处理
从拖拽到架构:低代码如何兼顾速度、灵活性与可控边界
在敏捷开发背景下,低代码技术已从工具层面演进为架构级交付要素,重构IT治理与系统边界管理。它推动开发职能在专业开发者、业务人员与运维管理者之间重新分配,带来灵活性的同时也引发架构平衡、系统可维护性与治理统一等挑战。唯有在清晰架构与治理规则下,低代码才能真正成为敏捷开发的助推器,而非技术债务来源。本文深入探讨低代码在可视化工作流、模型驱动开发、数据处理、AI融合、插件生态、开放架构与企业功能等方面的技术实现与业务价值。
从拖拽到架构:低代码如何兼顾速度、灵活性与可控边界
|
1月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
5月前
|
人工智能 移动开发 JavaScript
AI + 低代码技术揭秘(二):核心架构
VTJ低代码平台架构包含引擎编排层、Provider服务系统、数据模型及代码生成管道,支持设计时与运行时功能。Engine管理设计流程,Provider处理服务加载,Simulator实现组件渲染,数据模型通过事件驱动同步状态。代码生成管道可双向转换Vue组件与DSL,支持多平台适配,如Web、H5和UniApp。系统提供可视化编辑、热重载与AI集成,满足高效开发需求。
148 0
|
1月前
|
监控 数据可视化 数据库
低代码的系统化演进:从工具逻辑到平台架构的技术解读
低代码正从开发工具演变为支撑企业架构的智能平台,融合可视化开发、AI引擎与开放生态,实现高效构建、自动化运维与跨场景协同,推动数字化转型迈向智能化、系统化新阶段。
|
2月前
|
数据可视化 前端开发 数据管理
什么是低代码?一文看懂:低代码技术的发展历程及技术架构
低代码开发平台通过可视化界面与组件化设计,大幅降低编程门槛,使开发者无需大量编码即可快速构建应用。它具备可视化开发、预制组件、低技术门槛及全流程支持等核心特征,适用于业务流程自动化、数据管理、客户关系管理等多种场景。自萌芽期至今,低代码不断演进,成为企业数字化转型的重要工具,显著提升开发效率、降低成本,并推动全民开发者时代的到来。
719 0
什么是低代码?一文看懂:低代码技术的发展历程及技术架构
|
2月前
|
数据可视化 数据处理 数据库
从技术架构到经济价值:低代码在企业开发中的成本节约潜力
在企业数字化转型中,如何兼顾系统稳定性、扩展性与开发效率,成为关键挑战。低代码平台通过组件化设计、模型驱动开发与自动化运维等技术,实现高效开发与低成本维护,助力企业快速响应业务需求。
|
4月前
|
Ubuntu 编译器 C语言
在Ubuntu22.04平台上交叉编译针对Rv1126架构的GCC13.2.0编译器的步骤。
遵循上述步骤,您应该能够在Ubuntu 22.04平台上成功交叉编译适用于RISC-V架构RV1126的GCC 13.2.0编译器,允许您为目标硬件构建应用程序和操作系统组件。
252 10
|
4月前
|
IDE Java API
Java 17 新特性与微服务开发的实操指南
本内容涵盖Java 11至Java 17最新特性实战,包括var关键字、字符串增强、模块化系统、Stream API、异步编程、密封类等,并提供图书管理系统实战项目,帮助开发者掌握现代Java开发技巧与工具。
267 1
|
4月前
|
人工智能 数据可视化 Java
什么是低代码(Low-Code)?低代码核心架构技术解析与应用展望
低代码开发正成为企业应对业务增长与IT人才短缺的重要解决方案。相比传统开发方式效率提升60%,预计2026年市场规模达580亿美元。它通过可视化界面与少量代码,让非专业开发者也能快速构建应用,推动企业数字化转型。随着AI技术发展,低代码与AIGC结合,正迈向智能化开发新时代。