前言
网上介绍普元EOS产品的文档不多。本文是本人参与迁移普元微服务架构、参与普元公司组织培训后,总结的实际落地学习文档。
一、DevOps介绍
DevOps 是一系列实践、工具和一个融合开发及 IT 团队的文化理念。DevOps 强调赋能团队、跨团队沟通与协作以及技术自动化。
就是让开发人员和运维人员更好地沟通合作,通过自动化流程来使得软件整体过程更加快捷和可靠,的一种方法论。
其包括6个阶段:
- 计划(Plan)
- 构建(Build)
- 持续集成和部署(或者交付)(Continuous Integration and Deployment or Delivery)
- 监控和告警(Monitor and Alert)
- 运维(Operate)
- 持续反馈(Continuous Feedback)
是贯彻整个软件生命周期的可行性方案。
什么是 DevOps?
DevOps及DevOps常用的工具介绍
二、普元EOS
Primeton EOS Microservices 简称普元EOS,是一个分布式环境下的微服务应用平台,提供微服务应用的开发、部署、监控、运维、治理等应用生命周期管理工作。
采用主流的微服务技术架构和敏捷高效的工程化DevOps交付体系,帮助企业实现传统集中式架构的转型。
快速开发:普元EOS平台简介
1.产品组成
1集成开发环境IDE
EOS MS IDE是集面向微服务应用的开发、组装、调试、维护、管理和发布与一体的集成开发环境,提供了前端项目、后端项目两种项目创建方式,可满足前后端分离。
2运行环境Server
EOS MS Server是支撑微服务的基础环境,提供了日志、异常处理、负载均衡、熔断限流、应用发现等一系列能力。保障服务运行。
3微服务管理平台Governor
Governor提供系统管理、应用管理、配置管理、日志查看、微服务监控等系列功能。
4注册中心Registry center
提供服务发现能力,各个微服务启动时,可向注册中心注册信息,其他应用可以在注册中心查询。
5配置中心Configuration Center
能够集中化管理应用不同环境和不同集群的配置。管理人员可以在Governor中集中修改并实时发布。
6日志中心Log Center
是收集、缓冲、存储、展示的标准日志中心架构。
7应用监控中心APM
是适用于分布式系统的APM业务员程序性能监控器,提供对分布式应用的性能指标监控能力。包括CPU、内存、SQL运行等应用行为监控。
8断路器监控中心Circuit Breaker Monitoring Center
其可以定义一系列监控指标,如:线程池、队列、请求数、成功数、失败数等,并可按应用、系统浏览监控信息。并支持微服务应用运行期的治理、调整熔断策略。
9网关API Gateway
是所有应用、终端、消费方统一接入系统微服务入口。其对内外进行了隔离,保证服务安全性。
10基础应用框架CoFrame
是产品自带的开源应用基础框架,方便用户二次扩展。
11统一认证平台IAM
即身份识别与访问管理,具有单点登录、认证管理和审计、动态授权等功能。实现权限的统一管理。
12软件开发工具包SDK
为了方便团队快速便捷开发,提供了统一的微服务架构应用开发工具包。包括:注解、异常、熔断、数据库持久化、服务发布等常用功能。
2项目创建实例
本例采用分布式微服务架构前后端分离的方式创建项目。
1后端项目
- 架构分层:Controller+Service+DAO(复杂功能可使用DDD的面向领域四层架构)
- 开发流程:
- 创建项目:新建Maven项目。
创建多模块Maven项目。boot模块为主模块负责项目配置与启动、api模块提供对外接口、impl模块提供实现。 - 项目配置:application.properties配置数据源、项目名、端口、注册中心、配置中心;logback-spring.xml中配置日志;pom.xml配置依赖。
- 定义接口:定义对外(系统间、系统内)RESTfull的Fegin接口。
- 接口实现:实现Controller、Service与DAO 。
- 运行。
- 创建项目:新建Maven项目。
- 服务编排
服务编排是IED的一个核心功能,其提供用画图的方式来写代码,实现低代码开发。
2前端项目
- 开发流程
- 1创建项目:创建前端项目初始化,可使用EOS提供默认前端项目复制。
- 2创建Action:配置后台swagger-ui接口地址。
- 3创建页面:创建View页面
- 4配置路由:创建项目模块路由,合并路由
- 5运行:配置目标URL。
3.特性注意点
- 1系统内调用。
同系统内不同应用(不同的微服务应用)调用属于系统内调用。
服务端的API接口模块中,提供对外fegin clien接口。接口添加@FeignClient注解。并提供Fallback类,对应接口方法调用失败情况。
客户端引入服务端提供api.jar,直接注入fegin clien接口类使用即可。 - 2系统间调用
不同系统间调用需通过网关,一个系统一个网关,由网关做统一路由处理。前端项目调用后端项目同样需通过网关。
服务端不需修改,客户端代码中配置网关配置类GateWayConfig,通过resttemplate请求provider所在网关,然后由网关route转发到provider。 - 3统一异常处理
- a自定义异常enum枚举类,实现类SDKAppErrorCode。异常抛出时使用enum类中统一方法抛出异常,打印日志、返回错误码与错误信息。
- 4application启动类。在原有spring boot注解上,EOS在此添加了许多如注册中心、服务编排、熔断降级、feign接口等注解。
- 5功能发布
新项目部署需在普元管理平台Governor上添加其信息。 - 新建域、系统、系统编译打包域部署运行。
- 发布服务:添加应用、配置网关、导入API接口、授权访问。
- 6多模块项目结构
后端采用多模块项目结构:API、IMPL、BOOT。- BOOT:入口模块,负责打包应用、启动、定义配置。需引入EOS启动包eos-dap-sdk-starter、application启动类上添加EOS特色注解、各配置文件中添加系统配置application.properties、logback-spring.xml等。