CN110221845A - 应用部署方法、装置、设备和介质 - Google Patents
应用部署方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN110221845A CN110221845A CN201910493398.XA CN201910493398A CN110221845A CN 110221845 A CN110221845 A CN 110221845A CN 201910493398 A CN201910493398 A CN 201910493398A CN 110221845 A CN110221845 A CN 110221845A
- Authority
- CN
- China
- Prior art keywords
- container
- target application
- deployment
- target
- configuration information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实例公开了一种应用部署方法、装置、设备和介质,涉及互联网应用领域。该方法包括:响应目标应用的发布请求,获取所述目标应用的部署配置信息;根据所述部署配置信息中的所述目标应用的代码地址,获取所述目标应用的源代码;根据所述源代码生成目标镜像;根据所述部署配置信息中的部署策略和所述目标镜像,启动与所述目标应用关联的容器。本发明实施例提供一种应用部署方法、装置、设备和介质,实现了对应用的自动部署。
Description
技术领域
本发明实施例涉及互联网应用领域,尤其涉及一种应用部署方法、装置、设备和介质。
背景技术
Docker容器是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上。
当前基于Docker容器将应用程序部署到容器中的操作,需要运维工程师直接操作容器实现。该操作需要运维工程师熟悉运行命令,了解部署原理和架构,且需要一定的实践能力。然而,这些要求导致对应用部署操作人员要求过高的问题。
发明内容
本发明实施例提供一种应用部署方法、装置、设备和介质,以实现对应用的自动部署。
第一方面,本发明实施例提供了一种应用部署方法,该方法包括:
响应目标应用的发布请求,获取所述目标应用的部署配置信息;
根据所述部署配置信息中的所述目标应用的代码地址,获取所述目标应用的源代码;
根据所述源代码生成目标镜像;
根据所述部署配置信息中的部署策略和所述目标镜像,启动与所述目标应用关联的容器。
第二方面,本发明实施例还提供了一种应用部署装置,包括:
信息获取模块,用于响应目标应用的发布请求,获取所述目标应用的部署配置信息;
代码获取模块,用于根据所述部署配置信息中的所述目标应用的代码地址,获取所述目标应用的源代码;
镜像生成模块,用于根据所述源代码生成目标镜像;
容器启动模块,用于根据所述部署配置信息中的部署策略和所述目标镜像,启动与所述目标应用关联的容器。
第三方面,本发明实施例还提供了一种设备,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例中任一所述的应用部署方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的应用部署方法。
本发明实施例通过根据部署配置信息获取所述目标应用的源代码;根据所述源代码生成目标镜像;根据所述部署配置信息中的部署策略和所述目标镜像,启动与所述目标应用关联的容器,从而实现对目标应用关联的容器的自动启动,也即对目标应用的自动部署。该过程仅需用户对部署配置信息的填写,从而使得应用部署操作人员无需熟悉运行命令,无需了解部署原理和架构,降低了对部署操作人员的技术要求。
附图说明
图1为本发明实施例一提供的一种应用部署方法的流程图;
图2是本发明实施例二提供的一种应用部署方法的流程图;
图3a是本发明实施例四提供的一种应用部署方法的流程图;
图3b是本发明实施例三提供的一种信息录入示意图;
图3c是本发明实施例三提供的一种弹性伸缩开关示意图;
图3d是本发明实施例三提供的一种一键部署示意图;
图3e是本发明实施例三提供的一种kube-apiserver工作原理示意图;
图4是本发明实施例四提供的一种应用部署装置的结构示意图;
图5为本发明实施例五提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种应用部署方法的流程图。本实施例可适用于将应用部署于硬件设备上,由该硬件设备为客户端提供应用关联的服务的情况。典型地,该硬件设备可以是提供上述服务的服务器。该方法可以由一种应用部署装置来执行,该装置可以由软件和/或硬件的方式实现。参见图1,本是实施例提供的应用部署方法包括:
S110、响应目标应用的发布请求,获取所述目标应用的部署配置信息。
其中,目标应用是待发布的应用。该应用可以是任意应用,本实施例对此并不进行任何限制。
发布是指将目标应用部署在硬件设备上,由硬件设备为目标应用的客户端提供服务。
部署配置信息是指部署目标应用所需的信息。
具体地,部署配置信息包括所述目标应用的代码地址和部署策略。
部署策略的确定可以是人为选择。
典型地,所述部署策略的确定包括:
根据所述目标应用的核心值、开发人员对所述目标应用的源代码的认可度、所述目标应用关联的容器的总数量和所述目标应用的访问量中的至少一种,确定所述部署策略;
其中所述部署策略包括:首批次容器部署后自动暂停,根据首批次容器的执行结果触发剩余批次容器的执行;每批次容器部署后均需暂停,根据当前批次容器的执行结果启动下一批次容器的执行;每批次容器部署后均无需暂停。
根据所述目标应用的核心值、开发人员对所述目标应用的源代码的认可度、所述目标应用关联的容器的总数量和所述目标应用的访问量中的至少一种,确定所述部署策略,包括:
根据所述目标应用的核心值和/或开发人员对所述目标应用的源代码的认可度,确定是否使用每批次容器部署后均无需暂停的部署策略;
若否,则根据目标应用关联的容器的总数量和/或所述目标应用的访问量,从上述首批暂停或批批暂停的部署策略中选择使用的部署策略。
具体地,若目标应用关联的容器的总数量较多,则为提高部署速率可以选择首批暂停的部署策略;若目标应用关联的容器的总数量较少,则为提高部署准确率可以选择批批暂停的部署策略。
S120、根据所述部署配置信息中的所述目标应用的代码地址,获取所述目标应用的源代码。
典型地,所述目标应用的代码地址可以为存储目标应用源代码的Gitlab仓库的地址,GitLab是一个用于仓库管理***的开源项目。
所述目标应用属于GitLab的一个分支。
根据存储目标应用源代码的Gitlab仓库的地址以及所述目标应用所属GitLab的分支,可以确定目标应用源代码的具体存储地址。根据所述具体存储地址可以提取到所述目标应用的源代码。
S130、根据所述源代码生成目标镜像。
其中,目标镜像是目标应用的镜像。
具体地,根据所述源代码生成目标镜像包括:
编译所述源代码,打包编译结果,生成目标镜像。
S140、根据所述部署配置信息中的部署策略和所述目标镜像,启动与所述目标应用关联的容器。
具体地,根据所述部署配置信息中的部署策略和所述目标镜像,启动与所述目标应用关联的容器,包括:
根据所述部署配置信息中的部署策略,确定待启动容器,以及待启动容器的启动顺序;
按照待启动容器的启动顺序,利用所述目标镜像启动所述待启动容器。
本发明实施例通过根据部署配置信息获取所述目标应用的源代码;根据所述源代码生成目标镜像;根据所述部署配置信息中的部署策略和所述目标镜像,启动与所述目标应用关联的容器,从而实现对目标应用关联的容器的自动启动,也即对目标应用的自动部署。该过程仅需用户对部署配置信息的填写,从而使得应用部署操作人员无需熟悉运行命令,无需了解部署原理和架构,降低了对部署操作人员的技术要求。
为在发生异常时实现快速止损效果,所述根据所述部署配置信息中的部署策略和所述目标镜像,启动与所述目标应用关联的容器之后,所述方法还包括:
若根据所述容器的执行结果确定所述目标应用存在异常,则将所述目标应用从当前版本切换为历史版本。
典型地,历史版本为当前版本的上一版本。
该方法通过在发生异常时快速回滚至目标应用源代码的上一版本,从而达到快速止损的效果。
目标应用在部署过程中会使得容器Cpu使用率波动,为适用目标应用在Cpu高峰和低谷的资源消耗,所述根据所述部署配置信息中的部署策略和所述目标镜像,启动与所述目标应用关联的容器之后,所述方法还包括:
根据所述目标应用关联的容器的使用信息,基于所述目标应用关联的容器数量的最大值和最小值,增加新容器或销毁已有容器。
具体地,若所述目标应用关联的容器的Cpu使用率大于扩展容器阈值,则增加新容器;若所述目标应用关联的容器的Cpu使用率小于缩小容器阈值,则销毁已有容器。
为方便发布人员对容器信息和容器日志的查看,所述根据所述部署配置信息中的部署策略和所述目标镜像,启动与所述目标应用关联的容器之后,所述方法还包括:
显示所述容器的容器信息,其中所述容器信息包括:容器主机名、容器所属宿主机的信息、容器IP和容器日志的下载地址中的至少一种。
为实现在不同环境的发布,所述根据所述源代码生成目标镜像之后,所述方法还包括:
选择发布环境,其中所述发布环境包括:开发环境、测试环境或生产环境;
根据所述部署配置信息中的部署策略、所述目标镜像和选择的所述发布环境,启动与所述目标应用关联的容器。
为避免错误的发布,所述根据所述部署配置信息中的所述目标应用的代码地址,获取所述目标应用的源代码之前,所述方法还包括:
发布负责人对目标应用以及发布信息进行确认。
进一步地,所述部署策略中容器部署的批次数量按照如下公式确定:
批次数量=((容器的总数量-1)÷(容器的总数量×单次发布流量的占比))+1。
每批次容器的数量按照如下公式确定:
每批次容器的数量=容器的总数量×单次发布流量的占比。
实施例二
图2是本发明实施例二提供的一种应用部署方法的流程图。本实施例是在上述实施例的基础上提出的一种可选方案。参见图2,本实施例提供的应用部署方法包括:
S210、响应目标应用的发布请求,获取所述目标应用的部署配置信息。
S220、根据所述部署配置信息中的所述目标应用的代码地址,获取所述目标应用的源代码。
S230、根据所述源代码生成目标镜像,根据所述目标镜像启动所述目标应用的测试容器。
其中,测试容器是用于对目标应用进行测试的容器。
具体地,所述根据所述目标镜像启动所述目标应用的测试容器,包括:
将所述目标镜像的执行进程作为测试容器的数据处理进程,基于所述测试容器的运行环境配置信息,为所述测试容器的关联设备提供所述目标应用关联的服务。
S240、根据所述测试容器的执行结果确定所述目标应用是否存在异常。
具体地,所述根据所述测试容器的执行结果确定所述目标应用是否存在异常,包括:
判断所述测试容器中的数据处理进程是否执行成功;
若是,则根据所述测试容器的数据处理进程执行结果和/或所述测试容器对关联设备的服务响应结果,对所述目标应用进行异常检测。
S250、若所述目标应用正常,则根据所述部署配置信息中的部署策略和所述目标镜像启动所述目标应用的执行容器,由所述执行容器为所述执行容器的关联设备提供所述目标应用关联的服务。
其中,所述执行容器为用于在实际生产环境为客户端提供服务的容器。
具体地,所述根据所述部署配置信息中的部署策略和所述目标镜像启动所述目标应用的执行容器,包括:
根据所述配置信息中的部署策略,确定执行容器的部署批次和各批次执行容器的异常检测策略;
根据所述执行容器的部署批次和所述各批次执行容器的异常检测策略,基于所述目标镜像对所述执行容器分批启动。
其中,异常检测策略可以是每批都进行异常检测,仅首批进行异常检测,或每批都不进行异常检测。
本发明实施例的技术方案,通过根据所述目标镜像启动所述目标应用的测试容器;根据所述测试容器的执行结果确定所述目标应用是否存在异常,从而实现对目标应用的异常测试。
实施例三
图3a是本发明实施例三提供的一种应用部署方法的流程图。本实施例是在上述实施例的基础上提出的一种可选方案。参见图3a,本实施例提供的应用部署方法包括:
响应目标应用的发布请求,获取所述目标应用的部署配置信息;
发布负责人对目标应用以及发布信息进行确认;
从所述部署配置信息中获取所述目标应用的代码地址;
从代码地址中获取所述目标应用的源代码;
编译所述源代码,打包编译结果,根据打包结果生成目标镜像;
将所述目标镜像的执行进程作为内部测试容器的数据处理进程,基于所述内部测试容器的运行环境配置信息,为所述内部测试容器的关联设备提供所述目标应用关联的服务;
判断所述内部测试容器中的数据处理进程是否执行成功;
若是,则根据所述内部测试容器的数据处理进程执行结果和/或所述内部测试容器对所述关联设备的服务响应结果,对所述目标应用进行异常检测;
若检测结果为正常,则将所述目标镜像的执行进程作为外部测试容器的数据处理进程,基于所述外部测试容器的运行环境配置信息,为所述外部测试容器的关联设备提供所述目标应用关联的服务;
判断所述外部测试容器中的数据处理进程是否执行成功;
若是,则根据所述内部测试容器的数据处理进程的执行结果和/或所述内部测试容器对所述关联设备的服务响应结果,对所述目标应用进一步异常检测;
若检测结果为正常,则根据所述配置信息中的部署策略确定待部署的外部执行容器;
将所述目标镜像的执行进程作为所述待部署的外部执行容器的数据处理进程,基于待部署的外部执行容器的运行环境配置信息,为待部署的外部执行容器的关联设备提供所述目标应用关联的服务;
若根据所述待部署的外部执行容器的数据处理进程的执行结果和/或待部署的外部执行容器对所述关联设备的服务响应结果,确定所述目标应用存在异常,则将所述目标应用从当前版本切换为历史版本。
在实际应用中,上述方法可以由一个平台实现。该平台集中日常发布应用的信息,将应用代码从Gitlab仓库克隆后编译并用脚本自动生成镜像到Harbor仓库,通过Kubernetes技术生成容器资源,调用底层API将容器信息返回前端,根据公司定制性需求,实现发布过程中的各批次暂停策略和发布过程中容器自动伸缩弹性策略。
该平台的功能概述如下:
开发人员完成代码编写,在***中录入应用信息,包含:应用名、应用负责人、应用代码仓库地址等等。运维人员审核并绑定机器资源。应用部署人员通过操作平台界面即可部署应用,并在异常情况下回滚上一次发布版本。
界面提供三种部署策略,根据应用自身的容器数量、访问量和应用的核心程度,选择其中的一种部署,部署过程中可选择是否打开弹性伸缩性能。
详细流程如下:
1、开发人员新增服务(也即目标应用可实现的服务),参见图3b开发人员录入必填信息,交由运维人员审核。
2、运维人员审核通过后,应用部署人员根据应用自身的容器数量、访问量和应用的核心程度,从预设部署策略中确定目标部署策略,并根据需求确定是否开启弹性伸缩开关。
其中,预设部署策略包括:(1)首批停:首批1台,首批发布后自动暂停,手动触发后自动发布剩余批次;(2)批批停:首批1台,每批次均需手动触发部署,批次间强制暂停;(3)批批不停:首批1台,此策略需谨慎使用,所有批次均自动发布,每批次不会暂停。
所述部署策略中容器部署的批次数量按照如下公式确定:
批次数量=((容器的总数量-1)÷(容器的总数量×单次发布流量的占比))+1。
每批次容器的数量按照如下公式确定:
每批次容器的数量=容器的总数量×单次发布流量的占比。
应用在部署过程中会使得容器Cpu使用率波动。通过使用容器HpaController功能开发一个动态开关。在打开开关时,若容器所需要的Cpu负荷过大使***的Cpu使用量攀升,则自动创建新的容器出来进行负载均衡缓存Cpu压力。通过使用最大和最小容器数能适应应用在高峰和低谷的资源消耗。弹性伸缩开关的设置参见图3c。
3、在部署配置信息填写完成后,平台调用kube apiserver接口操作ETCD模块响应应用部署人员一键部署应用的请求。
其中,kube apiserver接口主要的rest接口是资源对象的增删改查,除此之外它还可以把请求转发到某个Node上,作为代理rest请求。
实际发布过程中,参见图3d发布人员使用一键功能,平台将前端表单中的部署配置信息生成必要的容器生成参数;根据容器生成参数生成容器,将容器数据返回前端,供前端显示。
其中容器数据包括容器主机名,宿主机信息和容器IP等信息。
此外,增加显示容器的链接和日志的下载url,以便于应用部署人员可以快速登陆容器,并查看应用日志。在发生异常时通过日志识别异常后能快速回滚上一个版本达到最快止损效果。
具体地,根据容器生成参数生成容器包括:
根据容器生成参数中的应用Git地址和分支调用打包生成镜像;利用镜像启动容器。
为实现容器发布前的预检,在启动所有服务前先启动一台容器用于预先判断应用的运行状况。
具体地,参见图3e,kube apiserver工作原理为:各接口用于实现平台相关的各种功能;访问控制用于对平台操作人员的权限认证;登记用于对发布环境、发布应用和存储区域等信息的登记;数据存储集群用于存储部署过程中的数据。
典型地,核心接口主要用于容器和部署策略的生成;分组接口用于对容器的分批;健康检查接口用于对容器的健康管理;日志接口用于对容器日志的收集;界面显示接口,用于对容器数据、容器的链接和日志下载url等需要显示的信息的显示;性能度量接口用于度量待部署应用的性能。
本发明实施例的关键点和欲保护点如下:
多环境共享配置,一套配置即可部署多套环境。
应用部署web自动化,使用容器技术且支持首批停、批批停、批批不停3种部署策略。
对于用户来说不必关心技术底层实行细节,通过页面对容器创建更简单,更高效。
在快速回滚下提供一键等功能,为生产发生意外故障后止损提供保障。
通过平台创建的容器可在多个环境下随时启动,且运行结果一致。
本发明实施例可以实现如下效果:
(1)对操作人员专业性要求极低,无需额外编写脚本,无需关心Docker底层。
(2)简单配置可在几分钟内上线,速度缩短数十倍,容器秒级启动,。
(3)支持多环境。
(4)应用分批部署,并且可以随意调整分批以及支持多种部署策略。
(5)提供平台化操作,创建研发,测试等角色用户使用页面操作可独立,快速部署应用发版到生产线。
(6)全程容器扩缩容自动实现,容器创建,销毁及回滚只需一键点击,秒级创建容器资源。
需要说明的是,基于上述实施例的技术教导,本领域技术人员有动机将上述实施方式进行组合,以实现对应用的自动部署。
实施例四
图4是本发明实施例四提供的一种应用部署装置的结构示意图。参见图4,本实施,提出的应用部署装置包括:信息获取模块10、代码获取模块20、镜像生成模块30和容器启动模块40。
其中,信息获取模块10,用于响应目标应用的发布请求,获取所述目标应用的部署配置信息;
代码获取模块20,用于根据所述部署配置信息中的所述目标应用的代码地址,获取所述目标应用的源代码;
镜像生成模块30,用于根据所述源代码生成目标镜像;
容器启动模块40,用于根据所述部署配置信息中的部署策略和所述目标镜像,启动与所述目标应用关联的容器。
本发明实施例通过根据部署配置信息获取所述目标应用的源代码;根据所述源代码生成目标镜像;根据所述部署配置信息中的部署策略和所述目标镜像,启动与所述目标应用关联的容器,从而实现对目标应用关联的容器的自动启动,也即对目标应用的自动部署。该过程仅需用户对部署配置信息的填写,从而使得应用部署操作人员无需熟悉运行命令,无需了解部署原理和架构,降低了对部署操作人员的技术要求。
进一步地,所述容器启动模块,包括:测试启动单元、异常确定单元和容器启动单元。
其中,测试启动单元,用于根据所述目标镜像启动所述目标应用的测试容器;
异常确定单元,用于根据所述测试容器的执行结果确定所述目标应用是否存在异常;
容器启动单元,用于若所述目标应用正常,则根据所述部署配置信息中的部署策略和所述目标镜像启动所述目标应用的执行容器,由所述执行容器为所述执行容器的关联设备提供所述目标应用关联的服务。
进一步地,所述测试启动单元具体用于:
将所述目标镜像的执行进程作为测试容器的数据处理进程,基于所述测试容器的运行环境配置信息,为所述测试容器的关联设备提供所述目标应用关联的服务;
所述异常确定单元具体用于:
判断所述测试容器中的数据处理进程是否执行成功;
若是,则根据所述测试容器的数据处理进程执行结果和/或所述测试容器对关联设备的服务响应结果,对所述目标应用进行异常检测。
进一步地,所述容器启动单元具体用于:
根据所述配置信息中的部署策略,确定执行容器的部署批次和各批次执行容器的异常检测策略;
根据所述执行容器的部署批次和所述各批次执行容器的异常检测策略,基于所述目标镜像对所述执行容器分批启动。
进一步地,所述装置还包括部署策略确定模块。
其中,部署策略确定模块,用于根据所述目标应用的核心值、开发人员对所述目标应用的源代码的认可度、所述目标应用关联的容器的总数量和所述目标应用的访问量中的至少一种,确定所述部署策略;
其中所述部署策略包括:首批次容器部署后自动暂停,根据首批次容器的执行结果触发剩余批次容器的执行;每批次容器部署后均需暂停,根据当前批次容器的执行结果启动下一批次容器的执行;每批次容器部署后均无需暂停。
进一步地,所述装置还包括:历史回滚模块。
其中,历史回滚模块,用于所述根据所述部署配置信息中的部署策略和所述目标镜像,启动与所述目标应用关联的容器之后,若根据所述容器的执行结果确定所述目标应用存在异常,则将所述目标应用从当前版本切换为历史版本。
本发明实施例所提供的应用部署装置可执行本发明任意实施例所提供的应用部署方法,具备执行方法相应的功能模块和有益效果。
实施例五
图5为本发明实施例五提供的一种设备的结构示意图,如图5所示,该设备包括处理器70、存储器71、输入装置72和输出装置73;设备中处理器70的数量可以是一个或多个,图5中以一个处理器70为例;设备中的处理器70、存储器71、输入装置72和输出装置73可以通过总线或其他方式连接,图5中以通过总线连接为例。
存储器71作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的应用部署方法对应的程序指令/模块(例如,应用部署装置中的信息获取模块10、代码获取模块20、镜像生成模块30和容器启动模块40)。处理器70通过运行存储在存储器71中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的应用部署方法。
存储器71可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器71可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器71可进一步包括相对于处理器70远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置72可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置73可包括显示屏等显示设备。
实施例六
本发明实施例六还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种应用部署方法,该方法包括:
响应目标应用的发布请求,获取所述目标应用的部署配置信息;
根据所述部署配置信息中的所述目标应用的代码地址,获取所述目标应用的源代码;
根据所述源代码生成目标镜像;
根据所述部署配置信息中的部署策略和所述目标镜像,启动与所述目标应用关联的容器。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的应用部署方法中的相关操作.
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种应用部署方法,其特征在于,包括:
响应目标应用的发布请求,获取所述目标应用的部署配置信息;
根据所述部署配置信息中的所述目标应用的代码地址,获取所述目标应用的源代码;
根据所述源代码生成目标镜像;
根据所述部署配置信息中的部署策略和所述目标镜像,启动与所述目标应用关联的容器。
2.根据权利要求1所述的方法,其特征在于,所述根据权利要求根据所述部署配置信息中的部署策略和所述目标镜像,启动与所述目标应用关联的容器,包括:
根据所述目标镜像启动所述目标应用的测试容器;
根据所述测试容器的执行结果确定所述目标应用是否存在异常;
若所述目标应用正常,则根据所述部署配置信息中的部署策略和所述目标镜像启动所述目标应用的执行容器,由所述执行容器为所述执行容器的关联设备提供所述目标应用关联的服务。
3.根据权利要求2所述的方法,其特征在于,所述根据所述目标镜像启动所述目标应用的测试容器,包括:
将所述目标镜像的执行进程作为测试容器的数据处理进程,基于所述测试容器的运行环境配置信息,为所述测试容器的关联设备提供所述目标应用关联的服务;
所述根据所述测试容器的执行结果确定所述目标应用是否存在异常,包括:
判断所述测试容器中的数据处理进程是否执行成功;
若是,则根据所述测试容器的数据处理进程执行结果和/或所述测试容器对关联设备的服务响应结果,对所述目标应用进行异常检测。
4.根据权利要求2所述的方法,其特征在于,所述根据所述部署配置信息中的部署策略和所述目标镜像启动所述目标应用的执行容器,包括:
根据所述配置信息中的部署策略,确定执行容器的部署批次和各批次执行容器的异常检测策略;
根据所述执行容器的部署批次和所述各批次执行容器的异常检测策略,基于所述目标镜像对所述执行容器分批启动。
5.根据权利要求1所述的方法,其特征在于,所述部署策略的确定包括:
根据所述目标应用的核心值、开发人员对所述目标应用的源代码的认可度、所述目标应用关联的容器的总数量和所述目标应用的访问量中的至少一种,确定所述部署策略;
其中所述部署策略包括:首批次容器部署后自动暂停,根据首批次容器的执行结果触发剩余批次容器的执行;每批次容器部署后均需暂停,根据当前批次容器的执行结果启动下一批次容器的执行;每批次容器部署后均无需暂停。
6.根据权利要求1所述的方法,其特征在于,所述根据所述部署配置信息中的部署策略和所述目标镜像,启动与所述目标应用关联的容器之后,所述方法还包括:
若根据所述容器的执行结果确定所述目标应用存在异常,则将所述目标应用从当前版本切换为历史版本。
7.一种应用部署装置,其特征在于,包括:
信息获取模块,用于响应目标应用的发布请求,获取所述目标应用的部署配置信息;
代码获取模块,用于根据所述部署配置信息中的所述目标应用的代码地址,获取所述目标应用的源代码;
镜像生成模块,用于根据所述源代码生成目标镜像;
容器启动模块,用于根据所述部署配置信息中的部署策略和所述目标镜像,启动与所述目标应用关联的容器。
8.根据权利要求7所述的装置,其特征在于,所述容器启动模块,包括:
测试启动单元,用于根据所述目标镜像启动所述目标应用的测试容器;
异常确定单元,用于根据所述测试容器的执行结果确定所述目标应用是否存在异常;
容器启动单元,用于若所述目标应用正常,则根据所述部署配置信息中的部署策略和所述目标镜像启动所述目标应用的执行容器,由所述执行容器为所述执行容器的关联设备提供所述目标应用关联的服务。
9.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的应用部署方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的应用部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910493398.XA CN110221845A (zh) | 2019-06-06 | 2019-06-06 | 应用部署方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910493398.XA CN110221845A (zh) | 2019-06-06 | 2019-06-06 | 应用部署方法、装置、设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110221845A true CN110221845A (zh) | 2019-09-10 |
Family
ID=67816133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910493398.XA Withdrawn CN110221845A (zh) | 2019-06-06 | 2019-06-06 | 应用部署方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110221845A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111399855A (zh) * | 2020-03-09 | 2020-07-10 | 山东汇贸电子口岸有限公司 | 一种基于容器技术的自动化应用实例发布方法 |
CN111796801A (zh) * | 2020-06-30 | 2020-10-20 | 中国工商银行股份有限公司 | 基于容器的应用版本自动化构建方法及*** |
CN111857736A (zh) * | 2020-07-28 | 2020-10-30 | 中国建设银行股份有限公司 | 云计算产品的生成方法、装置、设备及存储介质 |
CN112328359A (zh) * | 2020-10-30 | 2021-02-05 | 烽火通信科技股份有限公司 | 避免容器集群启动拥塞的调度方法和容器集群管理平台 |
CN112650662A (zh) * | 2019-10-10 | 2021-04-13 | 上海哔哩哔哩科技有限公司 | 测试环境部署方法及装置 |
CN113721930A (zh) * | 2020-05-26 | 2021-11-30 | 网神信息技术(北京)股份有限公司 | 部署应用程序的方法、装置、设备、介质和程序产品 |
-
2019
- 2019-06-06 CN CN201910493398.XA patent/CN110221845A/zh not_active Withdrawn
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112650662A (zh) * | 2019-10-10 | 2021-04-13 | 上海哔哩哔哩科技有限公司 | 测试环境部署方法及装置 |
CN111399855A (zh) * | 2020-03-09 | 2020-07-10 | 山东汇贸电子口岸有限公司 | 一种基于容器技术的自动化应用实例发布方法 |
CN111399855B (zh) * | 2020-03-09 | 2023-10-20 | 山东省电子口岸有限公司 | 一种基于容器技术的自动化应用实例发布方法 |
CN113721930A (zh) * | 2020-05-26 | 2021-11-30 | 网神信息技术(北京)股份有限公司 | 部署应用程序的方法、装置、设备、介质和程序产品 |
CN111796801A (zh) * | 2020-06-30 | 2020-10-20 | 中国工商银行股份有限公司 | 基于容器的应用版本自动化构建方法及*** |
CN111796801B (zh) * | 2020-06-30 | 2023-08-11 | 中国工商银行股份有限公司 | 基于容器的应用版本自动化构建方法及*** |
CN111857736A (zh) * | 2020-07-28 | 2020-10-30 | 中国建设银行股份有限公司 | 云计算产品的生成方法、装置、设备及存储介质 |
CN111857736B (zh) * | 2020-07-28 | 2024-03-08 | 中国建设银行股份有限公司 | 云计算产品的生成方法、装置、设备及存储介质 |
CN112328359A (zh) * | 2020-10-30 | 2021-02-05 | 烽火通信科技股份有限公司 | 避免容器集群启动拥塞的调度方法和容器集群管理平台 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110221845A (zh) | 应用部署方法、装置、设备和介质 | |
US10635473B2 (en) | Setting support program, setting support method, and setting support device | |
US9811356B2 (en) | Automated software configuration management | |
CN108492005B (zh) | 项目数据处理方法、装置、计算机设备和存储介质 | |
US9612942B2 (en) | Verification of a computer program in respect to an unexpected response to an access request | |
JP2021509498A (ja) | コンピューティング・デバイス | |
US10223218B2 (en) | Disaster recovery of managed systems | |
CN106874028A (zh) | 应用部署方法和装置 | |
CN108964993A (zh) | 基于动态代理的故障模拟方法、装置、设备及可读存储介质 | |
CN110134612A (zh) | Ui测试数据生成方法、装置、设备及可读存储介质 | |
CN111831567B (zh) | 应用的测试环境配置方法、装置、***和介质 | |
CN111967022A (zh) | 安全漏洞修复方法和装置 | |
CN111522744A (zh) | 业务测试方法、装置及计算机可读存储介质 | |
CN111708545B (zh) | 业务流程的部署方法、装置、电子设备及存储介质 | |
CN112835639A (zh) | 一种Hook实现方法、装置、设备、介质及产品 | |
US20200117572A1 (en) | Problem diagnosis technique of memory corruption based on regular expression generated during application compiling | |
US11656888B2 (en) | Performing an application snapshot using process virtual machine resources | |
CN106875184A (zh) | 异常场景模拟方法、装置及设备 | |
Schmieders et al. | Architectural runtime models for privacy checks of cloud applications | |
CN115080382A (zh) | 一种代码测试方法、装置、设备及介质 | |
CN114443065A (zh) | 平台部署方法、装置、电子设备和存储介质 | |
CN104978214B (zh) | 一种组件加载方法、装置及终端 | |
CN113704016B (zh) | 云功能组件诊断方法、装置、设备、存储介质 | |
CN113407445B (zh) | 端到端自动化测试方法、装置及电子设备 | |
CN115955409A (zh) | 一种变更编排方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190910 |