写点什么

Lattice 在提高低代码平台高可扩展性的实战

作者:毗卢道场
  • 2023-01-30
    江苏
  • 本文字数:3252 字

    阅读完需:约 11 分钟

Lattice在提高低代码平台高可扩展性的实战

Lattice 是一个强大的、轻量级的,面向业务定制高可扩展的业务管理框架。通过使用 Lattice 框架,可以对复杂的业务定制进行高效的组织与管理。关于 Lattice 的介绍,可参见:https://xie.infoq.cn/article/85fe94515a1ce0a8315550d62


1 传统低代码平台的挑战

低代码平台是最近几年比较热门的一个话题。当传统的开发模式面临成本高、周期长等困境的时候,低代码开发工具的只需要点击几下,非编码人员也可以构建简单的应用程序的解决方案看起来很不错。很多低代码厂商抓住了客户这一需求点,开始大力的营销着低代码开发工具,投资机构也将目光瞄准在这一赛道。


这几年,市面上涌现了大量非常优秀的低代码 SaaS 平台。他们无一例外的都在宣传“无码化”、“拖拉拽方式配置”、“业务人员开发应用”等等。这些特点无一不是在体现应用搭建快、配置简单、应用上线快。也的确在特定场景下,这些平台能够快速的实现一个应用的搭建。但不同类型的业务、不同体量的企业,他们的业务复杂度会差异非常大。而且,业务规则也会随着企业规模的增长,也会变得越来越复杂。


从 CTO/CIO 的视角,除了应用搭建快、上线快这些基本能力外,还需要考量:

  • 业务的可持续发展:当业务随着企业的发展,其业务规则复杂度也越来越高时,之前基于低代码平台构建的应用是否能很好的对业务进行支撑?复杂的业务逻辑,低代码平台是否支持?复杂的业务配置,业务人员是否能够胜任?繁琐的配置,开发人员是否愿意去用?

  • 业务安全生产:传统的低代码平台,其实是一个面向页面表单、流程、数据、规则的高可配置系统。有些页面表单、流程在配置之后,就立刻生效了。这就存在了巨大的安全隐患,页面表单的修改,往往是要配合流程的修改、规则的修改,甚至是数据模型、周边相关集成服务的修改。并在统一测试无误后,才能发布上线。平台对于业务的安全生产的支持,是基本属性。

  • 组织建设与人才获取:业务人员的本职工作,是确保进行业务规划制定、业务规则梳理、业务执行落地并确保能拿到结果。简单好用的低代码平台,可以让业务人员通过简单配置,快速制作原型 DEMO,并做业务逻辑确认。但是,业务人员并不能为 IT 系统的高效、稳定负责。这是典型的 “能做”与“该不该做”的问题,这也是 CTO/CIO 在信息化部门建设,对业务长期发展支撑,要想清楚的。


从开发人员视角看,传统的低代码平台所谓的可视化配置语言,只能算是一种高阶的业务抽象 DSL。而且,这种抽象之后的 DSL 并不是完备的。所以,从开发者视角看,他们需要一个具备高度可扩展的、非封闭的应用快速开发平台。以下一些问题,是开发者对低代码平台的一些担忧:

  • 代码开发平台封装的组件是否限制了程序员的使用,对于不够丰富的组件库(永远不会完全丰富),组件的完善是否只能依赖低代码厂商?

  • 低代码平台是否提供了语言级高可扩展能力,并且扩展的业务插件能和表单配置、流程配置、数据配置形成一个共同体,可以进行统一的版本管控、发布管控?

  • 低代码平台是否对安全生产提供支撑,可以做到开发态、测试态、生产态的环境隔离以及流水线方式发布?

  • 低代码平台是否足够健壮,能做到随着业务的发展,热点应用可以方便的升容或者缩容?

  • 对于已经配置并发布的应用,后期的运维是否方便?

2 三位一体的应用快速开发平台


笔者在参与的某国内首创的无代码(No Code)、低代码(Low Code)以及轻代码(Lite Code)三位一体的业务快速开发平台,针对业务快速成长、大型企业数字化转型中的复杂业务逻辑,提供了高可扩展的插件化机制。该平台在模型、表单、流程上提供了大量的可扩展点。企业 IT 部门(或者 ISV)可基于这些可扩展点,对模型处理、表单渲染、流程处理进行逻辑定制与扩展。这些业务扩展逻辑能以插件化、云原生方式进行部署。随着业务量的增长,可以根据业务量进行升容缩容。


基于应用开发新模式,让应用搭建方便快捷,复杂业务定制也游刃有余。该平台不仅拥有表单、流程、表格、自动化、插件开发等核心功能。通过拖拉拽的操作方式,让企业快速搭建出负责自身需求的应用。灵活与高可扩展性有助于企业规范业务流程、促进团队协作、实现业务精细化跟踪与管理,让商业创新更简单!


该应用快速开发平台包含 9 大功能:表单设计、模型设计、表格设计、流程设计、插件开发、模板中心、环境管理、版本管理、自动化。



这里,我暂不对传统低代码中的表单设计、流程设计、模型设计等基础特性展开介绍。我先重点介绍里面所特有的,轻代码方式高可扩展的业务插件特性。

3 轻代码业务插件特性介绍

3.1 应用业务插件开通

在平台中创建完应用后,可以进入应用,并切换到“插件管理”模块。如果此时还没有为该应用生成插件代码仓库,会显示如下信息:



我们点击“开通”按钮,此时会提示要针对页面、模型、任务等哪些功能做扩展,如下:


我们全部勾选后,继续点击”开通“按钮,系统会为该应用分配一个代码仓库。插件代码仓库创建完毕后,会显示如下界面:



我们可以把分配的代码仓库地址,在本地执行命令,把代码下载下来:

git clone http://oauth2:sYxxxxx@gitlab.hiforce.net/yuzhenxin/hr
复制代码

复制代码

然后,我们可以用 IDEA 打开这个应用插件工程,我们可以看到平台已经默认给大家生成了针对流程、界面、模型的扩展点空白实现。如下:


我们的开发同学可以针对扩展点门面里面的扩展点进行 Override,即可实现以轻量级代码的方式进行复杂业务逻辑的扩展。比如,我们可以在任务创建保存到数据库之前做最终校验、额外复杂业务信息存取等。

3.2 应用插件部署


基于应用扩展点构建的业务插件代码,是需要编译并部署到插件容器中的。如果业务插件还没有购买容器,首先要先购买容器并进行绑定。如下图所示:



点击“去购买”,我们可以根据业务需要来买不同规格的业务容器,比如 CPU 数、内存大小、副本数以及时长,如下:



点击下一步进入容器资源购买结算页,在完成付费后,即可完成容器资源的购买。

在容器资源购买成功后,我们点击“更改”按钮,可以为当前应用插件的开发环境、测试环境以及线上环境进行资源绑定。如下:



点击确定后,即可完整应用插件环境与容器资源的绑定。

对于开发好的业务插件,可以点击“发布”,在弹出的对话框中,选择要发布的版本分支后,点击“发布”按钮。完成将业务插件编译、打包并部署到已购买的容器中。



平台会用流水线方式,对开发、测试、生产环境分别进行部署。在业务插件发布详情页,我们可以看发布的过程以及发布日志,如下:



在平台中,定义了大量的可扩展 API 供业务插件进行开发,下面我们就以两个简单并常见的业务定制案例进行介绍。

3.3 业务定制插件样例

样例 1:定制页面标题

我们在页面的可视化设计器中,把需要通过轻代码方式进行定制的页面,启动插件功能。该选项位置如下:



只有启动了“插件功能”的页面,才能以轻代码的方式对该页面用 SDK 方式进行定制扩展。

页面屏幕(Screen)在渲染时,对于一些复杂的业务逻辑,开发者可以通过代码方式,对页面信息进行自定义。最终,平台会根据最终调整的页面内容进行渲染展示。

我们以下面这个轻代码样例应用为例,他的原始 Header 中的标题是"Origin Title”:



我们对这个页面的标题,用轻代码方式进行自定义:



插件代码提交后,编译并部署到开发环境中,我们可以看到运行结果已经是我们定制之后的结果。如下:



样例 2:定制任务流水号

默认情况,任务的流水号 KEY 的生成时按照时间戳方式生成的,时间戳格式流水号大致如下:



但在实际应用中,有的业务时希望用特定的前缀、特定内容以及后缀进行流水号生成。比如,“TT-20221221-0001” 就是要求 TT 作为前缀、中间是当天日期、后面四位是当天的流水(递增)。

那么我们可以通过定制任务 SDK 中提供的扩展点,实现自定义流水号规则:



插件代码提交后,编译并部署到开发环境中,我们可以看到新创建的任务的流水号,已经变成我们定制之后的结果。如下:



4 总结

通过上面这一个特性的介绍,我相信读者已经可以看到具备轻代码(Lite Code)能力的应用快速开发平台,在传统低代码平台基础之上,提供了面向企业级高可扩展,并具有 DevOps 安全生产能力的应用快速开发能力。各位有兴趣的朋友,不妨可以联系我,试一试!

发布于: 刚刚阅读数: 5
用户头像

毗卢道场

关注

架构师 2022-11-25 加入

专注面向高可扩展的业务框架、业务快速开发框架研究

评论

发布
暂无评论
Lattice在提高低代码平台高可扩展性的实战_低代码_毗卢道场_InfoQ写作社区