自 2020 年来,网易数帆探索可视化低代码编程已两年有余,打造了 CodeWave 智能开发平台(原轻舟低代码平台)用于企业应用开发。然而,不少编程技术人员对这一领域还比较陌生。我们开设《低代码技术内幕》专栏,旨在讨论低代码编程领域中的困难、问题,以及高效的解决方案。本文为第三篇,与读者共同探讨数字化转型背景下的低代码平台架构设计。
专栏内容回顾:
基于 Vue 和 Canvas,轻舟低代码 Web 端可视化编辑器设计解析 | 低代码技术内幕
低代码编程及其市场机遇剖析 | 低代码技术内幕
在低代码市场篇中我们概述了低代码的定义和低代码产品的主要定位,描绘了低代码在近年的高速发展和其在未来 5~10 年国内外的巨大市场,其中聚焦到了国内数字化转型的背景和机遇,及其对低代码发展的推动作用。当前国内企业面对数字化转型仍然有很多挑战,因此低代码得到越来越多的企业的青睐。那么 为了帮助企业应对这些挑战,低代码平台需要具备哪些不可或缺及辅助增强的能力?为了支持这些能力,低代码平台架构又需要怎样合格及完善的设计?本文会一一揭秘。
企业面对数字化转型有哪些挑战?
近年来,我国数字化转型政策持续向好,各部委陆续发布多个政策,强调加速企业数字化转型,促进企业高质量发展,大力推动我国数字经济建设。2021 年国家发布《中华人民共和国国民经济和社会发展第十四个五年规划和 2035 年远景目标纲要》,其中第五篇“加快数字化发展,建设数字中国”明确了“数字化”在十四五国家发展战略中的重要地位。
然而,随着企业规模的扩张和系统更新速度的加快,企业在数字化发展中亟需解决 有限的开发运维能力与日益增长的数字化转型需求之间的矛盾,它主要体现在以下几个方面:
经过对国内软件发展趋势和技术发展趋势的分析,我们认为 传统的开发模式无法很好地解决以上问题。例如,如果应用开发工程师要实现一套普通的 IT 系统,他不仅要掌握业务,往往还需要同时掌握以前繁多的技术概念和知识:
对于大部分开发工程师来说,掌握各种技术栈等等大量业务无关的专业知识是件令人沮丧的事情。要知道不少中型的互联网公司在养了不少专业方向的技术人才的情况下,尚且不能打通任督二脉,为上层业务开发者提供友好业务开发环境,何况急需数字化转型的大量传统企业?同时,伴随着国内 IT 领域人才的高流动率,一个企业内部往往各种不同技术栈和架构并存,最终不堪重负。
低代码平台需要具备哪些能力?
可视化开发与协作:应用开发往往会涉及多个专业的子领域,比如数据定义子领域、数据查询子领域、页面子领域、流程子领域等。经过大量的研究分析,在多数领域可视化相比于文本会包含更丰富的信息,阅读性起来更直观更友好,对普通人来说更易于学习。另一方面,复杂软件往往需要多人协作来完成,这是因为其通常需要涉及多个领域的专业知识和技能,一个人难以胜任。协作功能使得每个开发者专注于不同模块,紧密合作以高效完成各自的任务,并确保项目的整体一致性和准确性。因此开发平台、工具还需要提供诸如分支版本控制、冲突解决等协作的能力,以有效地帮助团队的每一位开发在整个软件开发周期中追踪和管理代码变化。
统一的前后端语言:复杂的应用程序通常需要多个组件之间协同工作,这些组件涉及到前端(用户界面)和后端(服务器端)两个部分。使用统一的前端、后端语言可以有效提高开发效率和减少沟通成本,例如开发人员可以更轻松地共享代码、知识和工具,减少技术转换成本和学习成本。统一的前端、后端语言还可以提高应用程序的可维护性和可扩展性,例如一段函数既可以在客户端运行也可以在服务端运行,而无需额外的实现和转换成本。
资产中心:随着用户群体增长,应用平台往往会形成大量优质资产,因此需要提供一个分享、管理这些优质资产的平台。另一方面,针对企业在发展过程中已经沉淀下来的高质量资产,平台需要提供适当的方式来接入;此外,企业的专业开发人员应有办法为低代码应用定制高级功能。
集成:指集成更多应用程序和数据源:企业内部往往具有多个系统以及已有的技术栈体系,各系统之间有着丰富的交互逻辑和数据互访需求。通过集成能力可以提升低代码平台的灵活性和扩展性,从数据源、协议、应用等各个层面实现企业各系统之间的数据和服务交互,从而提升低代码应用的价值和可用性。
可用、安全:可用性是软件的一个重要方面。企业软件通常是企业中关键的业务应用程序,例如企业资源规划(ERP)、客户关系管理(CRM)和财务管理系统等。这些应用程序与企业中的日常业务紧密相关,在发生故障或停机时,可能会导致企业的财务损失、服务中断和信誉问题。因此,企业软件需要是高度可用的,以确保企业的继续运营和稳定发展。另一方面,企业软件往往涉及到用户的敏感数据和信息,如个人身份信息、财务信息、医疗记录等。如果这些信息被泄露或被黑客攻击,将会对用户造成极大的损失和伤害,甚至会让公司面临法律问题。
轻舟低代码平台的架构
针对上述数字化转型背景和低代码平台的能力要求,我们决定提供一门图灵完备的可视化编程语言以及一套功能完备的集成开发环境,来达到语言统一,开发高效,程序安全,扩展性强,门槛低上限高的目标;借助于云原生的优势,打造一个故障隔离,灵活安全,可观测性完善的一站式平台,并通过资产中心完成数字资产的沉淀和复用。
我们的平台架构整体上可以划分成平台服务,集成开发环境,NASL 语言及其配套设施,资产中心,云原生基座五大模块,设计如下:
轻舟低代码平台产品架构设计
平台服务
低代码平台服务的设计目标是“提供一站式应用开发平台,维护应用从开发到运维监控的全生命周期管理,并满足不同企业软件工程实践规范”。为此,平台分为以下几个部分,各司其职:
集成开发环境
低代码集成开发环境的设计目标是“ 以提高开发效率为中心,同时注重应用集成、多人协作、版本控制等方面的需求”。为此,平台提供了可视化设计器、应用调试与预览、一站式部署发布、三方集成能力、依赖管理等功能。
平台的集成开发环境(IDE)部署在云端,是一款与 CodeSpace 有些类似的 WebIDE,它能够支撑日常软件研发所需和软件工程所需,同时提供应用三方集成的有效手段,以提高开发者应用构建效率和可能性。它包括以下组件:
NASL 语言及其配套设施
低代码语言及其配套设施的设计目标是”高效表达应用编程意图,快速构建软件应用,同时注重代码与程序的安全性”。为此,我们设计了.NETEase Application Specific Language(简称 NASL),即网易轻舟低代码用于描述 Web 应用的领域特定语言,它主要包含基础语言和 Web 应用特定领域的子语言(如数据定义、数据查询、页面、流程、权限等)两部分。NASL 语言作为整个低代码平台的内核,是对应用编程语义模型的核心抽象,用于承接用户应用编程意图的高效表达。借助于 NASL 和配套的语言设施,低代码开发者可以快速构建软件应用。它包括以下组件:
资产中心
低代码资产中心的设计目标是“方便用户进行软件资产的管理、复用和查询,以提高开发效率和质量”。资产中心提供了多种多样的应用和局部模板,并支持根据自身需求场景一键生成应用,有利于快速构建符合平台标准的库以及提高代码重用性。
此外,资产中心还遵循着信息管理中“标签化”、“分类化”、“规范化”的原则,使得软件资产可以更好地进行管理、维护和查询。资产中心是平台构建软件资产和复用软件资产的(最)直接体现。
云原生基座
低代码作为一个 APaaS 平台,我们选取了云原生技术作为支撑整个平台和应用运行的基座,其设计目标是“提供支持高度可扩展、高度可观测、快速部署、故障隔离、运行安全”的上层应用程序。主要技术如下:
结 语
我们在这篇文章中讨论了低代码架构设计的背景、挑战和需求,并展示了 CodeWave 智能开发平台前身轻舟低代码平台的架构设计:我们首先分析了企业在数字化转型过程中面临的挑战,如开发人力成本高、项目建设效率低、缺乏软件生产最佳实践等。我们提议使用低代码平台来解决这些问题,而该平台需要具备缩减概念、可视化的开发环境、资产中心、统一的前后端语言、可用性、安全性以及协作等能力。针对这些需求,我们展示了轻舟低代码平台的架构设计并详细介绍了平台的五大模块:平台服务、集成开发环境、NASL 语言及其配套设施、资产中心和云原生基座。这种设计的宗旨乃是帮助企业提高数字化转型的效率和质量。
作者:网易数帆低代码架构团队 & 编程语言实验室。