国产微服务基础架构关键技术研究与设计

2022-07-18 00:07王玉琳曹小静李智深周春云
中国信息化 2022年6期
关键词:应用服务龙芯基础架构

王玉琳 曹小静 李智深 周春云

近几年来,随着信息技术的高速发展及现代化信息处理环境的复杂化,传统信息系统变得越来越庞大,软硬件之间、服务模块间、前后台之间紧耦合严重,导致信息系统扩展性能差、重构能力弱、升级改造困难,新功能开发或修改更加耗时。传统的RPC架构或SOA架构已无法满足各级各类信息系统适应多样化任务、快速更新迭代的需求。在信息系统需求升级的大背景下,开展国产微服务架构关键技术研究已迫在眉睫,力求解决国产信息系统受国产基础硬件平台制约、运行效率低、交付扩展及迭代能力不足等问题。

国产微服务基础架构技术是坚持国产自主可控发展路线,将国产信息系统中的不同模块以微服务方式进行拆分,每个微服务是独立内聚的业务逻辑,能够单独开发、调试、部署、运行及治理,每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相协作。通过微服务与Docker技术相结合,将国产信息系统中的微服务编译、部署、调测及升级演化成全自动化的工程,推动国产微服务基础架构的快速发展。国产微服务基础架构关键技术研究主要包含基于硬件混合架构容器技术、容器化微服务开发标准等方面,并基于硬件平台构建微服务原型系统进行关键技术验证。

国产微服务基础架构关键技术研究采用“3层2域”,包括服务基础环境层、微服务支撑层、剖分方法与典型应用层,以及技术研究实施体系域与标准规范保障体系域,研究总体架构如图1所示。

服務基础环境层采用容器技术实现国产龙芯、飞腾等混合硬件架构资源的虚拟和池化,以容器形式提供混合架构的微服务运行时环境。

服务支撑层主要由数据层、运行层、服务层组成。数据层为微服务访问、交换、配置、运行提供数据共享同步、网内融合与协同调度;运行层为微服务提供容器编排管理框架,支持容器管理与协同调度,具备迭代增量、快速交付能力;服务层以微服务为对象,提供动态协同交互能力,支持集中式、自组织协同等服务模式,并提供服务制作、注册管理、编排组合应用能力。

剖分方法与典型应用层主要包括由剖分机制、剖分模型、剖分方法与剖分评价等,并结合典型应用进行关键技术验证。

(一)基于混合硬件架构的容器技术

通过在国产龙芯及飞腾平台移植、适配Docker引擎,并对Docker存储驱动进行优化,提供微服务运行时环境。在Docker移植适配方面,首先,在国产龙芯、飞腾等国产平台上优化GO编译器;其次,选择稳定的Docker发行版,保证各国产平台上接口的一致性;最后,移植Containerd、runC等组件,修改与平台架构相关的Golang代码、结构体定义和常量定义等,修复无法解析信号SIGEMT和部分龙芯、飞腾架构兼容的问题,优化Docker运行效率。在存储驱动优化方面,通过优化地址映射、I/O拦截和缓存管理等机制解决国产硬件平台上现有存储驱动存在写时复制操作粗粒度较大、冗余页缓存、I/O性能较低等问题。首先,为了以较低开销支持细粒度的写时复制操作,地址映射机制采用两级映射策略来支持两种不同的虚拟块大小,并针对不同的写请求采用按需分配的块分配机制,以实现高效的写时复制操作;其次,为了有效地减少冗余I/O请求,冗余I/ O拦截提供了一个轻量级的拦截机制,可以准确地检测冗余I/O请求,并且支持从其它容器缓存而不是硬盘中读取数据;最后,基于有效的缓存监控方法和回收策略,缓存管理机制可以显著地减少缓存中的无用重复数据,进而达到提升缓存效率的目的。

(二)结合容器技术的微服务开发规范

通过研究容器运行机理与微服务特性,形成容器化微服务开发规范,支持两者良好融合,实现微服务运维的一站式自动化,开发规范如下:

1.微服务原则:职能单一、低耦合与高内聚、前后端分离、无状态服务。

2.异常退出机制:服务提供异常退出机制,当服务启动失败或异常时能够正常退出。

3.长和短连接机制:应用服务采用短连接访问机制,特定情况下需要保持长连接时,应用服务应具备重连机制。

4.服务与客户端IP解耦:应用服务无法获取到客户端请求的源IP,不支持应用服务对客户端IP进行检测。

5.服务与本地IP解耦:应用服务对外IP和本地IP代表不同的含义,不支持应用服务将对外IP和本地IP进行一致性检测。

6.服务主程序前台运行,不能以守护进程方式运行:应用服务主程序需要前台运行,如果后台运行则在容器启动完成该程序后,认为该程序执行结束,容器将立即退出。

基于国产微服务基础架构关键技术研究成果,设计并构建微服务原型系统,系统由管理、计算、存储等三类节点组成,部署拓扑如图2所示。

管理节点是系统的控制中心,负责管理和控制,接收用户控制指令并负责具体执行过程。管理节点采用集群式(至少3个节点)设计,避免单点故障,确保系统自身稳定性。计算节点是执行任务的负载节点,负责执行管理节点分发的任务(以容器形式),并监控容器的运行状态。存储节点为容器提供存储空间,支持本地、共享等存储方式,存储节点为可选。计算节点可替代存储节点,使用自带硬盘提供存储空间。管理节点之上也可以部署计算组件,既承担管理职责又充当计算节点的角色,实现管理节点资源最大化利用。

基于四台龙芯服务器(CPU:龙芯3A3000处理器、双路、8核,内存:16GB,磁盘:1TB)和中标麒麟服务器操作系统V5.0采用“3管理节点+4计算节点”部署模式构建的微服务原型系统,采用Iperf工具测试跨计算节点间容器网络质量情况,通过300组测试数据分析,虚拟化网络传输速率折损率为1.23%,具体如图3所示。

另外,使用Stress压力测试工具分别将管理节点CPU负载达至20%、40%、60%、80%、90%,进行30个高负载的200MCPU、200M内存的测试容器创建、删除操作,微服务原型系统运行正常。

通过研究于国产微服务基础架构关键技术,设计微服务原型系统,有效支撑国产信息系统的构建。一方面在使得国产信息系统在复杂度可控的前提下,将系统的各个微服务分散运行于国产基础硬件平台之上,通过集群化思维可快速扩充信息系统所依赖的基础硬件平台,提升信息系统的运行效率;另一方面使得国产信息系统具有良好的快速交付、升级扩展、迭代重构、容错恢复以及自主可控等特性,保障国产信息系统的安全、可靠运行,满足国产信息系统任务多样化和快速更新迭代的需求。

作者单位:王玉琳、曹小静、周春云 扬州万方科技股份有限公司李智深 某部驻镇江军事代表室

猜你喜欢
应用服务龙芯基础架构
加快推进航天强国建设 提升卫星应用服务能力——两会代表委员为航天发展建言献策
全球卫星互联网应用服务及我国的发展策略
我国云IT基础架构投资保持高速增长
IDC发布云计算IT基础架构Q4跟踪报告
革新数据中心及边缘基础架构
红帽推出业内首个生产就绪的开源超融合基础架构
“云水谣”推广平台的设计与实现
微软推出整合版Azure应用服务
“龙芯1号”:电脑中国“芯”
“龙芯1号”:电脑中国“芯”