最近我对公司其他部门开发的低代码平台进行了研究,并在开发团队内做了分享,对低代码平台的分享做一个简要记录。
    1.低代码平台产生的背景:在业务和管理两方面对应用的需求越来越大,但是程序员总量是有限,培养难度大,应用开发周期长,应用维护成本高,这个矛盾成为了技术和业务发展的主要矛盾。
    2.低代码平台的概念:将技术要素进行封装,以业务/事务视角进行应用快速构建、持续交付的应用全生命周期管理平台。
    3.低代码平台主要实现的功能:通过拖拽和简单配置,即可在平台完成一个应用的前后端一体化搭建,以及托管应用的发布和上线。
    4.软件行业内低代码平台为什么火热:业务在线催化“快交付”需求。国内市场的“互联网+¡±实践开始逐步提速,但传统的软件重装开发模式不能及时消化大量业务需求,同时IT专业人才的成本逐渐增加,企业IT交付能力不堪重负。低代码为企业用户提供了另一种开发模式,基于业务特性封装成标准件,借助可视化工具的进行装配,不需分神考虑开发语言、算法,而专注于业务实现。
    5.软件行业内低代码平台当前的发展情况:短期内持续高速增长。2018年以来,低代码概念在国内关注度持续攀升,资本的热钱与逐风的玩家不断涌入低代码赛道,市场规模也在显著性增大。同时,低代码玩家大多具备其他成熟业务,拥有稳定的用户群,以支持低代码业务持续运营。因此,短期内低代码市场将维持高速增长。但需要注意的是,当前头部大企业依然是低代码平台市场的主要对象,腰部用户群较小,从长期看市场可能会较快进入品牌兼并阶段。
    6.公司生产环境部署用户制品的简要流程:用户在uat环境完成线上环境制品的开发,申请发布。页面开发的内容通过打包服务转化为json格式的配置文件,存放在对象存储服务器中,之后触发持续交付流水线。流水线是经过定制的,与低代码平台紧耦合,清楚配置文件与部署策略相关的配置的具体含义,按照配置文件的要求装配成制品,上传制品库以及同步到生产环境对象存储服务器。生产环境的低代码平台有一个部署服务,可以从对象存储中获取制品并部署使用。
    7.微服务拆分和分库策略:按组织结构拆分,拆分微服务有页面编辑微服务、事件中心微服务、平台基础微服务、流程事件微服务。分库也是按组织结构拆分,采用多schema实现。使用MongoDB增强吞吐能力和处理灵活的数据结构。具体数据库设计就不发表了。
    8.长连接消息(ws)的分布式实现:分布式条件下无法通过共享或记录session使得与用户长连接的单台主机可以被分布式系统掌握和控制。如果每次都去通知所有机器去遍历用户去发消息,性能最终会出问题。最终采用的方案是仿照redis机制弄一个一致性哈希的环,节点数和长连接服务机器相同,连接的时候使用用户id去哈希,连接对应的机器,发消息就也能找到那台机器。缺点是扩容缩容要断开所有连接。
    其他的分享内容是与公司内的其他生态的关联,最终会越来越紧密的融入到公司的生态中。这里就省略这部分内容了。
    顺便记录一下同事的低代码平台分享的内容:
    低代码开发平台是一种aPaaS(Application Platform as a Service),它是仅需少量编码甚至无需编码 (0代码) 即可快速通过可视化拖拽 (drag & drop) 的方式完成应用程序开发的平台。该名词最早于2014年6月由Forrester Research最先提出。
    低代码开发平台通常具备以下特点:
    ●可视化集成开发环境(Visual IDE)
    ●大量可重用且支持拖拽的组件(drag & drop)
    ●团队协作(Team Collaboration)
    ●跨平台(Cross-Platform)

    低代码平台优势:
    提升效率:图形化界面替代代码编写;减少bug;支持多环境部署(PC,H5,移动端);云化全流程协同。
    降低成本:降低软件开发的人力成本;降低对开发者水平的要求;降低人员招聘难度。
    增加灵活性:能够快速响应业务的需求,技术和非技术人员均可参与构建;跨平台的支持也增加了对业务支持的灵活性
    一致的用户体验:内置的UI组件可以为终端用户在不同端提供一致的用户体验,减少割裂感。
    风险管理:平台能够更好的处理不断变化的监管和合规的要求;内建安全,减少“ShadowIT”带来的安全风险等。
    一个低代码平台的架构图示例:
    低代码平台分享记录 - 图1
    核心功能示例图:
    低代码平台分享记录 - 图2

    低代码平台的挑战:
    限定用户:“如果面对不同能力,角色的用户做体验设计?”
    限定场景:“面对无数可能出现的场景,如何确定优先级,价值和路线?”
    平台规划:“如何在不断演进迭代的过程中,避免平台成为’大杂烩’?”

    *本文内容来自晓日窥轩和同事在公司内部的技术分享