分类 Paas 下的文章

目前国内主流的低代码开发平台有:宜搭、简道云、明道云、云程、氚云、伙伴云、道一云、JEPaaS、华炎魔方、搭搭云、JeecgBoot 、RuoYi等。这些平台各有优劣势,定位也不同,用户可以根据自己需求选择。


一、宜搭

宜搭是阿里巴巴集团在2019年3月公测的面向业务开发者的零代码业务应用搭建平台。开发者可以通过可视化开发单据页面、流程页面、报表页面、展示页面、外部链接页面,将这些页面组合在一起形成轻应用,一键发布到PC和手机端。宜搭在2018年在阿里巴巴集团内部发布,阿里作为首个种子用户,到目前为止已有上万个应用在上面使用。 在2019年9月宜搭也发布了升级版宜搭Plus,在单据、流程、报表等方面都进行了全面升级,成为一款面向ISV开发者的低代码开发平台,能够满足企业复杂业务管理系统开发所需的数据建模、逻辑&服务编排、专业UI页面设计等需求。

优势:大厂产品,用户体验较好,开发简单应用较为便捷,定位阿里生态,发展较快。

劣势:只能线上用,不能私有化部署,不交付源代码,价格较高。


二、简道云

简道云发布至今快五年了,已经算是市面上发展比较久的产品了,它由国内专业的大数据BI和分析平台厂商——南京帆软软件有限公司(以下简称“帆软”)孵化而来,在数据分析方面具有天然的优势。 简道云与帆软旗下报表、BI等其他产品定位有所不同,简道云致力于帮助非技术人员快速搭建企业应用,无需使用编码,即可搭建销售、OA办公、生产等管理应用,帮助企业规范业务流程、促进团队协作、实现数据追踪!

简道云的核心功能包括表单、流程表单、仪表盘以及其他一些高级功能,通过这些功能的组合,搭建出各种不同的应用。

优势:强大数据分析功能、快速移动化、界面交互体验优。

劣势:缺乏低代码开发功能,模型无法代码化扩展,复杂应用无法支撑;仅支持云端部署,无法私有化部署,费用较高。


三、明道云

明道云的发展历史很长,从最开始的梅花网到协作SaaS产品明道,最后在2018年转型成为零代码业务应用构建平台。在行业中,还属于比较新的产品,明道云给自己的定位是一个APaaS平台,让企业用户不需要代码开发就能够搭建出用户体验上佳的销售、运营、人事、采购等核心业务应用。从整体功能上看,明道云对标的是国外应用搭建平台Airtable,主要通过搭建数据管理以及流程管理应用,帮助企业高效管理业务。

优势:移动化能力强,支持与钉钉和企业微信集成,视图功能较为强大,可扩展性好。

劣势:报表功能较弱,审批流偏弱,有一定上手门槛,费用高。


四、云程

云程平台是一款基于SpringBoot+VUE的低代码开发框架。采用微服务、前后端分离架构,基于可视化流程建模、表单建模、报表建模工具,零代码快速构建云端业务应用 ,平台即可本地化部署,也可基于K8S云原生部署。云程平台也是一款专业的BPM软件,即可独立部署,支撑企业级端到端流程落地,也可嵌入到您的OA、ERP等系统中,作为流程引擎组件使用。云程平台主要目的让开发者注重专注业务,降低技术难度,从而节省人力成本,缩短项目周期,提高软件安全质量,为企业信息化建设降本增效。

云程研发团队核心成员有10年以上的软件研发经验,聚焦于低代码平台、流程引擎等中间件产品研发,我们即可输出云程平台源代码,也可提供专业咨询和定制服务。

官方网站: http://www.yunchengxc.com/

在线演示:http://www.yunbangong100.com:31110/

官方文档:http://www.yunchengxc.com/category/help/doc

优势:云原生架构,流程引擎功能强大,对复杂应用支撑较好,云化和私有化均可,可交付源码,商业模式灵活。

劣势:缺乏市场宣传,缺乏生态化发展,用户界面美观方面稍有欠缺。


五、氚云

氚云是深圳奥哲网络科技有限公司(奥哲网络)三大主推产品之一,跟简道云是同时期的选手,已经发展近5年,是一款面向管理者或业务人员的以场景为中心的零(低)代码平台。2018年成为阿里战略投资的低代码应用搭建工具,与钉钉实现了深度融合。 氚云的定位与以流程为中心的H3 BPM和以业务为中心的云枢不同,氚云是以明确的场景为中心,通过可视化表单、流程设计、智能报表和模板化应用,帮助管理者或业务人员快速搭建流程与应用,透明呈现业务进度,实时展现精准数据,完整沉淀管理信息。

优势:表单流程配置灵活,应用模板丰富,交互设计体验较好,对钉钉支持较好。

劣势:功能较基础,复杂功能需使用低代码,需绑定钉钉提供服务,对于非钉钉类应用,局限性较大。


六、JEPaaS

JEPaaS是一款优秀的软件平台产品,可视化开发环境,低代码拖拽式配置开发,操作极其简单,可以帮助解决Java项目80%的重复工作,让开发更多关注业务逻辑,大大提高开发效率,能帮助公司大幅节省人力成本和时间成本,同时又不失灵活性。适用于搭建 OA、ERP、CRM、HR、HIS等所有的企业信息管理系统。


七、伙伴云

伙伴云,是由有着10年以上论坛软件开发及中小企业服务经验的前Discuz!团队打造的,历经“伙伴云表格”、“伙伴办公”,逐步升级为一个为企业经营服务的数据可视化平台,为企业的全流程运营管理与经营核算提供整体解决方案。通过强大的数据库引擎及权限架构,搭配可灵活定制的流程引擎与大数据分析引擎,配合专家级经营顾问与服务,打造全流程、实时可视化的经营核算体系,为企业构建起上下同心的经营伙伴关系,实现员工持续成长、组织持续变革、业绩持续提高。


八、道一云

道一云|七巧Plus(下面简称“七巧Plus”)是道一云旗下的一款低代码开发平台,去年7月左右上线,算是一款比较新的产品了。七巧Plus给自己的定位是一个高生产力的aPaaS平台,帮助企业快速搭建个性化应用,规范流程管理、数据追踪,提高团队协作效率。 道一云从2004年成立至今,近几年已经陆续发布了基于企业微信的协同应用套件——OA、HR、CRM等应用,在应用平台方面还发布了中台、七巧Plus,从布局上来看,是典型的“PaaS+SaaS”发展模式。


九、JeecgBoot

JeecgBoot 是一款基于代码生成器的低代码开发平台,零代码开发!采用前后端分离架构:SpringBoot2.x,Ant Design&Vue,Mybatis-plus,Shiro,JWT。强大的代码生成器让前后端代码一键生成,无需写任何代码! JeecgBoot引领新的开发模式(Online Coding模式-> 代码生成器模式-> 手工MERGE智能开发), 帮助解决Java项目70%的重复工作,让开发更多关注业务逻辑。既能快速提高开发效率,帮助公司节省成本,同时又不失灵活性!JeecgBoot还独创在线开发模式(No代码概念):在线表单配置(表单设计器)、移动配置能力、工作流配置(在线设计流程)、报表配置能力、在线图表配置、插件能力(可插拔)等等!

JeecgBoot开源版本功能有限,只有系统管理功能,低代码开发和流程引擎均需要购买商业版本。


十、RuoYi

RuoYi是一个后台管理系统,基于经典技术组合(Spring Boot、Apache Shiro、MyBatis、Thymeleaf)主要目的让开发者注重专注业务,降低技术难度,从而节省人力成本,缩短项目周期,提高软件安全质量。

RuoYi开源版本功能有限,只有系统管理功能,流程引擎等高级组件均需要购买商业版本。

————————————————

版权声明:本文为CSDN博主「大龄码农有梦想」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/wxz258/article/details/114488658


JPAAS平台是基于SpringCloud的一套企业级的低代码微服务架构敏捷开发平台,它具有以下特点:

  1. 基于Spring Boot 2.0.X、Spring Cloud Finchley和Spring Cloud Alibaba

  2. 主要针对解决微服务和业务开发时常见的非功能性需求

  3. 提供了基础的企业级的应用开发,如流程、表单、组织架构、安全认证、门户等

  4. 提供应用管理,方便第三方系统接入,支持多租户(应用隔离)

  5. 前后端分离的企业级微服务架构

  6. 引入组件化的思想实现高内聚低耦合并且高度可配置化

  7. 注重代码规范,严格控制包依赖,每个工程基本都是最小依赖

  8. 适合企业级的应用功能扩展与开发

  9. 适合企业往技术中台、数据中台、业务中台进行模块与业务的规划扩展

平台架构模块:

平台架构图

分层的架构:


    这几年,在公司尝试转型做产品。所以引入了很多的产品的理念。不管是对产品的定义,还是针对产品的管理,以及摸索产品的落地等等。我之前更多的是接触的ToB端,所以想必也猜到了是一个SaaS模式的产品。其实,现在回想并总结,之前所做的产品并不理想。当然,在这里就不多的来介绍了。

    在一个月前不久,我给了一个朋友一份代码,还包含对产品的技术框架以及规划的文档。补充说一下,我很庆幸在一个新的环境接手在重新设计产品。所以基于之前的沉淀,有了一定的提升。那么这个朋友也是我之前在一次技术交流会上分享技术的时候所认识的。这次呢,我们在微信上一起讨论关于SaaS模式的产品时,我给他灌输了我对部分产品的理解,以及我参与过的产品的一些经验,并给他一些思路和参考。

    据悉,他现在也是在参与一个项目。大篇幅的概念过后,他显然有点不满足。加之我说我们现在所用到的一些技术方案时,他也变现得格外的感兴趣,并最后我也将一个产品的代码做了裁剪后,也一并分享给了他。

    好了,写到这里,我觉得应该要进入主题了。

    本篇文章呢,我想聊一聊关于SaaS产品里面一个重要的概念,多租户。这个也是他后来不断让我给他解释和讲解的内容,所以我索性整理一下。

    在以往传统的项目中,我们一般地是面向特定的客户实现一套特定的系统,并部署到对应的企业内部中。不同的企业或组织各自部署一套自己的软件系统。而现在面向ToB端的SaaS模式,是将一套软件服务部署到云端或特定服务环境中,面向不同的企业或组织提供相同的服务。这也很符合目前“轻资产”的模式。这里有一张图比较形象:

传统模式与SaaS模式对比

    在SaaS模式的平台中,我们需要考虑和规划好如何将一套相同的服务提供给不同的企业或组织使用,并且有且只能使用或操作所属范围中的数据。当然,不同企业或组织对平台功能的使用,通常我们把这种使用的企业或组织客户称之为“租户”。所以,我们可以总结出一句话:多租户技术,是一种架构模式,是实现如何在多用户环境下共用相同的系统或程序组件,并且达到各用户间数据的“独立”的技术

    在SaaS平台里,注重的就是数据的“独立性”,也是隔离性。如何在共有的一套系统架构与服务,仍可以保障客户的数据相对独立的正常使用。这也是SaaS产品必须面对的问题。由此带来了一些新的挑战。

    一般地,以支持多租户的运行技术总体可分为三种:独立数据库、共享数据库但独立Schema、共享数据库且共享数据表。他们各自又存在各自的优劣性。接下来,就具体聊一聊。

1、独立数据库

    针对独立数据库的这种方式,首先需要业务层能够支持多数据源的配置,并且为每个租户创建或初始化一个数据库。应用程序和数据库都是独立的实例,因此它不会与任何其他独立实例交互。只为一个租户提供服务,拥有独立的服务、独立的数据库以及独立的请求处理。

独立数据库

优点:为不同的租户提供独立的数据库,有助于简化数据模型的扩展设计,满足不同租户的独特需求;如果出现故障,数据影响小、恢复数据比较简单。

缺点:增多了数据库的安装数量,随之带来维护成本和购置成本的增加这种方案与传统的一个客户、一套数据、一套部署类似,差别只在于软件统一部署在运营商那里。由此可见此方案用户数据隔离级别最高安全性最好,但是成本较高。

2、共享数据库但独立Schema

共享数据库、独立Schema模式,是将多个或所有租户的数据放在一个数据库服务中,但是为每一个租户建立一个独立的schema。租户间数据彼此逻辑不可见,上层应用程序的实现和独立数据库一样简单。(补充:mysql数据中的schema比较特殊,并不是数据库的下一级,而是等同于数据库。)
优点:对于安全性要求较高的租户,是一种选择。提供了一定程度的逻辑数据隔离,但并不是完全隔离;每个数据库可支持更多的租户数量。
缺点:如果出现故障,数据恢复比较困难,因为恢复数据库将牵涉到其他租户的数据;如果需要跨租户统计数据,存在一定困难。这种方案是方案一的变种。只需要安装一份数据库服务,通过不同的Schema对不同租户的数据进行隔离。由于数据库服务是共享的,所以成本相对低廉。

3、共享数据库、共享数据表

    共享数据库、共享数据表,指的是多个或所有租户共享同一个数据库(Database)。所有的租户数据都存在同一个数据和同一套表中。通过数据库或表设计的租户ID租户标志字段,来表明该记录是属于哪个租户的。

共享数据库、共享数据表

优点:所有租户使用同一套数据库,所以成本低廉;能够简单进行数据聚合统计或分析。
缺点:隔离级别最低,安全性最低,需要在设计开发时加大对安全的开发量,数据备份和恢复最困难。

    接下来,我聊一聊我们在某个产品上的实践。这里仅针对实现逻辑做简单梳理。不深入展开。

    我们在开展某个ToB的SaaS产品规划时,采用的是微服务的模式。所以我们从路由网关、认证鉴权、以及对应的业务应用和数据库设计做了整体性的规划和实现。如下图,这是是我们之前设计的一版架构图,后来有所调整就不展开了。

架构模式

    在这个产品中,我们选择的是共享数据库、共享数据表的模式进行实践的。

    首先,我们为了租户能否方便的访问,以及平台能自动识别访问是哪个租户,我们在接入层采用通过url来识别租户。即系统在初始化租户信息时,会随机生成一个租户编码(租户编码允许修改一次),用于saas平台的三级域名监听,通过在业务系统的处理和绑定,当接收到请求时,拦截器会自动识别对应的租户编码,并加载对应的租户信息。

    其次,在业务处理时,租户标识编号作为必须条件带入,进行数据操作。这里可以拓展下。目前在构建时,我们预留了分库分表的处理策略。当我们的用户量和业务所残生的数据呈现线性增长模式时,采用一般性的单数据库或者读写分离已经远远不能满足访问性能的要求了。加上我们在很多微应用上采用的是一个数据库的原则。数据库的IO将是一个直接面临的问题。所以我们已经预留了按照租户分库的策略。

    针对数据库分库,我推荐两个方案。一个是代码编程式的sharding-jdbc、一个是采用中间件技术(MyCat、DBLE)等。其中dble也是基于mycat的版本。

    sharding-jdbc是代码编程的方式,通过定义对应的分库规则来引导对应的数据持久化到对应的库中。这种方式需要编码规范并且业务实现要关注这块逻辑。

    数据库中间件,是将分库分表的规则逻辑从应用程序提取出来,在中间件上来维护对应的规则。好处就是降低了业务人员对数据处理的关注,让业务实现更关注业务实现。

    在这里不具体展开对这些技术的详细讲解了。我们采用的是中间件MyCat1.6.5来实现。

    接着,在MyCat中配置rule规则,通过tenantId%4的规则,将数据分到4个物理数据库中。在业务代码层,只需要指向一个数据库,通过数据库中间件来维持多数据源的连接和数据处理(如果涉及到分布式事务的话,请谨慎使用)。

    最后,就是公约和规范了。其实,不管是采用编码式还是数据库中间件,我们都需要一个租户的唯一标识。然后建立数据库路由,以租户id为路由标识,来数据库语句路由到对应的数据库中去执行。在维护sql语句时,有一些需要注意或遵守的地方。

        1、如果有全局表,那么在执行全局表数据时,可以按照对应的业务需求进行编写。
        2、如果需要执行某个租户的信息,那么Sql必须要加上租户的唯一标识条件,且放在第一位条件。
        3、如需要进行全局表或夸库数据联表查询,分开查询。具体的要结合中间件支持程度。
        4、数据库联表执行,尽量保持在3张表以内。超过3张表联表,可以拆分执行。



作者:NeilZhou
链接:https://www.jianshu.com/p/74480dc0c779
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


d25f5af05fdaba9c4517c0275f6265fc.png

简介

基于SpringCloud(Hoxton.SR1) + SpringBoot(2.2.4.RELEASE) 的 SaaS型微服务脚手架,具备用户管理、资源权限管理、网关统一鉴权、Xss防跨站攻击、自动代码生成、多存储系统、分布式事务、分布式定时任务等多个模块,支持多业务系统并行开发, 支持多服务并行开发,可以作为后端服务的开发脚手架。代码简洁,架构清晰,非常适合学习使用。核心技术采用Nacos、Fegin、Ribbon、Zuul、Hystrix、JWT Token、Mybatis、SpringBoot、Seata、Nacos、Sentinel、 RabbitMQ、FastDFS等主要框架和中间件。

希望能努力打造一套从 SaaS基础框架 - 分布式微服务架构 - 持续集成 - 系统监测 的解决方案。本项目旨在实现基础能力,不涉及具体业务。

部署方面, 可以采用以下4种方式,并会陆续公布jenkins集合以下3种部署方式的脚本和配置文件:

  • IDEA 启动

  • jar部署

  • docker部署

  • k8s部署

架构图

62c80faf61190123cf830839d83053fc.png

技术栈/版本介绍

  • JSON序列化:Jackson

  • 消息队列:RabbitMQ

  • 缓存:Redis

  • 缓存框架:J2Cache

  • 数据库: MySQL 5.7.9 (驱动6.0.6)

  • 定时器:采用xxl-jobs项目进行二次改造

  • 前端:vue

  • 持久层框架: Mybatis-plus

  • 代码生成器:基于Mybatis-plus-generator自定义

  • API网关:Zuul

  • 服务注册与发现:Eureka -> Nacos

  • 服务消费:OpenFeign

  • 负载均衡:Ribbon

  • 配置中心:Nacos

  • 服务熔断:Hystrix

  • 项目构建:Maven 3.3

  • 分布式事务: seata

  • 分布式系统的流量防卫兵: Sentinel

  • 监控: spring-boot-admin 2.x

  • 链路调用跟踪: zipkin 2.x

  • 文件服务器:FastDFS 5.0.5/阿里云OSS/本地存储

  • Nginx

功能点

  • 服务注册&发现与调用

  • 服务鉴权

  • 负载均衡

  • 熔断机制

  • 监控

  • 链路调用监控

  • SaaS(多租户)的无感解决方案

  • 防跨站脚本攻击(XSS)

  • 代码生成器

  • 定时任务调度器

  • 大文件/断点/分片续传

  • 分布式事务

  • 跨表、跨库、跨服务的关联数据自动注入器

  • 灰度发布

项目截图

8834a66a992d5a255c2accda0c4975c1.png

4a97c246601631e5a5607b2950e85b38.png

91c03cdedaca22877813fe69d8393985.png

759cf55ef626c18d6df0751842fc0b4e.png

b5a84aeb9c0aa8cdea9b1bd2f75c26da.png

4d9f2af2b47a0345b989a7b9bfc373ac.png源码

https://gitee.com/zuihou111/zuihou-admin-cloud

小结

最后感谢撸主贡献出了这么优秀的微服务管理脚手架,大家可以阅读原文支持一下,如果觉得不错可以顺手给个小星星。

被举报了,只能推荐点风景了!

相关资源:Spring Cloud & SaaS 实战经验分享


可以通过应用服务的智能调度和多层级负载均衡,保障业务服务的连续性

可以通过自助平台界面部署所需要的应用。如在应用模板选择一个模板快速部署使用

可以通过交付中心模块实现企业应用标准化交付和管理

平台支持统一管理多个地域的不同数据中心的集群资源

平台支持从项目管理、开发、测试、运维多阶段的自动化IT管理