一种后端环境变量替换的实现方法、装置、设备及介质制造方法及图纸

技术编号:31310740 阅读:22 留言:0更新日期:2021-12-12 21:41
本发明专利技术为提出了一种后端环境变量替换的实现方法,应用于微服务架构下,包括:获取待部署的应用版本、部署环境、环境变量信息,根据获取的待部署的应用版本、部署环境、环境变量信息生成安装包;读取第一配置文件中的微服务环境变量信息,并将读取的微服务环境变量信息渲染到第二配置文件中的容器环境变量配置中;调度部署第二配置文件,生成对应的容器,并根据第二配置文件为容器设置系统环境变量;容器读取设置系统环境变量,并将读取的环境变量替换原应用程序中名称相同的环境变量信息,本发明专利技术还提出了一种后端环境变量替换的实现装置、设备及介质,有效地提高了安装包部署于不同环境时部署效率。时部署效率。时部署效率。

【技术实现步骤摘要】
一种后端环境变量替换的实现方法、装置、设备及介质


[0001]本专利技术涉及变量替换领域,尤其是涉及一种后端环境变量替换的实现方法、装置、设备及介质。

技术介绍

[0002]ICM平台(浪潮云海管理平台的简称,浪潮自主研发设计的云管系统)是基于微服务架构(或微服务,是一种云原生架构方法,其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成,微服务将应用程序构造为一组松散耦合的服务,在微服务体系结构中,服务是细粒度的,协议是轻量级的)进行开发,通过Kubernetes(K8s,是一个开源的,用于管理云平台中多个主机上的容器化的应用)部署,微服务的新功能开发完成过程中,会被依次部署到研发环境(进行开发测试)、测试环境(进行验收)、生产环境(使用)。
[0003]ICM平台集成的GitLab(Git仓库管理工具)用于进行CI(持续集成)的过程,在微服务程序中经过GitlabCI的docker_build(容器创建)和chart_build(chart包创建)步骤之后,对应一次成功的CI过程,会有一个可以进行部署的Helm(Kubernetes的包管理器)的发行包(即安装包)。
[0004]一般情况下,不同环境下基础设施如数据库的地址是不同,而部署服务的需求是:一次打包生成的安装包可以在不同的环境进行部署,而不需要对源代码重新打包。
[0005]目前springboot框架(用来简化新Spring应用的初始搭建以及开发过程的框架)中提供了环境变量的支持,SpringBoot支持外部化配置,允许使用者通过属性文件、YAML文件(资源配置文件)、环境变量及命令行参数对服务进行外部化配置;同时允许@Value和@ConfigurationProperties注解的方式对上述变量进行访问,但是方案存在局限性,无法涉及到打包过程,当安装包的待部署环境不同时,需要重新打包,不能直接进行环境变量的替换,安装包的部署效率较低。

技术实现思路

[0006]本专利技术为了解决现有技术中存在的问题,创新提出了一种后端环境变量替换的实现方法、装置、设备及介质,有效解决由于现有技术造成安装包部署于不同环境时部署效率低的问题,有效地提高了安装包部署于不同环境时部署效率。
[0007]本专利技术第一方面提供了一种后端环境变量替换的实现方法,应用于微服务架构下,包括:
[0008]获取待部署的应用版本、部署环境、环境变量信息,根据获取的待部署的应用版本、部署环境、环境变量信息生成安装包;
[0009]读取第一配置文件中的微服务环境变量信息,并将读取的微服务环境变量信息渲染到第二配置文件中的容器环境变量配置中;其中,第一配置文件为安装包中所有变量默认配置值的配置文件,第二配置文件为kebernetes中的变量配置文件;
[0010]调度部署第二配置文件,生成对应的容器,并根据第二配置文件为容器设置系统
环境变量;
[0011]容器读取设置系统环境变量,并将读取的环境变量替换原应用程序中名称相同的环境变量信息。
[0012]可选地,读取第一配置文件中的微服务环境变量信息之前,还包括:
[0013]将第三配置文件与第一配置文件合并为新的第一配置文件,且第三配置文件覆盖第一配置文件中的同名配置项;其中,第三配置文件为用户通过命令行指定的配置文件,且第三配置文件的配置项的优先级大于第一配置文件中的配置项的优先级。
[0014]进一步地,第三配置文件覆盖第一配置文件中的同名配置项具体是:将第一配置项替换为第二配置项,其中,第一配置项为第一配置文件中的与第三配置文件中配置项名称相同的配置项,第二配置项为第三配置文件中的与第一配置项名称相同的配置项。
[0015]可选地,第三配置文件中包括若干个子配置文件,第三配置文件以及若干子配置文件的文件名称均支持自定义设置。
[0016]可选地,读取第一配置文件中的微服务环境变量信息具体是:通过占位符取值形式直接访问第一配置文件中的微服务环境变量信息。
[0017]可选地,微服务环境变量为下键值对,将读取的环境变量替换原应用程序中名称相同的环境变量信息具体是:将读取的下键值对替换原应用程序中名称相同的下键值对。
[0018]可选地,安装包还包括第四配置文件,所述第四配置文件用于存储安装包的属性信息,所述安装包的属性信息在后端环境变量替换的过程中保持不变。
[0019]本专利技术第二方面提供了一种后端环境变量替换的实现装置,应用于微服务架构下,包括:
[0020]获取模块,获取待部署的应用版本、部署环境、环境变量信息,根据获取的待部署的应用版本、部署环境、环境变量信息生成安装包;
[0021]读取模块,读取第一配置文件中的微服务环境变量信息,并将读取的微服务环境变量信息渲染到第二配置文件中的容器环境变量配置中;其中,第一配置文件为安装包中所有变量默认配置值的配置文件,第二配置文件为kebernetes中的变量配置文件;
[0022]调度部署模块,调度部署第二配置文件,生成对应的容器,并根据第二配置文件为容器设置系统环境变量;
[0023]替换模块,容器读取设置系统环境变量,并将读取的环境变量替换原应用程序中名称相同的环境变量信息。
[0024]本专利技术第三方面提供了一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如本专利技术第一方面述的一种后端环境变量替换的实现方法的步骤。
[0025]本专利技术第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如本专利技术第一方面所述的一种后端环境变量替换的实现方法的步骤。
[0026]本专利技术采用的技术方案包括以下技术效果:
[0027]1、本专利技术技术方案中,通过将包含环境变量信息的配置文件设置优先级,高优先级的环境变量信息配置文件覆盖低优先级的环境变量信息配置文件,不需要再重新打包,直接修改环境变量配置文件即可,有效解决由于现有技术造成安装包部署于不同环境时部
署效率低的问题,有效地提高了安装包部署于不同环境时部署效率。
[0028]2、本专利技术技术方案中,在读取第一配置文件中的微服务环境变量信息之前,还包括:将第三配置文件与第一配置文件合并为新的第一配置文件,且第三配置文件覆盖第一配置文件中的同名配置项;其中,第三配置文件为用户通过命令行指定的配置文件;读取合并后的第一配置文件中的微服务环境变量信息,使得用户可以根据实际情况替换环境变量,不需要直接修改安装包中的第一配置文件,即可实现安装包部署于不同环境中。
[0029]3、本专利技术技术方案中,第三配置文件的文件名称支持自定义设置,提高了用户指定的配置文件名称命名的便利性以及灵活性。
[0030]4、本专利技术技术方案中,通过占位符取值形式直接访问第一配置文件中的微服务环境变量信息,提高了环境变量的访问效率。
[0031]5、本专利技术技术方案中,微服务环境变量本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种后端环境变量替换的实现方法,其特征是,应用于微服务架构下,包括:获取待部署的应用版本、部署环境、环境变量信息,根据获取的待部署的应用版本、部署环境、环境变量信息生成安装包;读取第一配置文件中的微服务环境变量信息,并将读取的微服务环境变量信息渲染到第二配置文件中的容器环境变量配置中;其中,第一配置文件为安装包中所有变量默认配置值的配置文件,第二配置文件为kebernetes中的变量配置文件;调度部署第二配置文件,生成对应的容器,并根据第二配置文件为容器设置系统环境变量;容器读取设置系统环境变量,并将读取的环境变量替换原应用程序中名称相同的环境变量信息。2.根据权利要求1所述的一种后端环境变量替换的实现方法,其特征是,读取第一配置文件中的微服务环境变量信息之前,还包括:将第三配置文件与第一配置文件合并为新的第一配置文件,且第三配置文件覆盖第一配置文件中的同名配置项;其中,第三配置文件为用户通过命令行指定的配置文件,且第三配置文件的配置项的优先级大于第一配置文件中的配置项的优先级。3.根据权利要求2所述的一种后端环境变量替换的实现方法,其特征是,第三配置文件覆盖第一配置文件中的同名配置项具体是:将第一配置项替换为第二配置项,其中,第一配置项为第一配置文件中的与第三配置文件中配置项名称相同的配置项,第二配置项为第三配置文件中的与第一配置项名称相同的配置项。4.根据权利要求2所述的一种后端环境变量替换的实现方法,其特征是,第三配置文件中包括若干个子配置文件,第三配置文件以及若干子配置文件的文件名称均支持自定义设置。5.根据权利要求1所述的一种后端环境变量替换的实现方法,其特征是,读取第一配置文件中的微服务环境变量信息具体是:通过占位符取值形式直接访问第一配置文...

【专利技术属性】
技术研发人员:毕亮亮
申请(专利权)人:济南浪潮数据技术有限公司
类型:发明
国别省市:

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

1