配置应用程序的方法及装置制造方法及图纸

技术编号:20819537 阅读:25 留言:0更新日期:2019-04-10 05:50
本申请公开了一种配置应用程序的方法及装置,属于虚拟化技术领域。该方法包括:第一配置组件获取第一容器中部署的第一应用程序的文件信息;第一配置组件根据第一应用程序的文件信息,从位于第一节点外部的数据库中获取第一应用程序所需的基础文件;第一配置组件根据第一应用程序所需的基础文件和第一应用程序的配置参数,生成第一应用程序的配置文件。在本申请实施例中,由容器外部的配置组件实现对应用程序进行配置,且配置应用程序所需的基础文件由上述配置组件从节点外部的数据库中获取,将对应用程序的配置与部署上述应用程序的容器解耦,从而避免对容器的侵入式设计,后续对容器中应用程序的更改和升级更加简单易行。

【技术实现步骤摘要】
配置应用程序的方法及装置
本申请实施例涉及虚拟化
,特别涉及一种配置应用程序的方法及装置。
技术介绍
容器(container)技术是一种新型的虚拟化技术。请参考图1,其示出了一种容器部署场景的示意图。容器11部署于节点(node)10中,也即节点10是容器11的宿主机。一个节点10中可部署一个或多个容器11。节点10可以是虚拟机,也可以是物理机。容器11中可部署应用程序12,如网页服务(WebServer)应用、数据库应用等。为了确保应用程序12在容器11中正常运行,需要在应用程序12启动运行之前,对该应用程序12执行相关的配置操作。在分布式应用场景(如微服务系统)中,不同容器中的应用程序相互依赖,使得应用程序的配置参数需要在不同的容器间进行同步。配置参数是对应用程序进行初始化配置时所需的参数,如互联网协议(InternetProtocol,IP)地址、端口号、组件参数等。请参考图2,其示出了分布式应用场景中,对容器中的应用程序进行配置的示意图。图中包括配置中心20、第一节点21和第二节点22。配置中心20主要用于提供对配置参数的存取功能。第一节点21中部署有第一容器211,该第一容器211中部署有第一应用程序212,第二节点22中部署有第二容器221,该第二容器221中部署有第二应用程序222,且第二应用程序222依赖于第一应用程序212的配置参数,也即第二应用程序222是需要与第一应用程序212进行配置同步的应用程序。如图2所示,各个容器(包括第一容器211和第二容器221)中运行有配置客户端,以下将第一容器211中运行的配置客户端记为第一配置客户端213,将第二容器221中运行的配置客户端记为第二配置客户端223。配置客户端通常由轻量级的脚本实现,主要负责配置参数的推送、订阅及执行对应用程序的配置过程。第一容器211在加载阶段调用初始化脚本,由该初始化脚本从环境变量(environmentvariables)中读取启动参数,上述启动参数中包括第一应用程序212的配置参数,并调用第一应用程序212的配置脚本。第一配置客户端213执行第一应用程序212的配置脚本,将第一应用程序212的配置参数写入到第一应用程序212的配置模板中,生成第一应用程序212的配置文件,而后将第一应用程序212的配置文件存储至指定目录中,以完成对第一应用程序212的配置过程。此外,第一配置客户端213还将第一应用程序212的配置参数发送给配置中心20,以供依赖于第一应用程序212的其它应用程序从配置中心20获取第一应用程序212的配置参数。第二容器221在加载阶段调用初始化脚本,由该初始化脚本调用第二应用程序222的配置脚本。第二配置客户端223执行第二应用程序222的配置脚本,将第二应用程序222的配置参数写入到第二应用程序222的配置模板中,生成第二应用程序222的配置文件,而后将第二应用程序222的配置文件存储至指定目录中,以完成对第二应用程序222的配置过程.。其中,第二应用程序222的配置参数由第二配置客户端223在接收到配置中心20发送的配置变更通知之后从配置中心20获取,上述配置变更通知由配置中心20在接收到第一配置客户端213发送的第一应用程序212的配置参数之后,向需要与第一应用程序212进行配置同步的其它应用程序(如第二应用程序222)对应的配置客户端发送。在现有技术中,由容器中的配置客户端执行应用程序的配置过程,配置客户端在对应用程序进行配置时所需用到的配置脚本和配置模板也预先存储在容器中。由于不同的应用程序所需的配置脚本、配置模板以及相关的配置流程不尽相同,因此针对不同的容器,需要定制开发相应的配置客户端、配置脚本和配置模板,并预先植入到容器中。上述定制开发过程属于对容器的侵入式设计,不利于后续对容器中应用程序的更改和升级。
技术实现思路
本申请实施例提供了一种配置应用程序的方法及装置,可用于解决现有技术所提供的针对容器中应用程序的配置方案,因需要对不同的容器进行定制化开发,导致不利于后续对容器中应用程序的更改和升级的问题。一方面,本申请实施例提供一种配置应用程序的方法,应用于第一节点中,第一节点包括第一配置组件和第一容器;该方法包括:第一配置组件获取第一容器中部署的第一应用程序的文件信息,第一应用程序的文件信息用于指示配置第一应用程序所需的基础文件;第一配置组件根据第一应用程序的文件信息,从位于第一节点外部的数据库中获取第一应用程序所需的基础文件;第一配置组件根据第一应用程序所需的基础文件和第一应用程序的配置参数,生成第一应用程序的配置文件,其中,第一应用程序的配置参数从第一容器的环境变量中获取。本申请实施例提供的方案,由容器外部的配置组件实现对应用程序进行配置,且配置应用程序所需的基础文件由上述配置组件从节点外部的数据库中获取,通过上述方式,将对应用程序的配置与部署上述应用程序的容器解耦,从而避免对容器的侵入式设计,后续对容器中应用程序的更改和升级更加简单易行。在一个可能的设计中,第一应用程序的文件信息包括第一应用程序的元数据配置文件的标识,第一应用程序的元数据配置文件中包括第一应用程序所需的基础文件的标识;第一配置组件根据第一应用程序的文件信息,从位于第一节点外部的数据库中获取第一应用程序所需的基础文件,包括:第一配置组件根据第一应用程序的元数据配置文件的标识,从数据库中获取第一应用程序的元数据配置文件;第一配置组件解析第一应用程序的元数据配置文件,获取第一应用程序所需的基础文件的标识;第一配置组件根据第一应用程序所需的基础文件的标识,从数据库中获取第一应用程序所需的基础文件。本申请实施例提供的方案,配置应用程序所需的基础文件由上述配置组件从节点外部的数据库中获取,通过上述方式,将对应用程序的配置与部署上述应用程序的容器解耦,从而避免对容器的侵入式设计,后续对容器中应用程序的更改和升级更加简单易行。在一个可能的设计中,上述基础文件包括配置脚本和配置模板;第一应用程序的元数据配置文件中包括配置脚本序列和配置模板列表;配置脚本序列中包括第一应用程序所需的配置脚本的标识,且第一应用程序所需的配置脚本的标识在配置脚本序列中的排列顺序,用于指示第一应用程序所需的配置脚本的执行顺序;配置模板列表中包括第一应用程序所需的配置模板的标识,以及每一个配置模板对应的文件存储路径,文件存储路径用于指示根据配置模板生成的配置文件的存储路径。在一个可能的设计中,第一配置组件根据第一应用程序所需的基础文件和第一应用程序的配置参数,生成第一应用程序的配置文件之后,还包括:第一配置组件将第一应用程序的配置参数发送给位于第一节点外部的配置中心;第一配置组件向第二节点中的第二配置组件发送配置变更通知,配置变更通知用于通知第二配置组件从配置中心获取第一应用程序的配置参数。在一个可能的设计中,第一配置组件向第二节点中的第二配置组件发送配置变更通知,包括:第一配置组件通过短连接向第二配置组件发送配置变更通知。具体地,第一配置组件向第二配置组件发送连接建立请求,连接建立请求用于请求与第二配置组件建立通信连接;在成功建立上述通信连接之后,第一配置组件向第二配置组件发送配置变更通知;在配置变更通知发送成功之后,第一配置组件本文档来自技高网
...

【技术保护点】
1.一种配置应用程序的方法,其特征在于,应用于第一节点中,所述第一节点包括第一配置组件和第一容器;所述方法包括:所述第一配置组件获取第一容器中部署的第一应用程序的文件信息,所述第一应用程序的文件信息用于指示配置所述第一应用程序所需的基础文件;所述第一配置组件根据所述第一应用程序的文件信息,从位于所述第一节点外部的数据库中获取所述第一应用程序所需的基础文件;所述第一配置组件根据所述第一应用程序所需的基础文件和所述第一应用程序的配置参数,生成所述第一应用程序的配置文件,其中,所述第一应用程序的配置参数从所述第一容器的环境变量中获取。

【技术特征摘要】
1.一种配置应用程序的方法,其特征在于,应用于第一节点中,所述第一节点包括第一配置组件和第一容器;所述方法包括:所述第一配置组件获取第一容器中部署的第一应用程序的文件信息,所述第一应用程序的文件信息用于指示配置所述第一应用程序所需的基础文件;所述第一配置组件根据所述第一应用程序的文件信息,从位于所述第一节点外部的数据库中获取所述第一应用程序所需的基础文件;所述第一配置组件根据所述第一应用程序所需的基础文件和所述第一应用程序的配置参数,生成所述第一应用程序的配置文件,其中,所述第一应用程序的配置参数从所述第一容器的环境变量中获取。2.根据权利要求1所述的方法,其特征在于,所述第一应用程序的文件信息包括所述第一应用程序的元数据配置文件的标识,所述第一应用程序的元数据配置文件中包括所述第一应用程序所需的基础文件的标识;所述第一配置组件根据所述第一应用程序的文件信息,从位于所述第一节点外部的数据库中获取所述第一应用程序所需的基础文件,包括:所述第一配置组件根据所述第一应用程序的元数据配置文件的标识,从所述数据库中获取所述第一应用程序的元数据配置文件;所述第一配置组件解析所述第一应用程序的元数据配置文件,获取所述第一应用程序所需的基础文件的标识;所述第一配置组件根据所述第一应用程序所需的基础文件的标识,从所述数据库中获取所述第一应用程序所需的基础文件。3.根据权利要求1或2所述的方法,其特征在于,所述第一配置组件根据所述第一应用程序所需的基础文件和所述第一应用程序的配置参数,生成所述第一应用程序的配置文件之后,还包括:所述第一配置组件将所述第一应用程序的配置参数发送给位于所述第一节点外部的配置中心;所述第一配置组件向第二节点中的第二配置组件发送配置变更通知,所述配置变更通知用于通知所述第二配置组件从所述配置中心获取所述第一应用程序的配置参数。4.根据权利要求3所述的方法,其特征在于,所述第一配置组件向第二节点中的第二配置组件发送配置变更通知,包括:所述第一配置组件向所述第二配置组件发送连接建立请求,所述连接建立请求用于请求与所述第二配置组件建立通信连接;在成功建立所述通信连接之后,所述第一配置组件向所述第二配置组件发送所述配置变更通知;在所述配置变更通知发送成功之后,所述第一配置组件断开所述通信连接。5.一种配置应用程序的方法,其特征在于,应用于第二节点中,所述第二节点包括第二配置组件和第二容器;所述方法包括:所述第二配置组件获取第二容器中部署的第二应用程序的文件信息,所述第二应用程序的文件信息用于指示配置所述第二应用程序所需的基础文件;所述第二配置组件根据所述第二应用程序的文件信息,从位于所述第二节点外部的数据库中获取所述第二应用程序所需的基础文件;在位于所述第二节点外部的配置中心接收到第一应用程序的配置参数之后,所述第二配置组件接收所述配置中心发送的所述第一应用程序的配置参数,所述第一应用程序是部署在第一节点的容器中的应用程序;所述第二配置组件根据所述第二应用程序所需的基础文件和所述第二应用程序的配置参数,生成所述第二应用程序的配置文件,其中,所述第二应用程序的配置参数包括所述第一应用程序的配置参数。6.根据权利要求5所述的方法,其特征在于,所述第二应用程序的文件信息包括所述第二应用程序的元数据配置文件的标识,所述第二应用程序的元数据配置文件中包括所述第二应用程序所需的基础文件的标识;所述第二配置组件根据所述第二应用程序的文件信息,从位于所述第二节点外部的数据库中获取所述第二应用程序所需的基础文件,包括:所述第二配置组件根据所述第二应用程序的元数据配置文件的标识,从所述数据库中获取所述第二应用程序的元数据配置文件;所述第二配置组件解析所述第二应用程序的元数据配置文件,获取所述第二应用程序所需的基础文件的标识;所述第二配置组件根据所述第二应用程序所需的基础文件的标识,从所述数据库中获取所述第二应用程序所需的基础文件。7.根据权利要求5或6所述的方法,其特征在于,所述第二配置组件接收所述配置中心发送的所述第一应用程序的配置参数之前,还包括:所述第二配置组件接收所述第一节点中的第一配置组件发送的配置变更通知,所述配置变更通知用于通知所述第二配置组件从所述配置中心获取所述第一应用程序的配置参数;所述第二配置组件向所述配置中心发送信息获取请求,所述信息获取请求用于请求获取所述第一应用程序的配置参数。8.根据权利要求7所述的方法,其特征在于,所述第二配置组件接收所述第一节点中的第一配置组件发送的配置...

【专利技术属性】
技术研发人员:孙勐
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1