查看原文
其他

普元微服务平台EOS Platform 8全新发布

刘相 EAWorld 2018-12-19

转载本文需注明出处:微信公众号EAWorld,违者必究。


平台简介:


普元新一代应用平台EOS Platform 8已经全面拥抱微服务架构,支持分布式架构,为企业业务上云提供云原生应用的支撑。同时该版本完全支持Spring Boot应用开发、采用标准Maven、Git体系,平台更开放。


目录:


一、全面拥抱微服务的新平台

二、微服务平台特性速递

三、支撑微服务全生命周期建设的关键能力

四、微服务平台落地实践案例



一、全面拥抱微服务的新平台


普元开发平台拥有广泛的行业客户群体



普元应用开发平台作为国内领先的技术平台,已经广泛应用到金融、通信、能源、政府、大型企业等行业客户。典型客户包括工行、建行、国开、邮储、兴业等。同时通过与华为公司的合作,已经广泛应用到40多个国家。基于2015年《财富》中国前50强中,已经有28家在使用包括开发平台在内的普元产品。


企业数字化转型促使企业架构形态发生变化



随着互联网业务的高速发展,企业需要迫切的进行数字化转型,导致对企业IT架构以及企业应用架构需要快速响应业务需求,满足海量的并发请求。研发模式从瀑布模型转向为敏捷、到基于开发运维一体化的DevOps;应用架构也从传统SOA架构向微服务架构转型,从单体应用到微服务应用。


这迫切需要对企业的IT进行整体架构升级,支持分布式、云化、开发运维一体化。普元结合多年企业架构的经验,整体规划普元分布式平台总体架构。


普元分布式平台总体架构



分布式平台主要包括四大部分:微服务平台(EOS Platform 8)、DevOps平台、容器云平台、监控平台。分布式云平台实现应用的敏捷开发、交付,可靠运行,实现业务敏捷创新的IT技术支撑。


目前普元已经研发出三个产品:支持开发运维一体化的DevOps 5.2产品、基于Docker+K8s的容器云5.0产品、基于Spring Cloud体系的微服务平台EOS Platform 8.0。


普元微服务平台EOS Platform 8产品定位



普元微服务平台EOS Platform 8 逻辑架构



作为完整的微服务平台,需要系统性的提供开发工具(脚手架)与规范、运行能力支撑、管理监控三大块的能力。


普元微服务平台整体包括12个功能组件:Server(运行环境)、IDE(集成开发环境)、Governor(微服务管理平台)、IAM(统一认证平台)、Coframe(应用基础框架)、API Gateway(API网关)、Registry Center(注册中心)、Configuration Center(配置中心)、Log Center(日志中心)、APM(应用监控中心)、断路器监控中心、SDK(软件开发工具包);


每个具体功能组件主要提供的能力如下:


  1. IDE(集成开发环境):IDE是集面向微服务应用的开发、组装、调试、维护、部署、管理和发布于一体的集成开发环境,提供了前端项目、后端项目、混合项目三种项目创建方式,可满足微服务前后分离、SOA架构两种模式。


  2. Server (运行环境):Server是支撑微服务、SOA应用运行的基础环境,提供了日志、异常处理、负载均衡、熔断限流、应用发现等一系列基础能力。


  3. Governor(微服务管理平台):Governor 是一套微服务管理平台,提供了:系统管理、应用管理、配置管理、日志查看、微服务监控等系列功能,负责对EOS开发的微服务应用、Governor 平台本身进行管理。


  4. IAM (统一认证中心):IAM(Identity and Access Management 的缩写),即“身份识别与访问管理”,具有单点登录,认证管理和审计、租户管理、动态授权等功能。


  5. Coframe (应用基础框架):Coframe是产品自带的开源应用基础框架,提供了资源管理、权限管理、用户以及角色管理等业务应用基础能力,用户可以根据自己的需要进行二次开发与扩展。


  6. API Gateway(API网关):API Gateway是所有应用、终端、消费方统一接入系统微服务的入口。网关提供 REST/HTTP 的访问通道,可以对API进行注册、授权、路由配置、报文转换配置等,同时具备一套完整的API接口调用监控体系。


  7. Registry Center (注册中心):注册中心提供服务发现以及服务注册的能力,各微服务启动时会向注册中心注册服务信息(例如IP、端口、微服务名称等),注册中心存储这些信息便于服务发现与寻址。


  8. Configuration Center (配置中心):配置中心能够集中化管理应用不同环境和不同集群的配置。在 EOS Platform 8.0中,Governor(微服务管理平台)与配置中心进行集成,托管在配置中心的应用,管理人员可以通过 Governor 对相关应用进行配置修改和配置发布并实时推送。


  9. Log Center(日志中心):日志中心是收集、缓冲、存储、展示的标准日志中心架构,收集各应用产生的本地日志数据,进行汇总,供最终检索。


  10. Application Performance Management(应用监控中心):应用监控中心是适用于分布式系统的APM(应用程序性能监视器)工具,提供对分布式应用的性能指标监控能力。


  11. Circuit Breaker Monitoring Center(断路器监控中心):断路器监控中心可定义一系列监控指标项,如:线程池、队列、请求数、成功数、失败数等,并可按应用、系统浏览监控信息。


  12. SDK(软件开发工具包):应用开发过程中提供了一系列SDK使应用开发更方便和统一。包括服务发布相关的接口声明注解、功能权限校验注解,服务消费相关的客户端声明注解、熔断Fallback注解,服务实现相关的异常、日志SDK以及持久化相关的Mybatis、JPA 等内容。


普元微服务平台EOS Platform 8拥抱Spring Cloud体系



平台从技术栈的选型上,本着更开放的原则以及普元开源技术的选型标准,全面拥抱Spring Cloud体系,使得平台有更好的开放性,适用性更广泛。


具体各个组件的技术选型如下:


  • 注册中心:Spring Cloud Eureka

  • 配置中心:Ctrip Apollo

  • 日志中心:FileBeat+ELK+Kafka

  • 监控中心:SkyWalking

  • API网关:Spring Boot+自研

  • 微服务容器:Spring Boot、Spring Cloud Feign、Spring Cloud Ribbon、Spring Cloud Hystrix

  • 前端:VUE 、NUI(普元自研基于JQuery的前端框架)

  • 访问认证:基于OAuth2协议的自研IAM组件


二、微服务平台特性速递


普元微服务平台EOS Platform 8 六大特性



  • 特性一:双架构支持

    平台支持微服务架构应用、同时支持SOA架构应用;

    开发模式支持前后端分离开发模式、同时支持前后端混合开发模式;


  • 特性二:可变部署架构

    独立的配置中心、监控中心、日志中心、注册中心、API网关等组件,满足企业自身不同的环境;


  • 特性三:ToC体验

    基于VUE的交互方案,支持企业打造互联网体验的微服务应用;


  • 特性四:全方位服务管控与治理

    全面的服务、日志、链路等监控能力,为微服务应用运行提供全方位管控能力;

    同时提供从域、系统、应用、实例、API等多级的服务治理模型,便于全面梳理企业软件资产;


  • 特性五:丰富业务组件

    提供IAM、Coframe等基础业务组件,加速微服务应用构建;


  • 特性六:完善生态体系

    支持与普元DevOps、容器云产品的无缝集成;

    支持EOS7.6项目(SOA架构)快速迁移到EOS Platform 8微服务版本;


三、支撑微服务全生命周期建设的关键能力


开发期-微服务平台关键能力支撑



开发期,主要提供4方面能力:


  1. 一体化开发工具

    提供微服务应用开发、调试、编译等一体化功能;IDE对微服务开发的一些最佳实践做了特定的固化,例如固定目录下的配置文件内容会自动同步到配置中心管理;


  2. 标准Maven项目模板

    IDE支持前端、后端、混合三种项目类型,真没每种项目类型都会有特定项目模板;

    基于项目模板可以快速支持其他的IDE工具开发,满足开发者的工具选择的诉求;


  3. 服务快速发布

    支持Rest服务发布,支持WebService服务发布;

    提供服务发布向导,支持逻辑流一键发布Rest、WebService服务,降低开发人员重复劳动;


  4. 丰富SDK

    应用开发过程中提供了一系列SDK使应用开发更方便和统一。包括服务发布相关的接口声明注解、功能权限校验注解,服务消费相关的客户端声明注解、熔断Fallback注解,服务实现相关的异常、日志SDK以及持久化相关的Mybatis、JPA 等内容。


集成发布期-微服务平台关键能力支撑



集成发布这块,微服务平台非常方便的与普元DevOps产品结合,使用DevOps中的持续集成、持续发布能力,支持微服务应用的一键部署。


  • 持续集成:对微服务平台开发的微服务,支持图形化定义持续集成,并提供丰富的Maven编译、代码安全扫描、单元测试、上传Nexus仓库等能力;针对已经定义好的构建定义,提供多种触发机制:定时执行、代码提交触发、手工执行等。


  • 持续发布:通过DevOps提供的发布流水线,可以快速定义不同环境(开发环境、测试环境、预发环境、生产环境)下的流水线,快速将微服务一键发布到不同的目标资源上(物理机、虚拟机、容器云)。


运行期-微服务平台关键能力支撑



运行期,主要提供4方面能力:


  1. 支持No JEE、JEE环境

    微服务应用支持FatJar与传统WAR两种模式;基于FatJar是以独立进程方式运行,WAR支持部署在传统应用服务器之上;


  2. 提供高可靠、高性能组件

    平台提供高可靠平台组件,主要包括:API网关、注册中心、配置中心、日志中心、应用监控中心、断路器监控中心;

    所有平台组件均提供高可靠的部署方式,避免存在单点;除了API网关外,其它组件的下线均不影响业务的运行;

    平台组件在高性能方面做了可靠验证,其中基于API网关的技术已经在某客户实现了1亿次/天的业务交易量(和淘宝在一个调用量级);


  3. 开发的技术架构体系

    全面拥抱支持Spring Boot体系;同时兼容EOS7.6版本的迁移升级;


  4. 适配底层多种基础设施

    微服务应用支持部署多种基础设施:物理机、虚拟机、容器、各种IaaS平台、Caas容器云平台等。


管控期-微服务平台关键能力支撑



管控期,主要包括微服务管理、微服务监控两部分能力。


  1. 微服务管理

    主要提供域管理、系统管理、应用管理、服务管理、配置管理、API管理,上面这些内容形成了软件资产化的管理能力;

    同时提供针对业务应用的配置管理、网关路由管理、用户权限管理等;


  2. 微服务监控

    提供系统拓扑、链路跟踪、健康检查、熔断限流、API调用、流量控制、黑白名单等;


四、落地实践案例及产品展示


截止目前,我们已经为邮储银行、国开行、中国人保寿险、太平洋保险、成都飞机工业、国家电力等大型客户,涉及到金融、保险、军工、能源等行业进行了平台的建设落地工作。



最后为大家展示微服务管理的部分界面:


微服务管理平台首页是一个DashBoard:主要概览的展示了系统数、应用数、服务数;给出了网关的两个统计图,一个是近12小时网关调用量,另外一个是近1小时网关调用Top5。


界面展示:微服务管理平台-概览


系统管理界面,主要展示了一个域下所有的系统。


界面展示:微服务管理平台-系统管理


应用管理,给出了一个具体系统下面所有的应用,包含应用的状态等基本信息。


界面展示:微服务管理平台-应用管理


针对应用提供应用分组能力,方便应用的蓝绿发布。


界面展示:微服务管理平台-应用概览


针对应用的分组,可以设置应用的路由策略。


界面展示:微服务管理平台-应用路由


查看当前应用对外提供哪些服务。


界面展示:微服务管理平台-服务提供


查看当前应用消费了哪些其它应用下的服务。


界面展示:微服务管理平台-服务消费


精选提问:


问1:目前普元已经研发出三个产品:支持开发运维一体化的DevOps 5.2产品、基于Docker+K8s的容器云5.0产品、基于Spring Cloud体系的微服务平台EOS Platform 8.0。请问,这三个是互补关系,还是平行关系?


目前三个产品之间是互补的关系,但我们在三个产品规划期是作为整体的PaaS方案来对待,保证了三个产品既可以独立运行,又可以相互配合使用,避免了三者之间的紧耦合。举例来讲基于微服务平台EOS Platform 8.0开发的微服务可以快速通过DevOps产品实现持续集成和持续发布的能力。


问2:我想知道:api、网关,具体是基于spring boot 和什么实现的;网关路由、监控、熔断,这些都是怎么做的?


答:网关是基于SpringBoot+自研实现的,没有使用目前开源的技术;监控、熔断的技术实现可以参考上面分享的内容,有专门的技术选型支撑的。


问3:元数据怎么管理的?


答:在微服务体系下,针对整个元数据的管理,可以看做是服务治理;目前在普元提供的微服务管理平台上,已经提供了从域、系统、应用、实例分组、实例、API多个维度的服务资产的管理能力;可以方便实现对整个企业服务资产的元数据管理。


问4:灰度发布是怎么实现的呢?部署多套应用的话,流控/熔断是基于单台还是全局的呢?


答:针对灰度发布,平台提供了应用路由的能力,可以指定请求的路由到那些实例分组上;部署多套应用,全局的流控是在网关层面可以配置;如果需要在单台上做流控,可以使用平台预留的扩展能力,二次开发实现。


问5:请问,服务中针对数据库层的操作,纯sql,mybatis还是jpa,哪一个方案更适合微服务?


答:这块可以结合团队的人员熟悉度自由选择,你提到的三种方式都没有任何问题的。



推荐阅读

DevOps平台中的自动化部署框架设计

DevOps平台实践落地之构建管理详解

DevOps驱动的人保微服务平台建设之路




关于作者:刘相,普元软件产品部副总兼SOA&云计算产品线总经理。十年IT行业经验,专注于企业软件平台,在SOA、分布式计算、企业架构设计等领域。先后主导公司EOS7、Portal、云PAAS平台、云流程平台、BPM等系列产品的开发和设计工作。著有国内首本解析SpringBatch的中文原创图书《SpringBatch批处理框架》。


关于EAWorld:微服务,DevOps,数据治理,移动架构原创技术分享



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存