一种面向容器服务的软件生成系统及方法技术方案

技术编号:27840672 阅读:28 留言:0更新日期:2021-03-30 12:25
本发明专利技术公开了一种面向容器服务的软件生成系统及其方法,模板管理模块基于统一格式的模板文件,对容器服务所依赖的服务资源、数据资源以及软件镜像资源进行规范化描述,并依据服务之间、服务与数据之间的依赖关系建立模板间的关联关系;软件构建模块选择镜像模板及软件运行环境、配置资源构建软件镜像,并对服务模板、数据模板、软件镜像进行封装和压缩,生成统一格式的软件包;模拟验证模块在软件上线前对软件依赖资源绑定、软件部署、软件运行这些过程进行模拟验证,将生成的软件包导出。本发明专利技术能够保证软件在真实环境下的快速集成、高效部署、稳定运行。稳定运行。稳定运行。

【技术实现步骤摘要】
一种面向容器服务的软件生成系统及方法


[0001]本专利技术涉及计算机信息
,具体涉及一种面向容器服务的软件生成方法及系统。

技术介绍

[0002]在微服务时代,一个应用通常被拆分成多个功能单一、能够独立部署与访问的逻辑单元,导致服务的数量急剧增多,对服务配置及所需依赖资源的管理也变得越来越复杂。容器化技术提供了良好的资源隔离能力,具有环境标准化、版本控制、跨平台性等优点,让资源能够被更高效地利用。容器服务是微服务在容器化技术中应用的体现,容器化技术的出现在一定程度上为微服务提供了持续部署、独立运行以及集中管理的能力。然而传统的容器服务虽然能够基于镜像进行独立的部署和运行,但是传统容器服务只包含程序本身及其环境依赖,缺少对服务间、服务与数据等依赖关系的描述,无法有效地降低容器服务在部署过程中的复杂度。现如今,容器服务的数量急剧增长,服务间的差异性不断扩大,对容器服务在便捷部署和快速集成方面提出了更高的要求。针对众多的容器服务,提供完整的依赖资源、配置和运行环境的封装,并在服务上线前进行模拟运行验证,是解决容器服务部署效率低下、集成过程复杂的问题的有效途径。

技术实现思路

[0003]本专利技术的目的在于提出一种面向容器服务的软件生成方法及系统,对容器服务的依赖资源、软件配置、运行环境等进行统一封装,生成规范化的容器服务软件包,并为该软件包提供模拟验证的能力。
[0004]实现本专利技术目的的技术解决方案为:一种面向容器服务的软件生成系统,包括:模板管理模块,用于基于统一格式的模板文件,包括服务模板、数据模板和镜像模板,对容器服务所依赖的服务资源、数据资源以及软件镜像资源进行规范化描述,并依据服务之间、服务与数据之间的依赖关系建立模板间的关联,这种关联关系可用于软件的编排,以支撑后续软件的运行验证及软件包的生成。
[0005]软件构建模块,用于根据业务需求,选择相应的镜像模板及软件运行环境、配置资源构建软件镜像,然后依据模板间的关联关系将软件镜像与服务资源、数据资源绑定,并对服务模板、数据模板、软件镜像进行封装和压缩,生成统一格式的软件包。
[0006]模拟验证模块,用于提供离线的软件模拟运行环境,在软件上线前对软件依赖资源绑定、软件部署、软件运行等过程进行模拟验证,确保软件可以正常启动运行,软件模拟验证完成后,将生成的软件包导出用于真实环境下的部署运行。
[0007]所述模板管理模块包括服务模板管理子模块、数据模板管理子模块、镜像模板管理子模块三部分,其中:服务模板管理子模块用于根据统一的服务模板规范,对服务名称、开发单位、服务描述、服务依赖等信息进行描述,生成JSON格式的模板文件,并进行服务模板管理。
[0008]数据模板管理子模块用于根据统一的数据模板规范,对多种类型的数据资源(如DFS,MySQL等)的连接配置、存储路径等信息进行描述,生成JSON格式的模板文件,并对数据资源模板进行统一管理。
[0009]镜像模板管理子模块用于为容器化软件服务构建标准的Dockerfile镜像模板文件,通过自定义编辑指令的方式指明软件实体,并设置软件运行环境和配置参数,生成用于构建镜像的镜像模板。镜像模板生成过程中,需要对模板内容进行测试验证,保证镜像模板的可用性,以支撑后续软件镜像的构建。
[0010]所述软件构建模块包括镜像构建子模块、资源绑定子模块、软件封装子模块三部分,其中:镜像构建子模块用于对软件镜像的构建,包括远程模式、本地模式、自定义模式三种方式。所述远程模式即将已制作完成的符合规范的镜像远程上传至服务器。所述本地模式,即加载服务器本地镜像,主要为了解决由于网络带宽限制导致镜像上传较慢的问题,实现体积较大的镜像的快速加载。所述自定义模式用于使用自定义Dockerfile镜像模板来构建镜像,即将软件实体、依赖资源、服务配置、运行环境通过镜像模板构建为一个软件镜像,具有较强的灵活性。
[0011]资源绑定子模块用于在软件镜像构建完成后,根据模板之间的关联关系,进行软件镜像与服务资源、数据资源的绑定,建立软件依赖模型。
[0012]软件封装子模块用于将上述的软件镜像及绑定的服务模板、数据模板进行封装和压缩,形成统一格式的软件并集中管理,提供软件详细信息的可视化展示,以及软件导出功能。
[0013]所述模拟验证模块包括软件依赖验证子模块、软件部署验证子模块、软件连通性验证子模块三部分,其中:软件依赖验证子模块用于依赖服务资源模拟验证、依赖数据资源模拟验证和软件配置模拟验证。所述依赖服务资源模拟验证,通过将依赖服务资源注册到模拟验证环境中,并模拟运行环境条件下软件对依赖服务资源的使用方式,如以环境变量方式注入服务资源地址,用于服务对服务依赖信息的获取,从而达到对依赖服务资源的正确性验证。所述依赖数据资源模拟验证,是通过将软件依赖的数据注册到模拟验证环境中,模拟软件对数据资源的使用方式,如通过使用本地文件系统挂载方式模拟运行环境条件下DFS挂载,从而达到对依赖数据资源的正确性验证。所述软件配置模拟验证,通过将软件配置注册到模拟验证环境中,验证软件配置是否可正确加载。
[0014]软件部署验证子模块,用于提供资源关联功能。通过将软件和本地模拟的各类服务资源、数据资源、计算资源、配置资源进行编排组装,根据业务需求调整部署参数配置,并根据服务之间的依赖关系将软件与其依赖的软件实例进行自动绑定,模拟软件在真实环境中部署方案生成过程。软件的服务资源包括服务与服务之间的依赖关系及调用关系;数据资源是服务对数据库的操作以及存储数据的读取;计算资源包括主机节点资源信息以及服务分配的CPU、内存等资源信息;配置资源包括服务的配置参数、测试脚本等。
[0015]软件连通性验证子模块用于软件的连通性测试与软件运行管控。所述软件的连通性测试用于确保软件可正常启动运行。所述软件运行管控用于软件实例运行时的管理与控制,包括软件的运行状态、软件实例的启停、软件详细信息的可视化展示。
[0016]一种面向容器服务的软件生成方法,基于上述系统生成面向容器服务的软件,具体包括如下步骤:(1)模板管理基于统一格式的模板文件,包括服务模板、数据模板和镜像模板,对容器服务所依赖的服务资源、数据资源以及软件镜像资源进行规范化描述,并依据服务之间、服务与数据之间的依赖关系建立模板间的关联,这种关联关系可用于软件的编排,以支撑后续软件的运行验证及软件包的生成。
[0017](2)软件构建根据业务需求,选择相应的镜像模板及软件运行环境、配置资源构建软件镜像,然后依据模板间的关联关系将软件镜像与服务资源、数据资源绑定,并对服务模板、数据模板、软件镜像进行封装和压缩,生成统一格式的软件包。
[0018](3)模拟验证在软件上线前对软件依赖资源绑定、软件部署、软件运行等过程进行模拟验证,确保软件可以正常启动运行,软件模拟验证完成后,将生成的软件包导出用于真实环境下的部署运行。
[0019]所述模板管理包括服务模板管理、数据模板管理、镜像模板管理三部分,其中:服务模板管理根据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向容器服务的软件生成系统,其特征在于,包括:模板管理模块,用于基于统一格式的模板文件,包括服务模板、数据模板和镜像模板,对容器服务所依赖的服务资源、数据资源以及软件镜像资源进行规范化描述,并依据服务之间、服务与数据之间的依赖关系建立模板间的关联关系;软件构建模块,用于根据业务需求,选择相应的镜像模板及软件运行环境、配置资源构建软件镜像,依据服务与数据之间的依赖关系将软件镜像与服务资源、数据资源绑定,并对服务模板、数据模板、软件镜像进行封装和压缩,生成统一格式的软件包;模拟验证模块,用于提供离线的软件模拟运行环境,在软件上线前对软件依赖资源绑定、软件部署、软件运行这些过程进行模拟验证,软件模拟验证完成后,将生成的软件包导出用于真实环境下的部署运行。2.根据权利要求1所述的面向容器服务的软件生成系统,其特征在于,所述模板管理模块包括服务模板管理子模块、数据模板管理子模块、镜像模板管理子模块三部分,其中:服务模板管理子模块用于根据统一的服务模板规范,对服务名称、开发单位、服务描述、服务依赖这些信息进行描述,生成JSON格式的模板文件,并进行服务模板管理;数据模板管理子模块用于根据统一的数据模板规范,对数据资源的连接配置、存储路径这些信息进行描述,生成JSON格式的模板文件,并对数据资源模板进行统一管理;镜像模板管理子模块用于为容器化软件服务构建Dockerfile镜像模板文件,通过自定义编辑指令的方式指明软件实体,设置软件运行环境和配置参数,生成用于构建镜像的镜像模板,并在镜像模板生成过程中,对模板内容进行测试验证,保证镜像模板的可用性,以支撑后续软件镜像的构建。3.根据权利要求1所述的面向容器服务的软件生成系统,其特征在于,所述软件构建模块包括镜像构建子模块、资源绑定子模块、软件封装子模块三部分,其中:镜像构建子模块用于软件镜像的构建,包括远程模式、本地模式和自定义模式三种方式,所述远程模式即将已制作完成的符合规范的镜像远程上传至服务器,所述本地模式即加载服务器本地镜像,所述自定义模式即使用自定义镜像模板来构建镜像,将软件实体、软件运行环境、配置资源通过镜像模板构建为一个软件镜像;资源绑定子模块用于依据服务与数据之间的依赖关系,进行软件镜像与服务资源、数据资源的绑定,建立软件依赖模型;软件封装子模块用于对软件镜像及绑定的服务模板、数据模板进行封装和压缩,形成统一格式的软件,并提供软件详细信息的可视化展示,以及软件导出功能。4.根据权利要求1所述的面向容器服务的软件生成系统,其特征在于,所述模拟验证模块包括软件依赖验证子模块、软件部署验证子模块、软件连通性验证子模块三部分,其中:软件依赖验证子模块用于依赖服务资源模拟验证、依赖数据资源模拟验证和软件配置模拟验证,所述依赖服务资源模拟验证,通过将依赖服务资源注册到模拟验证环境中,模拟软件对依赖服务资源的使用方式,验证依赖服务资源的正确性;所述依赖数据资源模拟验证,通过将软件依赖的数据注册到模拟验证环境中,模拟软件对数据资源的使用方式,验证依赖数据资源的正确性;所述软件配置模拟验证,通过将软件配置注册到模拟验证环境中,验证软件配置是否可正确加载;软件部署验证子模块用于提供资源关联功能,将软件和本地模拟的各类服务资源、数
据资源、计算资源、配置资源编排组装,根据业务需求调整部署参数配置,并根据服务之间的依赖关系将软件与其依赖的软件实例进行自动绑定,模拟软件在真实环境中部署方案生成过程,其中服务资源包括服务与服务之间的依赖关系及调用关系;数据资源是数据库及存储数据;计算资源包括主机节点资源信息以及服务分配的CPU、内存这些资源信息;配置资源包括服务的配置参数、测试脚本;软件连通性验证子模块用于软件的连通性测试与软件运行管控,所述软件的连通性测试用于确保软件能够正常启动运行,所述软件运行管控用于软件实例运行时的管理与控制,包括软件的运行状态、软件实例的启停、软件详细信息的可视化展示。5.一种面向容器服务的软件生成方法,其特征在于,基于权利要求1

4任一项所述的系统生成面向容器服务的软件,具体包括如下步骤...

【专利技术属性】
技术研发人员:朱利鲁王马鑫苏圣凯
申请(专利权)人:中国科学院电子学研究所苏州研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1