引言
传统技术架构中,软件系统都是集中式的,俗称单机系统,仅通过升级硬件就能满足不断增长的性能需求。然而随着互联网的飞速发展,高吞吐、高并发、低延迟逐渐变为服务应用建设目标,单凭硬件升级已无能为力,分布式系统 “应需求而生”;分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统,主要由应用/服务层、中间件层、操作系统、数据库层、硬件设备层组成。
随着分布式系统的深度使用,逐渐解决了语言异同、性能等问题。但也带来了很多新的问题,其中,中间件的应用问题尤为突出。
文章图片
中间件概念及使用问题
中间件是一种应用于软件系统的基础软件,位于应用与操作系统、数据库之间,为上层应用软件提供消息、缓存等能力的支撑。中间件解决了异构网络环境下软件互联和互操作等共性问题,为应用软件间共享资源提供了标准组件。
但随着分布式中间件的使用,更多的问题暴露出来:
1、技术服务框架多样性
大型企业服务,多覆盖人、财、物、产、供、销等多个领域应用,每个领域都有自己服务框架,服务数量多,导致应用沉重,消耗运行资源。同时,运维复杂度会因为服务变多而变得很复杂。
2、基础组件不统一
目前网络上,开源的基础组件数不胜数,针对不同的领域的应用服务,都有各自使用的中间件组件,数量多,版本混乱,运行状态透明度低,管理难度大。
3、三方组件使用问题
开源及第三方组件已经进入了几乎所有的软件领域,所有的软件公司和开发者几乎都在使用开源及第三方组件。然而,开发者安全技能短板明显,热门项目成漏洞重灾区,攻击者可以利用未打补丁的组件对重要的基础设施组织进行攻击。
4、配置分散且冗余
当系统从一个单体应用,被拆分成分布式系统上一个个服务节点后,配置文件跟随服务进行了拆分,单个服务有单独配置文件,不便于管理,而且还存在冗余配置信息。
5、不同环境、集群配置管理
同一应用服务在不同的环境(开发、测试、预发、生产),不同的集群经常需要有不同的配置,所以需要有完善的环境、集群配置管理。
用友云中间件服务(YMS)
为了解决中间件的使用问题,用友推出用友云中间件服务(Yon Middleware Service),简称YMS。
它提供灵活的制品打包、统一的中间件配置管理以及完整的操作模型,主要是由YMS控制台和YMS框架两部分构成。
文章图片
YMS框架
YMS框架基于spring boot/cloud的微服务开发框架自研,提供统一的中间件和依赖管理,每个中间件均是可插拔的组件。开发者在集成了YMS框架后,只需引入中间件对应的 starter,YMS即会自动导入所需的依赖并完成必要的配置,同时也解决了后续的健康检查、运维监控等问题,开发者能够更加专注于业务逻辑,有效节约了开发时间及后期维护的成本。
YMS控制台
定位为YMS分布式中间件统一管控配置、集中管理微服务和分布式事务的统一控制台,轻量化启动,是运维和实施人员的后台操作工具。主要负责YMS中间件及基础技术组件的配置维护、针对应用的配置文件及配置项的规划、管理、服务注册及分布式事务运行时数据的监控展示等。
YMS特色能力
统一基础技术组件
统一各业务应用技术组件,目前已包含数据源、Redis、MQ、MongoDB、日志等Java系列基础组件包, 提供各种默认配置,引入依赖无需额外部署,只需引入所需的 Starter 就能直接使用所需的技术组件。
统一易用的编程接口
每一个YMS中间件都是独立可插拔的组件,对集成的YMS中间件提供统一易用的编程接口,节约开发时间,和后期维护的成本。
统一技术栈
提供统一的YMS 中间件运行环境,通过统一的启动引导方式和模块的打包、发布方式,快速开展服务应用的开发工作。
统一开源及第三方组件
构建全流程的开源治理体系,统一开源及第三方组件,减少开源及第三方组件使用中的安全风险,保障对开源及第三方组件的使用合理合规。
兼容开源生态
可与 Spring Boot、Spring、Spring cloud 工程无缝集成,降低用户的迁移成本。
适配商业中间件,提升服务兼容性
适配商业服务框架,与EDAS等主流框架无缝对接。同时,提供主流商业数据库、国产化数据库及 PaaS层支持,致使上层应用使用YMS框架时,无需修改代码,直接应用。
统一配置管理
YMS控制台提供可视化的配置界面,支持各类基础组件配置协议的生成、发布,解绑业务应用和真实连接之间的关系。
配置修改实时生效
用户在控制台修改完配置并发布后,客户端能实时接收到最新的配置,不需要重启服务,完成配置更新。
配置基线管理
所有的配置发布都有版本概念,不仅支持配置的回滚,而且支持配置对比,实时把控配置状态。
【技术平台&
应用开发专题月 | 企业上云利器-YMS(Yon Middleware Service)】配置权限管理
YMS控制具有完善的权限管理机制,不同人群具有不同模块的浏览、编辑权限,从而减少人为失误。
配置迁移
配置通过控制台可导入导出,可实现跨环境环境迁移,快速完成不同环境的服务应用配置。
多维度应用度量
提供多种度量维度实时监测应用程序的性能,能帮助更好的了解当前应用程序或者服务在线上的各种性能状态。
总结
目前,用友内部所有业务服务,均已通过YMS实现了技术栈的统一管理,YMS不仅提供了完整的技术栈,让开发者可以更快速、敏捷地开发应用程序,更提供了统一的基础技术组件,让开发过程更具规范化。此外,控制台提供统一的配置信息的维护入口,通过可视化的界面,直观的进行配置信息的修改,动态进行更新,更高效的支撑起服务应用。
未来,YMS将在保证稳定的基础上,不断加强各类商业中间件的适配能力,统一行业软件上云标准,为业务服务提供坚实有力的上云及云上迁移利器。
推荐阅读
- Java毕业设计|基于Java+SpringMvc+vue+element实现博物馆平台系统
- 技术平台&应用开发专题月|如何保证业务服务稳定运行—用友云原生技术平台高可用能力介绍
- 技术平台&应用开发专题月 | 一文搞懂全链路监控系统(下)
- 阿里云数据库开源重磅发布(PolarDB三节点高可用的功能特性和关键技术)
- 面经|美团后端一二面c++
- 网易数帆Curve加入PolarDB开源数据库社区
- java|通过java将Excel表格导入数据到数据库
- spring|2020年Spring全家桶面试题大全含答案共79题
- Python学习笔记|Python连接MySQL数据库并读取显示数据