# 概念介绍
EOS Low-Code Platform 8 中默认遵循了生态技术概念,考虑到生态技术中更多关注运行概念,在管理运营上相对标准化能力较少,故在此对平台中的一些特有概念进行标准化说明。
# 应用平台基本概念
在分布式的多应用环境下,需要管理好多个应用之间的运行与管理关系,对多应用建立管理模型,实现多应用的自发现、配置管理、日志统一存储、建立统一监控等基本能力,并提供应用访问控制,实现服务的治理能力。
# 应用概念模型
- 域 域是平台中一组系统的统称,通常将一组系统定义成有业务含义的域,比如信贷域。一个域有多个系统,一个系统只能属于一个域。
- 系统 系统是平台中一组应用的统称,通常将一组应用定义成有业务含义的系统,比如信贷系统。一个系统有多个应用,一个应用只能属于一个系统。
- 应用 (微服务应用) 应用(微服务应用)是平台最小的部署单元,对应平台的后端项目。一个应用只能属于一个系统,一个应用有一到多个应用实例组。
- 应用实例组 应用实例组是平台中应用的实例分组,每个应用可以有一到多个应用实例分组,不同的应用实例组拥有独立的应用配置与管理能力,不同的应用实例组之间可以通过流控策略,实现应用的灰度发布能力。应用实例组下面有多个应用实例。
- 应用实例 应用实例是平台下实际部署应用的进程,应用实例属于某一个应用实例组。
# 网关
网关用于系统内前端应用与后端应用、以及跨系统的不同应用相互调用时,将不同的请求路由到相对应的微服务应用中去。同时提供了诸如权限、限流、缓存、日志、熔断、容错、降级等能力。
# 注册中心
注册中心就是在整个的微服务架构中单独提出一个服务,这个服务不完成系统的任何的业务功能,仅仅用来完成对整个微服务系统的服务注册和服务发现,以及对服务健康状态的监控和管理功能。
# 配置中心
分布式微服务架构下,配置中心统一提供了对微服务应用进行集中化的配置管理,实现了应用的配置修改后实时生效、灰度发布、分环境/分集群管理配置、完善的权限、审核机制等等。
# 断路器监控中心
断路器监控中心可定义一系列监控指标项,如:线程池、队列、请求数、成功数、失败数等,并可按应用、系统浏览监控信息。并支持微服务应用运行期的治理,定义、调整熔断策略。
# 性能监控中心
应用性能管理系统,是对企业系统即时监控以实现对应用程序性能管理和故障管理的系统化的解决方案。应用性能管理,主要指对企业的关键业务应用进行监测、优化,提高企业应用的可靠性和质量,保证用户得到良好的服务,降低IT总拥有成本。APM系统是可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题。
# 日志中心
日志中心是收集、缓冲、存储、展示的标准日志中心架构,收集各应用产生的本地日志数据,进行汇总,可以进行应用日志查看,检索,链路分析。
# 微服务应用开发概念
开发一个微服务应用,主要包括前端和后端工程项目,EOS Low-Code Platform 8 为此提供了基础的开发结构,作为应用开发中的常用标准参考,其涉及的主要概念如下:
# 前端项目
前端项目是平台提供的前端UI开发的工程,支持基于VUE进行开发。
# 后端项目
后端项目是开发工具中提供的后端开发工程,提供数据实体、数据访问、构件库、逻辑流、EOS服务、服务编排的分层架构。后端项目采用标准的Maven Multi-Module项目结构,编译打包采用Spring Boot的Executable Jar格式,部署后对应某个应用的应用实例。
# 构件包
构件包是后端项目开发的基本单元,对应标准的Maven Module。构件包分为四种类型:boot构件包、api构件包、spi构件包、实现构件包。其中,实现构件包由逻辑流、EOS服务、Java代码、数据实体、运算逻辑、业务流程、配置等组成,后端项目可以有多个实现构件包。
# 数据实体
数据实体是平台提供的数据建模能力,支持数据实体和数据库表的映射,支持从数据库表生成持久化数据实体,从持久化数据实体生成数据库表。数据实体支持三种类型:持久化实体、非持久化实体、查询实体;数据实体支持四种关联关系:单向1:1、单向1:N、单向N:1、双向1:N。
# 逻辑流
逻辑流用于实现后端业务功能,采用图形化开发模式,由开始节点、结束节点、运算逻辑节点、事务处理节点、EOS服务节点、SpringBean节点和连线等组成。 逻辑流同时也是针对跨系统或者跨应用的服务调用提供的图形化的服务编排框架,开发人员基于逻辑流可以快速实现服务调用和服务编排。
# 运算逻辑
运算逻辑又称BL(BizLet)方法,基于Java代码实现,用于实现特定的计算处理任务。运算逻辑可以是静态Java方法,也可以是非静态的Java方法。
# EOS服务
EOS服务是平台提供的一种RPC能力,支持HTTP+JSON的数据传输方式,支持通过逻辑流去实现。逻辑流可以通过发布向导直接发布为EOS服务。EOS服务可以直接发布到API网关,对外提供服务能力。
# 业务流程
业务流程描述一个完整的业务过程,它由若干活动组成。包括流程的基本信息、开始和结束条件、组成的活动、活动间流转的规则、需要用户执行的工作任务 (工作项)、可能调用的应用程序以及流程相关数据等信息。提交到流程定义库后会包含流程定义ID(流程定义的唯一标识)、流程定义名称、版本号、流程定义 描述以及提交时间等描述。 流程平台负责对业务流程整个生命周期的管理,包括业务流程的设计建模、测试与调试、部署、运行、监控、管理。
# 应用配置
应用配置是平台提供的应用业务参数配置与管理的能力,能够集中化管理应用不同环境、不同应用实例组的配置,配置修改后能够实时推送到应用实例端。
# EOS应用部署形态
# 精简版(express)
面向小型场景,快速应用开发与发布,内置流程引擎,提供完整单个应用低代码开发。不提供集群部署,不支持分布式缓存,静态资源与后端服务一起,由内置web容器提供服务。
# 独立版(standalone)
独立应用场景,支持高可用的对等集群部署架构,支持中等业务规模的业务系统,内置流程引擎,提供完整单个应用低代码开发。基于分布式缓存实现session共享,以及业务数据的分布式缓存,静态资源由nginx提供服务。
# 微服务版(micro)
面向大规模应用场景,基于微服务架构支持分布式部署场景,需要部署独立的应用联邦中心、独立的流程中心等,支持分布式架构下的多应用低代码开发。适配常用的云原生组件和分布式缓存,支撑企业级大规模业务应用。