一种基于Docker的组件封装和应用构建的方法及系统
文献发布时间:2023-06-19 09:27:35
技术领域
本发明公开一种基于Docker的组件封装和应用构建的方法及系统,涉及容器技术领域。
背景技术
传统的应用软件采用分散式建设,导致运维节点分散,运行过程中产生的数据质量低下,难以形成数据资产。
同时,各领域的业务是都是灵活多变的,某些应用系统往往要根据相关政策、规范要灵活调整,且项目规划对于各业务的层级化管理需求也需要进行支持。
故需要对组件进行精细化的分类,在组件开发阶段的提前规划和介入,为使组件具备灵活配置、动态组合的特性,为使组件间关系的灵活配置成为现成,构建一种灵活、快速、复用化程度更高的应用动态构建体系,故发明一种基于Docker的组件封装和应用构建的方法及系统。
发明内容
本发明针对现有技术的问题,提供一种基于Docker的组件封装和应用构建的方法及系统,所采用的技术方案为:一种基于Docker的组件封装和应用构建的方法,所述的方法具体步骤如下:
S1将组件定义为微服务架构的单一功能的Docker镜像文件;
S2构件镜像;
S3定义注册组件的基本信息;
S4利用注册组件拼装实现应用构建。
所述S1将组件定义为功能单一的、能够单独封装复用的、使用微服务架构技术进行开发的Docker镜像文件,具体步骤包括:
S101使用SpringCloud架构对组件内部程序统一进行开发;
S102从环境变量中读取组件内部程序配置文件;
S103从环境变量中获取组件内部程序所使用的外部接口地址和外部链接地址;
S104组件内部程序集成NACOS。
所述S2使用上传镜像tar包、模板构件或Dockerfile构建三种方式构建镜像。
所述S3定义注册组件的基本信息的基本步骤包括:
S301判断注册组件的类型;
S302将复合型组件通过RestFul接口方式对外提供服务;
S312将构建型组件用于组件拼接使用。
所述S4利用注册组件拼装实现应用构建的具体步骤包括:
S401通过可视化界面操作使用构建型组件及复用型组件完成应用拼装;
S402填入应用的相关信息和组件环境变量的值;
S403创建一个新的应用;
S404根据可视化界面上组件的依赖关系生成每个组件的YAML文件;
S405通过kubectlcreate-fyaml文件的方式完成每个组件容器服务的构建,向每个组件注入相应的环境变量,发布至容器集群进行部署运行;
S406将拼装生成的应用进行发布。
一种基于Docker的组件封装和应用构建的系统,所述的系统包括组件定义模块、镜像构建模块、信息填写模块和组件拼装模块:
组件定义模块:将组件定义为微服务架构的单一功能的Docker镜像文件;
镜像构建模块:构件镜像;
信息填写模块:定义注册组件的基本信息;
组件拼装模块:利用注册组件拼装实现应用构建。
所述组件定义模块将组件定义为功能单一的、能够单独封装复用的、使用微服务架构技术进行开发的Docker镜像文件,组件定义模块具体包括程序开发模块、配置读取模块、外部沟通模块和内部集成模块:
程序开发模块:使用SpringCloud架构对组件内部程序统一进行开发;
配置读取模块:从环境变量中读取组件内部程序配置文件;
外部沟通模块:从环境变量中获取组件内部程序所使用的外部接口地址和外部链接地址;
内部集成模块:组件内部程序集成NACOS。
所述镜像构建模块使用上传镜像tar包、模板构件或Dockerfile构建三种方式构建镜像。
所述信息填写模块具体包括组件判断模块、第一组件模块和第二组件模块:
组件判断模块:判断注册组件的类型;
第一组件模块:将复合型组件通过RestFul接口方式对外提供服务;
第二组件模块:将构建型组件用于组件拼接使用。
所述组件拼装模块具体包括拼装操作模块、变量输入模块、应用创建模块、文件生成模块、部署运行模块和应用发布模块:
拼装操作模块:通过可视化界面操作使用构建型组件及复用型组件完成应用拼装;
变量输入模块:填入应用的相关信息和组件环境变量的值;
应用创建模块:创建一个新的应用;
文件生成模块:根据可视化界面上组件的依赖关系生成每个组件的YAML文件;
部署运行模块:通过kubectlcreate-fyaml文件的方式完成每个组件容器服务的构建,向每个组件注入相应的环境变量,发布至容器集群进行部署运行;
应用发布模块:将拼装生成的应用进行发布。
本发明的有益效果为:本发明能够使组件间关系的灵活配置成为现成,构建了一种灵活、快速、复用化程度更高的应用动态构建体系,为传统应用软件无法解决的问题最终效果提供了解决方案,具有:
可实现根据用户的业务场景需要,针对常用的应用组件,定制专门的业务组件;
可实现组件在各类应用之间的复用;
可实现业务应用的快速搭建、快速上线;
可实现自动化部署、集中部署;
可实现降低应用运维、开发成本的优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明方法的流程图;图2是本发明系统的结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
实施例一:
一种基于Docker的组件封装和应用构建的方法,所述的方法具体步骤如下:
S1将组件定义为微服务架构的单一功能的Docker镜像文件;
S2构件镜像;
S3定义注册组件的基本信息;
S4利用注册组件拼装实现应用构建;
本发明方法能够解决传统应用软件无法满足各领域的业务是的灵活多变,无法适应根据相关政策、规范的灵活调整,且无法应对项目规划对于各业务的层级化管理需求也需要进行支持的问题,本发明方法使组件间关系的灵活配置成为现成,构建了一种灵活、快速、复用化程度更高的应用动态构建体系,为传统应用软件无法解决的问题最终效果提供了解决方案,
具有以下优点:
可实现根据用户的业务场景需要,针对常用的应用组件,定制专门的业务组件;
可实现组件在各类应用之间的复用;
可实现业务应用的快速搭建、快速上线;
可实现自动化部署、集中部署;
可实现降低应用运维、开发成本;
进一步的,所述S1将组件定义为功能单一的、能够单独封装复用的、使用微服务架构技术进行开发的Docker镜像文件,具体步骤包括:
S101使用SpringCloud架构对组件内部程序统一进行开发;
S102从环境变量中读取组件内部程序配置文件;
S103从环境变量中获取组件内部程序所使用的外部接口地址和外部链接地址;
S104组件内部程序集成NACOS;
同时开发的Docker镜像文件不支持纯前端程序;
进一步的,所述S2使用上传镜像tar包、模板构件或Dockerfile构建三种方式构建镜像;
上传镜像方式是指直接上传硬打包好的镜像tar包,以构建相应的镜像;模板构建方式是指在已有基础镜像的基础上,直接上传镜像war包构建相应的镜像;Dockerfile构建方式是指直接使用自己编写好的Dockerfile文件和对应的构建用文件附件,以构建相应的镜像;同时需要注意的是,为了维护所有容器服务的运行平稳,提高服务的运行效率,限制镜像tar包和文件最大不能超过500M;
进一步的,所述S3定义注册组件的基本信息的基本步骤包括:
S301判断注册组件的类型;
S302将复合型组件通过RestFul接口方式对外提供服务;
S312将构建型组件用于组件拼接使用;
组件注册时需要定义组件的基本信息,包括镜像url、版本号、所需容器的数量端口、映射关系、所需硬件资源的上下限等信息,首先按照S301判断注册组件的类型为复用型组件还是构建型组件,当判断为复用型组件时,该组件能够满足单个功能、服务等的复用,即按照S302通过RestFul接口方式对外提供服务。在复用型组件中,按照其使用场景可以大致分为中间件型组件、基础型组件、业务组件几大类,其中中间件型组件及部分基础型组件提供原生组件供开发商使用,业务组件由开发商按照平台开发规范技术要求进行开发;
当判断为构建型组件时,即是指按照平台构建型组件开发技术规范,遵循构建型组件开发要求的在应用构建功能中使用,用于构建应用系统的组件,这类组件旨在解决平台对于应用系统灵活构建需求而开发,在开发中要充分暴露本身组件对外的依赖及被依赖等关系,按照S312供其余组件拼接使用;
再进一步的,所述S4利用注册组件拼装实现应用构建的具体步骤包括:
S401通过可视化界面操作使用构建型组件及复用型组件完成应用拼装;
S402填入应用的相关信息和组件环境变量的值;
S403创建一个新的应用;
S404根据可视化界面上组件的依赖关系生成每个组件的YAML文件;
S405通过kubectlcreate-fyaml文件的方式完成每个组件容器服务的构建,向每个组件注入相应的环境变量,发布至容器集群进行部署运行;
S406将拼装生成的应用进行发布;
按照S4利用注册组件拼装实现应用构件时,首先按照S401使用构建型组件及符合型组件通过可视化界面操作完成应用的灵活拼装,接着按照S402填入新应用的关键信息和每个组件需要变化的环境变量的值,待界面操作完成后,系统后台程序按照S403创建一个新的应用,在创建的新的应用中,按照S404根据界面上组件的依赖关系生成每个组件的YAML文件,之后按照S405通过kubectlcreate-fyaml文件的方式完成每个组件容器服务的构建,向每个组件注入相应的环境变量,发布至容器集群进行部署运行,同时按照S406将拼装生成的应用一键发布,以供其他用户进行申请使用。
实施例二:
一种基于Docker的组件封装和应用构建的系统,所述的系统包括组件定义模块、镜像构建模块、信息填写模块和组件拼装模块:
组件定义模块:将组件定义为微服务架构的单一功能的Docker镜像文件;
镜像构建模块:构件镜像;
信息填写模块:定义注册组件的基本信息;
组件拼装模块:利用注册组件拼装实现应用构建;
本发明系统法能够解决传统应用软件无法满足各领域的业务是的灵活多变,无法适应根据相关政策、规范的灵活调整,且无法应对项目规划对于各业务的层级化管理需求也需要进行支持的问题,本发明系统使组件间关系的灵活配置成为现成,构建了一种灵活、快速、复用化程度更高的应用动态构建体系,为传统应用软件无法解决的问题最终效果提供了解决方案,
具有以下优点:
可实现根据用户的业务场景需要,针对常用的应用组件,定制专门的业务组件;
可实现组件在各类应用之间的复用;
可实现业务应用的快速搭建、快速上线;
可实现自动化部署、集中部署;
可实现降低应用运维、开发成本;
所述组件定义模块将组件定义为功能单一的、能够单独封装复用的、使用微服务架构技术进行开发的Docker镜像文件,组件定义模块具体包括程序开发模块、配置读取模块、外部沟通模块和内部集成模块:
程序开发模块:使用SpringCloud架构对组件内部程序统一进行开发;
配置读取模块:从环境变量中读取组件内部程序配置文件;
外部沟通模块:从环境变量中获取组件内部程序所使用的外部接口地址和外部链接地址;
内部集成模块:组件内部程序集成NACOS;
同时开发的Docker镜像文件不支持纯前端程序;
进一步的,所述镜像构建模块使用上传镜像tar包、模板构件或Dockerfile构建三种方式构建镜像;
上传镜像方式是指直接上传硬打包好的镜像tar包,以构建相应的镜像;模板构建方式是指在已有基础镜像的基础上,直接上传镜像war包构建相应的镜像;Dockerfile构建方式是指直接使用自己编写好的Dockerfile文件和对应的构建用文件附件,以构建相应的镜像;同时需要注意的是,为了维护所有容器服务的运行平稳,提高服务的运行效率,限制镜像tar包和文件最大不能超过500M;
进一步的,所述信息填写模块具体包括组件判断模块、第一组件模块和第二组件模块:
组件判断模块:判断注册组件的类型;
第一组件模块:将复合型组件通过RestFul接口方式对外提供服务;
第二组件模块:将构建型组件用于组件拼接使用;
组件注册时需要定义组件的基本信息,包括镜像url、版本号、所需容器的数量端口、映射关系、所需硬件资源的上下限等信息,首先通过组件判断模块判断注册组件的类型为复用型组件还是构建型组件,当判断为复用型组件时,该组件能够满足单个功能、服务等的复用,即利用第一组件模块通过RestFul接口方式对外提供服务。在复用型组件中,按照其使用场景可以大致分为中间件型组件、基础型组件、业务组件几大类,其中中间件型组件及部分基础型组件提供原生组件供开发商使用,业务组件由开发商按照平台开发规范技术要求进行开发;
当判断为构建型组件时,即是指按照平台构建型组件开发技术规范,遵循构建型组件开发要求的在应用构建功能中使用,用于构建应用系统的组件,这类组件旨在解决平台对于应用系统灵活构建需求而开发,在开发中要充分暴露本身组件对外的依赖及被依赖等关系,利用第二组件模块供其余组件拼接使用;
再进一步的,所述组件拼装模块具体包括拼装操作模块、变量输入模块、应用创建模块、文件生成模块、部署运行模块和应用发布模块:
拼装操作模块:通过可视化界面操作使用构建型组件及复用型组件完成应用拼装;
变量输入模块:填入应用的相关信息和组件环境变量的值;
应用创建模块:创建一个新的应用;
文件生成模块:根据可视化界面上组件的依赖关系生成每个组件的YAML文件;
部署运行模块:通过kubectlcreate-fyaml文件的方式完成每个组件容器服务的构建,向每个组件注入相应的环境变量,发布至容器集群进行部署运行;
应用发布模块:S406将拼装生成的应用进行发布;
组件拼装模块利用注册组件拼装实现应用构件时,首先由拼装操作模块使用构建型组件及符合型组件通过可视化界面操作完成应用的灵活拼装,接着利用变量输入模块填入新应用的关键信息和每个组件需要变化的环境变量的值,待界面操作完成后,系统后台程序通过应用创建模块创建一个新的应用,在创建的新的应用中,利用文件生成模块根据界面上组件的依赖关系生成每个组件的YAML文件,之后使用部署运行模块通过kubectlcreate-fyaml文件的方式完成每个组件容器服务的构建,向每个组件注入相应的环境变量,发布至容器集群进行部署运行,同时按照S406将拼装生成的应用一键发布,以供其他用户进行申请使用。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
- 一种基于Docker的组件封装和应用构建的方法及系统
- 一种基于Docker容器的应用封装系统及管理方法