CN112363731A - 一种应用自动化部署方法、装置和计算机可读存储介质 - Google Patents

一种应用自动化部署方法、装置和计算机可读存储介质 Download PDF

Info

Publication number
CN112363731A
CN112363731A CN202011253055.5A CN202011253055A CN112363731A CN 112363731 A CN112363731 A CN 112363731A CN 202011253055 A CN202011253055 A CN 202011253055A CN 112363731 A CN112363731 A CN 112363731A
Authority
CN
China
Prior art keywords
application
deployment
target server
calling
execute
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.)
Pending
Application number
CN202011253055.5A
Other languages
English (en)
Inventor
徐伟
陶金龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Flying To Cloud Mdt Infotech Ltd
Original Assignee
Hangzhou Flying To Cloud Mdt Infotech Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Flying To Cloud Mdt Infotech Ltd filed Critical Hangzhou Flying To Cloud Mdt Infotech Ltd
Priority to CN202011253055.5A priority Critical patent/CN112363731A/zh
Publication of CN112363731A publication Critical patent/CN112363731A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

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

本发明实施方式公开了一种应用自动化部署方法、装置和计算机可读存储介质。方法包括:调用运维自动化工具初始化目标服务器,其中初始化过程包括:目标服务器从制品库下载并解压基于CodeDeploy规范所设置的应用部署包,所述应用部署包包括应用安装文件、定义有应用部署过程所包含的各个生命周期的执行顺序的应用规范文件以及各个生命周期的脚本,其中所述生命周期不包含下载应用部署包(DownloadBundle);调用运维自动化工具从目标服务器获取应用规范文件以及对应于各个生命周期的脚本;根据执行顺序,分别调用运维自动化工具以控制目标服务器分别执行各个生命周期的脚本,从而完成应用部署过程。无需代理即可完成应用的自动化部署。

Description

一种应用自动化部署方法、装置和计算机可读存储介质
技术领域
本发明涉及信息技术领域,更具体的说,涉及一种应用自动化部署方法、装置和计算机可读存储介质。
背景技术
云环境下应用自动化部署是当前云计算研究领域的热点问题,是现有应用向云平台上迁移的前提,具有重要的理论意义和使用价值。如何自动化地安装、部署和配置用户应用环境所依赖的操作系统、数据库、中间件及其他应用程序是当前该领域的研究热点。
目前,在云环境下的应用自动化部署方案中,一般需要在目标服务器上安装代理程序,通过向代理程序发送部署指令来实现应用部署。
然而,由于需要安装额外的代理程序,在一定程序上会存在安全风险,代理程序运行时所需的依赖条件也存在和用户应用运行时环境相冲突的情况。
发明内容
本发明提出一种应用自动化部署方法、装置和计算机可读存储介质,无需在目标服务器安装代理程序即可实现自动化部署。
本发明实施方式的技术方案如下:
一种应用自动化部署方法,包括:
调用运维自动化工具初始化目标服务器,其中所述初始化过程包括:目标服务器从制品库下载并解压基于CodeDeploy规范所设置的应用部署包,所述应用部署包包括应用安装文件、定义有应用部署过程所包含的各个生命周期的执行顺序的应用规范文件以及各个生命周期的脚本,其中所述生命周期不包含下载应用部署包DownloadBundle;
调用所述运维自动化工具从所述目标服务器获取所述应用规范文件以及所述对应于各个生命周期的脚本;
根据所述执行顺序,分别调用所述运维自动化工具以控制目标服务器分别执行所述各个生命周期的脚本,从而完成所述应用部署过程。
在一个实施方式中,所述目标服务器的数目为多个,且所述多个的目标服务器分别位于单个云环境的不同子网中,或所述多个的目标服务器位于多个云环境的不同子网中。
在一个实施方式中,所述根据所述执行顺序,分别调用所述运维自动化工具以控制目标服务器分别执行所述各个生命周期的脚本包括:
调用运维自动化工具控制目标服务器执行应用停止ApplicationStop脚本;
调用运维自动化工具控制目标服务器执行应用安装前BeforeInstall脚本;
调用运维自动化工具控制目标服务器执行应用部署Install脚本;
调用运维自动化工具控制目标服务器执行应用部署后AfterInstall脚本;
调用运维自动化工具控制目标服务器执行应用启动ApplicaitonStart脚本;
调用运维自动化工具控制目标服务器执行验证服务ValidateService脚本。
在一个实施方式中,所述运维自动化工具为Ansible;所述应用规范文件为appspec.yml文件;所述制品库包括下列中的至少一个:Nexus;Habbor;Artifactory。
一种应用自动化部署装置,包括:
初始化模块,用于调用运维自动化工具初始化目标服务器,其中所述初始化过程包括:目标服务器从制品库下载并解压基于CodeDeploy规范所设置的应用部署包,所述应用部署包包括应用安装文件、定义有应用部署过程所包含的各个生命周期的执行顺序的应用规范文件以及各个生命周期的脚本,其中所述生命周期不包含下载应用部署包DownloadBundle;
获取模块,用于调用所述运维自动化工具从所述目标服务器获取所述应用规范文件以及所述对应于各个生命周期的脚本;
执行模块,用于根据所述执行顺序,分别调用所述运维自动化工具以控制目标服务器分别执行所述各个生命周期的脚本,从而完成所述应用部署过程。
在一个实施方式中,所述目标服务器的数目为多个,且所述多个的目标服务器分别位于单个云环境的不同子网中,或所述多个的目标服务器位于多个云环境的不同子网中。
在一个实施方式中,执行模块,用于:
调用运维自动化工具控制目标服务器执行应用停止ApplicationStop脚本;
调用运维自动化工具控制目标服务器执行应用安装前BeforeInstall脚本;
调用运维自动化工具控制目标服务器执行应用部署Install脚本;
调用运维自动化工具控制目标服务器执行应用部署后AfterInstall脚本;
调用运维自动化工具控制目标服务器执行应用启动ApplicaitonStart脚本;
调用运维自动化工具控制目标服务器执行验证服务ValidateService脚本。
所述运维自动化工具为Ansible;所述应用规范文件为appspec.yml文件;所述制品库包括下列中的至少一个:Nexus;Habbor;Artifactory。
一种应用自动化部署装置,包括:存储器;处理器;其中所述存储器中存储有可被所述处理器执行的应用程序,用于使得所述处理器执行如上任一项所述的应用自动化部署方法。
一种计算机可读存储介质,其中存储有计算机可读指令,该计算机可读指令用于执行如上任一项所述的应用自动化部署方法。
从上述技术方案可以看出,在本发明实施方式中,调用运维自动化工具初始化目标服务器,其中初始化过程包括:目标服务器从制品库下载并解压基于CodeDeploy规范所设置的应用部署包,所述应用部署包包括应用安装文件、定义有应用部署过程所包含的各个生命周期的执行顺序的应用规范文件以及各个生命周期的脚本,其中所述生命周期不包含下载应用部署包DownloadBundle;调用所述运维自动化工具从所述目标服务器获取所述应用规范文件以及所述对应于各个生命周期的脚本;根据所述执行顺序,分别调用所述运维自动化工具以控制目标服务器分别执行所述各个生命周期的脚本,从而完成所述应用部署过程。因此,通过将用于下载应用程序部署包的DownloadBundle环节提前至部署之前的初始化阶段,无需代理即可完成应用的自动化部署。
而且,本发明实施方式支持各类异构环境,包括多云环境、物理机环境、虚拟化环境等;支持各类语言、各类操作系统下的应用部署。
附图说明
图1为根据本发明实施方式的应用自动化部署方法的流程图。
图2为根据本发明实施方式的应用自动化部署方法的概略示意图。
图3为根据本发明实施方式的Ansible通过网络代理实现网络连接的示意图。
图4为根据本发明实施方式的应用自动化部署的示范性流程图。
图5为根据本发明的应用自动化部署装置的结构图。
图6为根据本发明具有存储器-处理器架构的、应用自动化部署装置的结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
为了描述上的简洁和直观,下文通过描述若干代表性的实施方式来对本发明的方案进行阐述。实施方式中大量的细节仅用于帮助理解本发明的方案。但是很明显,本发明的技术方案实现时可以不局限于这些细节。为了避免不必要地模糊了本发明的方案,一些实施方式没有进行细致地描述,而是仅给出了框架。下文中,“包括”是指“包括但不限于”,“根据……”是指“至少根据……,但不限于仅根据……”。由于汉语的语言习惯,下文中没有特别指出一个成分的数量时,意味着该成分可以是一个也可以是多个,或可理解为至少一个。
申请人发现:在诸多现有的应用部署方案中,AWS的CodeDeploy部署规范,具备成熟完备、灵活可配、易于落地、易于部署、覆盖平台广等特点,本发明实施方式遵循CodeDeploy规范,设计了一套不依赖于AWS环境,不需要安装代理程序的多云环境下的应用自动化部署方案。
图1为根据本发明实施方式的应用自动化部署方法的流程图。
如图1所示,该方法包括:
步骤101:调用运维自动化工具初始化目标服务器,其中所述初始化过程包括:目标服务器从制品库下载并解压基于CodeDeploy规范所设置的应用部署包,所述应用部署包包括应用安装文件、定义有应用部署过程所包含的各个生命周期的执行顺序的应用规范文件以及各个生命周期的脚本,其中所述生命周期不包含下载应用部署包DownloadBundle。
步骤102:调用所述运维自动化工具从所述目标服务器获取所述应用规范文件以及所述对应于各个生命周期的脚本。
步骤103:根据所述执行顺序,分别调用所述运维自动化工具以控制目标服务器分别执行所述各个生命周期的脚本,从而完成所述应用部署过程。
在一个实施方式中,所述目标服务器的数目为多个,且所述多个的目标服务器分别位于单个云环境的不同子网中,或所述多个的目标服务器位于多个云环境的不同子网中。图3为根据本发明实施方式的Ansible通过网络代理实现网络连接的示意图。
在一个实施方式中,分别调用运维自动化工具以控制目标服务器分别按照下列顺序,分别执行各个生命周期的脚本,包括:
(1)、自动化工具控制目标服务器执行应用停止ApplicationStop脚本;
(2)、自动化工具控制目标服务器执行应用安装前BeforeInstall脚本;
(3)、自动化工具控制目标服务器执行应用部署Install脚本;
(4)、自动化工具控制目标服务器执行应用部署后AfterInstall脚本;
(5)、自动化工具控制目标服务器执行应用启动ApplicaitonStart脚本;
(6)、自动化工具控制目标服务器执行验证服务ValidateService脚本。
在一个实施方式中,所述运维自动化工具为Ansible;所述应用规范文件为appspec.yml文件;所述制品库包括下列中的至少一个:Nexus;Habbor;Artifactory。
其中:Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是Ansible所运行的模块,Ansible只是提供一种框架。主要包括:(1)、连接插件connection plugins:负责和被监控端实现通信;(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;(3)、各种模块核心模块、command模块、自定义模块;(4)、借助于插件完成记录日志邮件等功能;(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。
appspec.yml是YAML格式、用于定义CodeDeploy服务在整个阶段所做的操作和文件拷贝路径和权限等。首先,这个文档名称必须是appspec.yml,而且文档中的空格个数也有严格的要求。
图2为根据本发明实施方式的应用自动化部署方法的概略示意图。
在本发明实施方式中,首先遵循AWS CodeDeploy部署规范,将每个部署作为在文件中定义的一系列生命周期事件挂钩进行管理。其次,在CI平台上设置好代码版本管理平台对应工程的构建任务,监听应用程序的代码变化,自动将应用程序打包成标准的应用部署包。再次,将打包好的应用部署包上传到对应的制品库(如Nexus等)进行应用的版本管理。最后,通过Ansible将应用部署包部署到指定的目标器上。
具体地:
(一):CodeDeploy规范化过程中:
在需要做自动化部署的应用工程中,加入CodeDeploy规范所需的相关配置文件。CodeDeploy将整个应用部署的过程分为几个生命周期,分别是:
(1)、ApplicationStop-应用停止,用于在部署应用前将正在运行的应用进行保存处理等操作
(2)、DownloadBundle-下载应用部署包,用户不可介入操作
(3)、BeforeInstall-安装应用前,用于在部署应用前做一些应用部署的初始化操作
(4)、Install-应用部署,将应用安装包拷贝到指定路径下
(5)、AfterInstall-应用部署后,用于在应用安装完成后,执行一些应用的配置操作
(6)、ApplicationStart-应用启动,用于在部署后执行一些应用启动等操作
(7)、ValidateService-验证服务,用于验证应用部署是否成功
按照CodeDeploy规范,定义好appspec.yml文件,编写好在应用部署各个生命周期需要执行的脚本,与应用程序源码工程一起上传到代码版本管理平台,如Git、SVN等。由于CodeDeploy规范本身并不与具体的应用运行环境相关,所以可以很好的适应各类语言开发的,各种运行环境的应用部署任务。
(二:应用自动化构建过程:
利用Jenkins等CI工具,创建应用自动化构建任务。可以在构建任务中设置定时轮询、WebHook触发等方式来监听应用代码的变化。
在构建任务中,可以根据应用程序自身的需要,添加各类预处理脚本,如添加应用安装包的版本信息等,辅助完成应用程序的打包。
(三):应用安装包管理过程:
在完成了应用安装包的打包过程后,需要通过CI工具将构建好的安装包上传到专门的制品库中,用作应用程序的版本管理。在制品库中可以存放多个应用的不同版本安装包,在某些应用版本部署出现问题的时候,还可以指定到稳定的版本进行回退,避免服务的终止。
(四):应用自动化部署过程:
此步骤是本发明实施方式中最为复杂的一步。目前,AWS通过其在目标服务器上安装的CodeDeploy代理来实现整个应用部署的过程。如上所述,由于需要安装额外的代理程序,在一定程序上会存在安全风险,代理程序运行时所需的依赖条件也存在和用户应用运行时环境相冲突的情况。
不同的是,本发明实施方式利用Ansible替代代理程序。Ansible可以通过SSH等协议主动向目标服务器发起指令。对于互不相同的不同网络环境下的目标服务器,Ansible可以通过网络代理实现网络的连通。另外,为了适应Ansible的调用方式,本发明实施方式还变更了CodeDeploy规范定义的生命周期中用户不可介入操作的部分。尤其是:将用于下载应用程序部署包的DownloadBundle环节提前至部署之前的初始化阶段。具体步骤如下:(1)、在目标服务器上创建临时目录,用来存放即将部署的应用程序安装包;(2)、下载应用程序安装包到临时目录;(3)、解压应用程序安装包;(4)、校验应用程序安装包中的appspec.yml文件是否合规。在上述步骤完成后,即可开始执行具体的CodeDeploy应用部署过程。
可见,在本发明实施方式中由于在初始化阶段已经将应用程序安装包中的appspec.yml文件解压出来,可以通过Ansible获取到已经解压出来的appspec.yml文件内容,将appspec.yml文件里定义的若干个生命周期的处理方式提取出来,按顺序分为数个执行步骤,通过Ansible依次向目标机器发送部署指定,从而完成CodeDeploy生命周期的可介入环节部署任务。
图4为根据本发明实施方式的应用自动化部署的示范性流程图。
在图4中,DevOps管理中心与Ansible可以集成到一个服务器中。该方法包括:
步骤1:DevOps管理中心调用Ansible对目标服务器执行初始化处理。
步骤2:Ansible向目标服务器发送处理后指令。
步骤3:目标服务器创建临时目录。
步骤4:目标服务器从制品库下载应用部署包,应用部署包包括应用安装文件、定义有应用部署过程所包含的各个生命周期的执行顺序的应用规范文件(appspec.yml文件)以及各个生命周期的脚本,其中所述生命周期不包含下载应用部署包DownloadBundle。
步骤5:制品库向目标服务器返回应用部署包。
步骤6:目标服务器解压应用部署包到临时目录,并且校验其中的appspec.yml文件。
步骤7:目标服务器通知Ansible初始化完成。
步骤8:Ansible通知DevOps管理中心初始化完成。
步骤9:DevOps管理中心向Ansible请求appspec.yml文件。
步骤10:Ansible向目标服务器请求appspec.yml文件。
步骤11:目标服务器向Ansible返回appspec.yml文件。
步骤12:Ansible向DevOps管理中心返回appspec.yml文件。
步骤13:DevOps管理中心发现appspec.yml文件中的各个生命周期的第一个执行顺序是ApplicationStop,向Ansible请求执行ApplicationStop。
步骤14:Ansible指令目标服务器执行ApplicationStop脚本,从而停止原有应用程序及执行相关的关闭操作。
步骤15:目标服务器告知Ansible执行完毕。
步骤16:Ansible告知DevOps管理中心执行完毕。
步骤17:DevOps管理中心发现appspec.yml文件中的各个生命周期的第二个执行顺序是BeforeInstall,向Ansible请求执行BeforeInstall。
步骤18:Ansible指令目标服务器执行BeforeInstall脚本,从而执行应用部署前相关配置操作。
步骤19:目标服务器告知Ansible执行完毕。
步骤20:Ansible告知DevOps管理中心执行完毕。
步骤21:DevOps管理中心发现appspec.yml文件中的各个生命周期的第三个执行顺序是Install,向Ansible请求执行Install。
步骤22:Ansible指令目标服务器停执行Install脚本。从而应用安装文件放置到指定路径。
步骤23:目标服务器告知Ansible执行完毕。
步骤24:Ansible告知DevOps管理中心执行完毕。
步骤25:DevOps管理中心发现appspec.yml文件中的各个生命周期的第四个执行顺序是AfterInstall,向Ansible请求执行AfterInstall。
步骤26:Ansible指令目标服务器执行AfterInstall脚本,从而执行应用部署后的相关配置操作。
步骤27:目标服务器告知Ansible执行完毕。
步骤28:Ansible告知DevOps管理中心执行完毕。
步骤29:DevOps管理中心发现appspec.yml文件中的各个生命周期的第五个执行顺序是ApplicationStart,向Ansible请求执行ApplicationStart。
步骤30:Ansible指令目标服务器执行ApplicationStart脚本,从而执行应用启动相关操作。
步骤31:目标服务器告知Ansible执行完毕。
步骤32:Ansible告知DevOps管理中心执行完毕。
步骤33:DevOps管理中心发现appspec.yml文件中的各个生命周期的第六个执行顺序是ValidateService,向Ansible请求执行ValidateService。
步骤34:Ansible指令目标服务器执行ValidateService脚本,从而执行应用程序服务验证相关操作。
步骤35:目标服务器告知Ansible执行完毕。
步骤36:Ansible告知DevOps管理中心执行完毕。
图5为根据本发明的应用自动化部署装置的结构图。
如图5所示,应用自动化部署装置包括:
初始化模块501,用于调用运维自动化工具初始化目标服务器,其中所述初始化过程包括:目标服务器从制品库下载并解压基于CodeDeploy规范所设置的应用部署包,所述应用部署包包括应用安装文件、定义有应用部署过程所包含的各个生命周期的执行顺序的应用规范文件以及各个生命周期的脚本,其中所述生命周期不包含下载应用部署包DownloadBundle;
获取模块502,用于调用所述运维自动化工具从所述目标服务器获取所述应用规范文件以及所述对应于各个生命周期的脚本;
执行模块503,用于根据所述执行顺序,分别调用所述运维自动化工具以控制目标服务器分别执行所述各个生命周期的脚本,从而完成所述应用部署过程。
在一个实施方式中,所述目标服务器的数目为多个,且所述多个的目标服务器分别位于单个云环境的不同子网中,或所述多个的目标服务器位于多个云环境的不同子网中。
在一个实施方式中,执行模块503,用于:调用运维自动化工具控制目标服务器执行应用停止ApplicationStop脚本;调用运维自动化工具控制目标服务器执行应用安装前BeforeInstall脚本;调用运维自动化工具控制目标服务器执行应用部署Install脚本;调用运维自动化工具控制目标服务器执行应用部署后AfterInstall脚本;调用运维自动化工具控制目标服务器执行应用启动ApplicaitonStart脚本;调用运维自动化工具控制目标服务器执行验证服务ValidateService脚本。
图6为根据本发明具有存储器-处理器架构的、应用自动化部署装置的结构图。
如图6所示,具有存储器-处理器架构的应用自动化部署装置包括:处理器601和存储器602;其中存储器602中存储有可被处理器601执行的应用程序,用于使得处理器601执行如上任一项所述的应用自动化部署方法。
其中,存储器602具体可以实施为电可擦可编程只读存储器(EEPROM)、快闪存储器(Flash memory)、可编程程序只读存储器(PROM)等多种存储介质。处理器401可以实施为包括一或多个中央处理器或一或多个现场可编程门阵列,其中现场可编程门阵列集成一或多个中央处理器核。具体地,中央处理器或中央处理器核可以实施为CPU或MCU。
综上所述,在本发明实施方式中,调用运维自动化工具初始化目标服务器,其中初始化过程包括:目标服务器从制品库下载并解压基于CodeDeploy规范所设置的应用部署包,所述应用部署包包括应用安装文件、定义有应用部署过程所包含的各个生命周期的执行顺序的应用规范文件以及各个生命周期的脚本,其中所述生命周期不包含下载应用部署包DownloadBundle;调用所述运维自动化工具从所述目标服务器获取所述应用规范文件以及所述对应于各个生命周期的脚本;根据所述执行顺序,分别调用所述运维自动化工具以控制目标服务器分别执行所述各个生命周期的脚本,从而完成所述应用部署过程。因此,通过将用于下载应用程序部署包的DownloadBundle环节提前至部署之前的初始化阶段,无需代理即可完成应用的自动化部署。
而且,本发明实施方式支持各类异构环境,包括多云环境、物理机环境、虚拟化环境等;支持各类语言、各类操作系统下的应用部署。
需要说明的是,上述各流程和各结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。各模块的划分仅仅是为了便于描述采用的功能上的划分,实际实现时,一个模块可以分由多个模块实现,多个模块的功能也可以由同一个模块实现,这些模块可以位于同一个设备中,也可以位于不同的设备中。
各实施方式中的硬件模块可以以机械方式或电子方式实现。例如,一个硬件模块可以包括专门设计的永久性电路或逻辑器件(如专用处理器,如FPGA或ASIC)用于完成特定的操作。硬件模块也可以包括由软件临时配置的可编程逻辑器件或电路(如包括通用处理器或其它可编程处理器)用于执行特定操作。至于具体采用机械方式,或是采用专用的永久性电路,或是采用临时配置的电路(如由软件进行配置)来实现硬件模块,可以根据成本和时间上的考虑来决定。
本发明还提供了一种机器可读的存储介质,存储用于使一机器执行如本发明实施方式所述方法的指令。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施方式中任一实施方式的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。此外,还可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作。还可以将从存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施方式中任一实施方式的功能。
用于提供程序代码的存储介质实施方式包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种应用自动化部署方法,其特征在于,包括:
调用运维自动化工具初始化目标服务器,其中所述初始化过程包括:目标服务器从制品库下载并解压基于CodeDeploy规范所设置的应用部署包,所述应用部署包包括应用安装文件、定义有应用部署过程所包含的各个生命周期的执行顺序的应用规范文件以及各个生命周期的脚本,其中所述生命周期不包含下载应用部署包DownloadBundle;
调用所述运维自动化工具从所述目标服务器获取所述应用规范文件以及所述对应于各个生命周期的脚本;
根据所述执行顺序,分别调用所述运维自动化工具以控制目标服务器分别执行所述各个生命周期的脚本,从而完成所述应用部署过程。
2.根据权利要求1所述的应用自动化部署方法,其特征在于,所述目标服务器的数目为多个,且所述多个的目标服务器分别位于单个云环境的不同子网中,或所述多个的目标服务器位于多个云环境的不同子网中。
3.根据权利要求1所述的应用自动化部署方法,其特征在于,
所述根据所述执行顺序,分别调用所述运维自动化工具以控制目标服务器分别执行所述各个生命周期的脚本包括:
调用运维自动化工具控制目标服务器执行应用停止ApplicationStop脚本;
调用运维自动化工具控制目标服务器执行应用安装前BeforeInstall脚本;
调用运维自动化工具控制目标服务器执行应用部署Install脚本;
调用运维自动化工具控制目标服务器执行应用部署后AfterInstall脚本;
调用运维自动化工具控制目标服务器执行应用启动ApplicaitonStart脚本;
调用运维自动化工具控制目标服务器执行验证服务ValidateService脚本。
4.根据权利要求1所述的应用自动化部署方法,其特征在于,所述运维自动化工具为Ansible;所述应用规范文件为appspec.yml文件;所述制品库包括下列中的至少一个:Nexus;Habbor;Artifactory。
5.一种应用自动化部署装置,其特征在于,包括:
初始化模块,用于调用运维自动化工具初始化目标服务器,其中所述初始化过程包括:目标服务器从制品库下载并解压基于CodeDeploy规范所设置的应用部署包,所述应用部署包包括应用安装文件、定义有应用部署过程所包含的各个生命周期的执行顺序的应用规范文件以及各个生命周期的脚本,其中所述生命周期不包含下载应用部署包DownloadBundle;
获取模块,用于调用所述运维自动化工具从所述目标服务器获取所述应用规范文件以及所述对应于各个生命周期的脚本;
执行模块,用于根据所述执行顺序,分别调用所述运维自动化工具以控制目标服务器分别执行所述各个生命周期的脚本,从而完成所述应用部署过程。
6.根据权利要求5所述的应用自动化部署装置,其特征在于,所述目标服务器的数目为多个,且所述多个的目标服务器分别位于单个云环境的不同子网中,或所述多个的目标服务器位于多个云环境的不同子网中。
7.根据权利要求5所述的应用自动化部署装置,其特征在于,
执行模块,用于:
调用运维自动化工具控制目标服务器执行应用停止ApplicationStop脚本;
调用运维自动化工具控制目标服务器执行应用安装前BeforeInstall脚本;
调用运维自动化工具控制目标服务器执行应用部署Install脚本;
调用运维自动化工具控制目标服务器执行应用部署后AfterInstall脚本;
调用运维自动化工具控制目标服务器执行应用启动ApplicaitonStart脚本;
调用运维自动化工具控制目标服务器执行验证服务ValidateService脚本。
8.根据权利要求5所述的应用自动化部署装置,其特征在于,所述运维自动化工具为Ansible;所述应用规范文件为appspec.yml文件;所述制品库包括下列中的至少一个:Nexus;Habbor;Artifactory。
9.一种应用自动化部署装置,其特征在于,包括:存储器;处理器;其中所述存储器中存储有可被所述处理器执行的应用程序,用于使得所述处理器执行如权利要求1至4中任一项所述的应用自动化部署方法。
10.一种计算机可读存储介质,其特征在于,其中存储有计算机可读指令,该计算机可读指令用于执行如权利要求1至4中任一项所述的应用自动化部署方法。
CN202011253055.5A 2020-11-11 2020-11-11 一种应用自动化部署方法、装置和计算机可读存储介质 Pending CN112363731A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011253055.5A CN112363731A (zh) 2020-11-11 2020-11-11 一种应用自动化部署方法、装置和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011253055.5A CN112363731A (zh) 2020-11-11 2020-11-11 一种应用自动化部署方法、装置和计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN112363731A true CN112363731A (zh) 2021-02-12

Family

ID=74515876

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011253055.5A Pending CN112363731A (zh) 2020-11-11 2020-11-11 一种应用自动化部署方法、装置和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112363731A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113242147A (zh) * 2021-05-17 2021-08-10 上海八彦图信息科技有限公司 多云环境的自动化运维部署方法、装置、设备和存储介质
CN113515288A (zh) * 2021-04-26 2021-10-19 中国工商银行股份有限公司 基于发布单元的自动化部署方法及装置
CN114610327A (zh) * 2022-02-15 2022-06-10 北京结慧科技有限公司 一种自动化发布和部署方法、装置、介质及计算机设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108829409A (zh) * 2018-06-20 2018-11-16 泰华智慧产业集团股份有限公司 一种分布式系统快速部署方法及系统
CN110543326A (zh) * 2019-08-27 2019-12-06 山东浪潮人工智能研究院有限公司 一种基于区块链的DevOps智能运维方法
CN110795108A (zh) * 2019-09-18 2020-02-14 国网江苏省电力有限公司 一种基于Ansible编排部署Weblogic应用的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108829409A (zh) * 2018-06-20 2018-11-16 泰华智慧产业集团股份有限公司 一种分布式系统快速部署方法及系统
CN110543326A (zh) * 2019-08-27 2019-12-06 山东浪潮人工智能研究院有限公司 一种基于区块链的DevOps智能运维方法
CN110795108A (zh) * 2019-09-18 2020-02-14 国网江苏省电力有限公司 一种基于Ansible编排部署Weblogic应用的方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
刘佳等: "基于Ansible的自动化部署与运维", 《河南科技》 *
卢杨: "基于Ansible和CodeDeploy的DevOps解决方案", 《HTTPS://WWW.SOHU.COM/A/424800845_120144445》 *
李强: "《Visual C++项目开发实践》", 31 July 2003, 中国铁道出版社 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113515288A (zh) * 2021-04-26 2021-10-19 中国工商银行股份有限公司 基于发布单元的自动化部署方法及装置
CN113515288B (zh) * 2021-04-26 2024-02-23 中国工商银行股份有限公司 基于发布单元的自动化部署方法及装置
CN113242147A (zh) * 2021-05-17 2021-08-10 上海八彦图信息科技有限公司 多云环境的自动化运维部署方法、装置、设备和存储介质
CN113242147B (zh) * 2021-05-17 2023-09-12 上海八彦图信息科技有限公司 多云环境的自动化运维部署方法、装置、设备和存储介质
CN114610327A (zh) * 2022-02-15 2022-06-10 北京结慧科技有限公司 一种自动化发布和部署方法、装置、介质及计算机设备

Similar Documents

Publication Publication Date Title
US20210349706A1 (en) Release lifecycle management system for multi-node application
US11599348B2 (en) Container image building using shared resources
CN108847950B (zh) 电子装置、云系统软件自动部署方法及存储介质
CN112363731A (zh) 一种应用自动化部署方法、装置和计算机可读存储介质
US10846073B2 (en) Methods, apparatuses, terminals, servers, and systems for container generation
EP2696532A2 (en) Method, server and system for starting application
CN108733553B (zh) 基于docker的测试装置的配置方法、装置和系统
US20100162227A1 (en) Automation of Mainframe Software Deployment
WO2021022713A1 (zh) 分布式的模块升级方法、装置及存储介质
WO2017041499A1 (zh) 一种软件升级方法、系统和计算机可读存储介质
CN109086051B (zh) 应用组件部署方法、装置及计算机存储介质
CN110673923A (zh) Xwiki系统配置方法、系统及计算机设备
CN112860282A (zh) 集群插件的升级方法、装置和服务器
US20180150288A1 (en) Win32 software distribution architecture
CN113127009A (zh) 大数据管理平台的自动化部署方法和装置
CN114490103A (zh) 一种操作系统接口调用方法、装置以及电子设备
CN114546819A (zh) 代码处理方法、装置、电子设备及可读介质
EP3734445A1 (en) Secure and reliable remote update of a control device in an elevator
CN114253552B (zh) 可编程的边缘设备自适配方法和装置
CN114003250A (zh) 一种软件部署方法及装置
CN118170420A (zh) 一种代码管理方法、系统及计算设备
US20200034128A1 (en) Application component deployment sequences
CN114237649A (zh) 代码检测方法、装置、电子设备及程序产品
CN118113308A (zh) 一种代码自动化部署方法、系统、服务器及存储介质
CN115658099A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210212

RJ01 Rejection of invention patent application after publication