伴随互联网、云计算、大数据等技术的快速发展,越来越多的企业在信息化之后,将企业上云和数字化提上日程。随之而来,软件架构的微服务方式重构、应用的自动化运维、容器化等强烈需求,催生出了众多的PaaS平台。
服务治理平台难点突显
同时,针对微服务,也涌现出了许多RPC框架和微服务治理平台,各个框架和平台都有各自的优势和自身独特的适应场景。
软件架构在微服务之前,各个服务通过RestFul接口或者RPC进行互联和调用,进行功能的服务化和解耦,诸多成熟的RPC框架被引入,例如:
用友云服务治理平台应势而生
用友云主要面向企业级应用,在TOB领域有独特的技术特色和要求,且用友云下的微服务治理需要和自身的DevOps平台、容器云平台及数据平台进行协同和能力聚合。在借鉴和吸收其他产品的优势的同时,用友云服务治理平台团队针对自身产品需要做了完善和适配,充分的和用友云开发者中心、数据平台、租户中心、用户中心等结合,推出了更适合自身的用友云服务治理平台。
用友云服务治理平台是用友云平台(iuap)基础平台服务(gPaaS)的一个核心能力。企业在向“互联化”方向转型的过程中,软件产品的开发需求变更越来越频繁,对技术中台要求越来越强烈,统一的gPaaS基础能力逐渐被认可,越来越多的企业期望有一个基础平台去支撑企业快速增长的业务。gPaaS基础平台是iuap产品家族的一部分,提供了DevOps能力、容器云能力、服务治理能力、微服务编排能力。gPaaS基础平台简化了多种基础设施带来的复杂性,打通了开发运维一体化流程,提供传统服务架构向微服务架构转变及服务治理的最佳方法论和工具集,支持微服务可视化编排。
用友云服务治理平台具有以下特色:
用友云服务治理平台提供RPC调用框架、异步调用框架、服务注册发现、配置中心、元数据、一致性框架等基础中间件,并预留了插件机制的扩展,方便开发者使用和集成;也从中间件容器层面提供类隔离和组件加载机制,尽量避免和业务应用引用的三方组件版本冲突;提供统一的门户入口,可视化的管理和查看远程服务的接口信息、调用链路日志、统计信息、评价信息,动态的控制具体接口和方法的权限和流量限制;提供限流、链路追踪等组件保证服务的稳定和可用性。
同时,在外围还支持和服务网关API Link的对接,支持使用IDE进行微服务的编排和一键发布。
微服务SDK: 各个组件通过核心的插件机制和类加载机制整合在一起,形成整体对外提供服务,具有两大鲜明特性:1:支持SPI方式扩展的插件机制,灵活组合,易于扩展;2:基于ClassLoder的类隔离机制,组件分离,避免冲突。通过服务治理平台的SDK,业务方可以简单快速的集成微服务的能力到业务工程,达到技术架构的微服务化的目的。
后端支撑:后端支撑较为核心的包括注册中心、元数据、控制台和链路计算、监控、配置中心、权限管控等。
解决微服务落地难题
用友云服务治理平台的几大核心功能包含基础的RPC框架、注册中心元数据、配置中心、链路追踪、异步和一致性、限流熔断等。
服务治理平台在实现和落地微服务的几个核心功能的过程中,也遇到一些难点,这也是众多厂家和平台共同的难点。针对这些关键点,用友云提出了适合自身场景的多种合理的解决方案并实现:
一,类隔离机制和插件机制:
JAVA 版的SDK,在和各种业务应用整合的同时,会遇到很多三方组件版本冲突的问题,给业务整合方带来了困扰。用友云服务治理平台自3.5 版本开始对其进行了优化,引入了类隔离机制,推出了冰山(iceberg)思想,内部自身加载其依赖的三方组件,不对外部的业务三方引用造成冲突,大大简化了集成的难度。
二,动态配置:
业务应用的微服务化拆分,使得业务工程的配置文件更加繁多和分离,微服务的权限和流量的实时控制,也需要动态的管理各项配置。所以配置中心的后端服务和前端SDK体现出更重要的作用。
异步调用框架提供可靠消息组件,完善了队列的权限认证体系,简化了异步调用的开发方式,业务开发只需要简单配置和注解,即可完成异步操作。同时,异步事务控制台可以在云端可视化的下发命令,提供错误事务的重试机制。
服务治理平台经过长时间的发展和磨练,已经在分布式服务调用、运维管控和服务治理、生命周期管理和统一控制台、数字化监控和运营、开发支持扩展和兼容等等大方面有沉淀和输出。我们也和其他成熟的产品及框架进行对比,吸收和优化,构建和完善自身的微服务能力体系。
用友云服务治理平台的发展并非原生和独立的。服务治理平台、DevOps平台、容器云平台合力,成为各个云产品和服务成功上云的三把尖刀,为其底层的技术支撑提供了强有力的保障。相信三把尖刀也会在技术中台中体现出越来越重要的价值。