CN111596928A - 一种应用控制方法、装置及电子设备 - Google Patents
一种应用控制方法、装置及电子设备 Download PDFInfo
- Publication number
- CN111596928A CN111596928A CN202010424979.0A CN202010424979A CN111596928A CN 111596928 A CN111596928 A CN 111596928A CN 202010424979 A CN202010424979 A CN 202010424979A CN 111596928 A CN111596928 A CN 111596928A
- Authority
- CN
- China
- Prior art keywords
- mirror image
- user
- application
- application program
- service
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000012360 testing method Methods 0.000 claims description 99
- 230000002452 interceptive effect Effects 0.000 claims description 26
- 230000004044 response Effects 0.000 claims description 8
- 238000012217 deletion Methods 0.000 claims description 5
- 230000037430 deletion Effects 0.000 claims description 5
- 230000003993 interaction Effects 0.000 abstract description 13
- 238000012545 processing Methods 0.000 abstract description 7
- 230000001960 triggered effect Effects 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 20
- 230000006870 function Effects 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 4
- 238000011056 performance test Methods 0.000 description 4
- 238000011076 safety test Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000011990 functional testing Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 241000109539 Conchita Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software 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
本发明提供了一种应用控制方法、装置及电子设备,该方法中,预先为应用控制服务器配置了至少一个应用部署指令,应用控制服务器在接收到用户输入的应用程序部署请求之后,响应该应用程序部署请求,并在成功获取到目标镜像标识以及程序部署控制信息的情况下,调用应用程序创建指令,并运行,以创建得到应用程序,此后,设置应用程序的访问接口,以为用户提供服务。通过本发明,在上一步骤成功执行后,就会自动触发下一步骤的执行,即本发明在接收到用户输入的应用程序部署请求之后,能够实现应用程序的自动部署,不再需要多次接收用户输入的应用部署指令并执行,省去了后台多次接收并响应指令的操作,人机交互操作简单,并且减轻了后台处理负担。
Description
技术领域
本发明涉及应用控制领域,更具体的说,涉及一种应用控制方法、装置及电子设备。
背景技术
Docker是一种基于操作系统层面的虚拟化技术,利用Linux内核的资源分离机制和命名空间机制建立独立运行的容器。应用程序需要部署到Docker容器中,才可以实现正常运行,从而为用户提供相应的服务。
通常,将应用程序部署到Docker容器中,是通过人工不断输入应用部署指令,然后后台,如服务器不断响应指令的应用部署方式来进行应用部署,但是上述这种应用部署方式,需要多次人机交互,过程复杂,并且后台需要响应多个指令,会给后台造成运行负担。
发明内容
有鉴于此,本发明提供一种应用控制方法、装置及电子设备,以解决现有技术中,通过人工不断输入应用部署指令,然后后台不断响应指令的应用部署方式来进行应用部署,需要多次人机交互,过程复杂,并且后台需要响应多个指令,会给后台造成运行负担的问题。
为解决上述技术问题,本发明采用了如下技术方案:
一种应用控制方法,应用于应用控制服务器,所述应用控制服务器预先配置有至少一个应用控制指令;所述应用控制方法包括:
接收用户输入的应用程序部署请求;
响应所述应用程序部署请求,并获取用户选取的目标镜像标识以及用户输入的程序部署控制信息;获取用户选取的目标镜像标识,包括:在接收到用户通过预设web交互界面输入的基础镜像获取请求的情况下,响应所述基础镜像获取请求,并获取与所述基础镜像获取请求对应的基础镜像;在成功获取到所述基础镜像的情况下,接收用户输入的所述基础镜像的镜像命名数据,并创建与所述镜像命名数据对应的命名空间;在成功创建所述命名空间的情况下,接收用户输入的镜像创建请求;所述镜像创建请求包括用户输入的镜像创建控制信息;所述镜像创建控制信息用于对所述基础镜像进行调整;响应所述镜像创建请求,调用所有所述应用控制指令中的镜像创建指令,并运行,以依据所述镜像创建控制信息对所述基础镜像进行调整,得到自定义镜像,并依据所述命名空间设置所述自定义镜像的镜像标识;获取用户输入的所述自定义镜像的镜像标识,并作为目标镜像标识;
在成功获取到所述目标镜像标识以及所述程序部署控制信息的情况下,调用所有所述应用控制指令中的应用程序创建指令,并运行,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,创建得到与所述程序部署控制信息对应的应用程序;
在成功创建得到与所述程序部署控制信息对应的应用程序的情况下,设置所述应用程序的访问接口,以使所述应用程序通过所述访问接口为用户提供服务。
可选地,获取用户输入的所述自定义镜像的镜像标识,并作为目标镜像标识,包括:
获取用户权限,并在依据所述用户权限确定出用户具有应用程序部署权限的情况下,获取用户输入的所述自定义镜像的镜像标识,并作为目标镜像标识。
可选地,调用所有所述应用控制指令中的应用程序创建指令,并运行所述应用程序创建指令,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,创建得到与所述程序部署控制信息对应的应用程序,包括:
在依据所述程序部署控制信息确定出创建的应用程序为服务栈的情况下,依据预设服务创建优先级顺序以及所述程序部署控制信息,调用所有所述应用控制指令中的第一应用程序创建指令,并运行,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,依次创建得到与所述程序部署控制信息对应的所述服务栈中的每一服务,并将创建得到的每一所述服务组合得到应用程序;
在依据所述程序部署控制信息确定出创建的应用程序为单一服务的情况下,调用所有所述应用控制指令中的第二应用程序创建指令,并运行,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,创建得到与所述程序部署控制信息对应的独立服务,并作为一个应用程序。
可选地,设置所述应用程序的访问接口,包括:
设置所述应用程序中的每一服务的服务接口和域名。
可选地,在成功设置所述应用程序的访问接口之后,还包括:
在成功接收到用户输入的应用程序操作请求的情况下,调用所有所述应用控制指令中与所述应用程序操作请求对应的应用操作指令,并运行,以执行与所述应用程序操作请求对应的预设操作;所述预设操作至少包括删除、更新、重建和服务扩缩容中的任一项。
可选地,在成功设置所述应用程序的访问接口之后,还包括:
在成功接收到用户输入的测试指令的情况下,获取与所述测试指令对应的目标测试用例,并运行所述目标测试用例,以对所述测试指令中的指定应用程序或指定镜像进行测试;所述目标测试用例依据用户输入的测试流程数据生成。
一种应用控制装置,应用于应用控制服务器,所述应用控制服务器预先配置有至少一个应用控制指令;所述应用控制装置包括:
请求接收模块,用于接收用户输入的应用程序部署请求;
请求响应模块,用于响应所述应用程序部署请求,并获取用户选取的目标镜像标识以及用户输入的程序部署控制信息;所述请求响应模块包括:镜像获取子模块,用于在接收到用户通过预设web交互界面输入的基础镜像获取请求的情况下,响应所述基础镜像获取请求,并获取与所述基础镜像获取请求对应的基础镜像;命名空间设置子模块,用于在成功获取到所述基础镜像的情况下,接收用户输入的所述基础镜像的镜像命名数据,并创建与所述镜像命名数据对应的命名空间;创建请求接收子模块,用于在成功创建所述命名空间的情况下,接收用户输入的镜像创建请求;所述镜像创建请求包括用户输入的镜像创建控制信息;所述镜像创建控制信息用于对所述基础镜像进行调整;镜像创建子模块,用于响应所述镜像创建请求,调用所有所述应用控制指令中的镜像创建指令,并运行,以依据所述镜像创建控制信息对所述基础镜像进行调整,得到自定义镜像,并依据所述命名空间设置所述自定义镜像的镜像标识;标识获取子模块,用于获取用户输入的所述自定义镜像的镜像标识,并作为目标镜像标识;
程序创建模块,用于在成功获取到所述目标镜像标识以及所述程序部署控制信息的情况下,调用所有所述应用控制指令中的应用程序创建指令,并运行,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,创建得到与所述程序部署控制信息对应的应用程序;
接口设置模块,用于在成功创建得到与所述程序部署控制信息对应的应用程序的情况下,设置所述应用程序的访问接口,以使所述应用程序通过所述访问接口为用户提供服务。
可选地,所述标识获取子模块用于获取用户输入的所述自定义镜像的镜像标识,并作为目标镜像标识时,具体用于:
获取用户权限,并在依据所述用户权限确定出用户具有应用程序部署权限的情况下,获取用户输入的所述自定义镜像的镜像标识,并作为目标镜像标识。
可选地,所述程序创建模块具体用于:
在依据所述程序部署控制信息确定出创建的应用程序为服务栈的情况下,依据预设服务创建优先级顺序以及所述程序部署控制信息,调用所有所述应用控制指令中的第一应用程序创建指令,并运行,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,依次创建得到与所述程序部署控制信息对应的所述服务栈中的每一服务,并将创建得到的每一所述服务组合得到应用程序;
在依据所述程序部署控制信息确定出创建的应用程序为单一服务的情况下,调用所有所述应用控制指令中的第二应用程序创建指令,并运行,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,创建得到与所述程序部署控制信息对应的独立服务,并作为一个应用程序。
一种应用控制服务器,所述应用控制服务器预先配置有至少一个应用控制指令;所述应用控制服务器包括:存储器和处理器;
其中,所述存储器用于存储程序;
处理器调用程序并用于:
接收用户输入的应用程序部署请求;
响应所述应用程序部署请求,并获取用户选取的目标镜像标识以及用户输入的程序部署控制信息;获取用户选取的目标镜像标识,包括:在接收到用户通过预设web交互界面输入的基础镜像获取请求的情况下,响应所述基础镜像获取请求,并获取与所述基础镜像获取请求对应的基础镜像;在成功获取到所述基础镜像的情况下,接收用户输入的所述基础镜像的镜像命名数据,并创建与所述镜像命名数据对应的命名空间;在成功创建所述命名空间的情况下,接收用户输入的镜像创建请求;所述镜像创建请求包括用户输入的镜像创建控制信息;所述镜像创建控制信息用于对所述基础镜像进行调整;响应所述镜像创建请求,调用所有所述应用控制指令中的镜像创建指令,并运行,以依据所述镜像创建控制信息对所述基础镜像进行调整,得到自定义镜像,并依据所述命名空间设置所述自定义镜像的镜像标识;获取用户输入的所述自定义镜像的镜像标识,并作为目标镜像标识;
在成功获取到所述目标镜像标识以及所述程序部署控制信息的情况下,调用所有所述应用控制指令中的应用程序创建指令,并运行,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,创建得到与所述程序部署控制信息对应的应用程序;
在成功创建得到与所述程序部署控制信息对应的应用程序的情况下,设置所述应用程序的访问接口,以使所述应用程序通过所述访问接口为用户提供服务。
相较于现有技术,本发明具有以下有益效果:
本发明提供了一种应用控制方法、装置及电子设备,预先为应用控制服务器配置了至少一个应用部署指令,应用控制服务器在接收到用户输入的应用程序部署请求之后,就能够响应该应用程序部署请求,并获取用户选取的目标镜像标识以及用户输入的程序部署控制信息,在成功获取到所述目标镜像标识以及所述程序部署控制信息的情况下,调用所有所述应用控制指令中的应用程序创建指令,并运行所述应用程序创建指令,以下载所述目标镜像标识对应的目标镜像,基于所述目标镜像,创建得到与所述程序部署控制信息对应的应用程序,并在成功创建得到与所述程序部署控制信息对应的应用程序的情况下,设置所述应用程序的访问接口,以使所述应用程序通过所述访问接口为用户提供服务。通过本发明,在上一步骤成功执行后,就会自动触发下一步骤的执行,即本发明在接收到用户输入的应用程序部署请求之后,能够实现应用程序的自动部署,不再需要多次接收用户输入的应用部署指令并执行,省去了后台多次接收并响应指令的操作,人机交互操作简单,并且减轻了后台处理负担。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明提供的一种应用控制方法的方法流程图;
图2为本发明提供的另一种应用控制方法的方法流程图;
图3为本发明提供的一种服务状态机允许状态转换的示意图;
图4为本发明提供的一种应用控制装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
通常,将应用程序部署到Docker容器中,是通过人工不断输入应用部署指令,然后后台,如服务器不断响应指令的应用部署方式来进行应用部署,具体的,人工输入一个应用部署指令之后,后台响应该指令,然后显示指令运行结果,若成功,则人工继续输入下一个应用部署指令,并重复上述步骤,直至整个应用程序成功部署到Docker容器中。但是上述这种应用部署方式,需要多次人机交互,过程复杂,并且后台需要响应多个指令,会给后台造成运行负担。
为了解决上述问题,本发明提供了一种应用控制方法,预先为应用控制服务器配置了至少一个应用部署指令,应用控制服务器在接收到用户输入的应用程序部署请求之后,就能够响应该应用程序部署请求,并获取用户选取的目标镜像标识以及用户输入的程序部署控制信息,在成功获取到所述目标镜像标识以及所述程序部署控制信息的情况下,调用所有所述应用控制指令中的应用程序创建指令,并运行所述应用程序创建指令,以下载所述目标镜像标识对应的目标镜像,基于所述目标镜像,创建得到与所述程序部署控制信息对应的应用程序,并在成功创建得到与所述程序部署控制信息对应的应用程序的情况下,设置所述应用程序的访问接口,以使所述应用程序通过所述访问接口为用户提供服务。通过本发明,在上一步骤成功执行后,就会自动触发下一步骤的执行,即本发明在接收到用户输入的应用程序部署请求之后,能够实现应用程序的自动部署,不再需要多次接收用户输入的应用部署指令并执行,省去了后台多次接收并响应指令的操作,人机交互操作简单,并且减轻了后台处理负担。
需要说明的是,本实施例中的应用控制服务器可以是Docker集群中的web服务器,本实施例中的的web服务器预先配置有自动编写的应用程序部署流程,即下述的步骤S11-步骤S14。并且还预先配置有至少一个应用控制指令,如可以是docker build命令、dockertag/docker push命令、docker import/docker load命令、docker service create命令、docker stack deploy命令、docker service rm(删除一个或多个服务)、docker serviceupdate(更新服务)、docker service scale(缩放一个或多个复制服务)等命令。在执行应用程序部署流程时,会自动调用相应的应用控制指令。
具体的,参照图1,应用控制方法可以包括:
S11、接收用户输入的应用程序部署请求。
在实际应用中,全球广域网web(World Wide Web)服务器设置有web交互界面,用户可以在web交互界面上输入控制指令,如输入应用程序部署请求,接收到该应用程序部署请求,说明用户想要在Docker容器中部署一个应用程序。
S12、响应所述应用程序部署请求,并获取用户选取的目标镜像标识以及用户输入的程序部署控制信息。
在接收到应用程序部署请求,后台,即服务器就可以自动响应该应用程序部署请求,并弹出镜像标识选取页面以及程序部署控制信息输入界面,用户可以在镜像标识选取页面中选取出目标镜像标识,在程序部署控制信息输入界面中输入程序部署控制信息。需要说明的是,这两个界面可以是先后生成的,也可以是整个web交互界面中的子界面,即同一个界面既可以选取镜像标识,也可以输入程序部署控制信息。
输入程序部署控制信息可以包括实例数、中央处理器CPU、内存、存储、向外暴露的端口号等。
web交互界面可以显示多个镜像标识,用户可以在多个镜像标识中选取出一个自己所需的镜像标识,并作为目标镜像标识。其中,每一镜像标识对应一实际存在的镜像,每一镜像可以是预先生成的镜像,也可以是本次应用程序部署过程中通过用户控制生成的镜像(即自定义镜像)。不管是哪种镜像,都是用户选取该镜像,如官方镜像或自定义镜像的镜像标识,并作为目标镜像标识。
其中,预先生成的镜像可以是官方镜像(如果选定的是官方镜像,从官方镜像仓库下载指定镜像,若本平台镜像仓库中没有该镜像,则把该镜像上传到本平台的镜像仓库中)或者,用户自定义且已经生成的镜像,该镜像已经上传到服务器的镜像仓库中了。具体的,镜像上传到镜像仓库中的过程可以是:用户通过web交互界面提出上传镜像文件的请求,服务器接收该请求和tar文件,执行docker import/docker load命令,更新该镜像所属命名空间的数据库内的信息,把该镜像按照“命名空间/镜像名称:版本号”的命名方式上传(docker tag/docker push)到本平台的镜像仓库中。
若该镜像是本次应用程序部署过程中通过用户控制生成的镜像,则参照图2,该镜像的生成过程可以是:
S21、在接收到用户通过预设web交互界面输入的基础镜像获取请求的情况下,响应所述基础镜像获取请求,并获取与所述基础镜像获取请求对应的基础镜像。
具体的,用户通过web交互界面选择官方镜像,提出拉取请求(即基础镜像获取请求),服务器接收该请求,从官方镜像仓库下载该镜像(运行docker pull命令),并把该镜像上传到本平台中的镜像仓库中。其中,下载的该镜像即为基础镜像,基础镜像可以是例如centos、ubuntu等。
S22、在成功获取到所述基础镜像的情况下,接收用户输入的所述基础镜像的镜像命名数据,并创建与所述镜像命名数据对应的命名空间。
在实际应用中,镜像文件是按照“命名空间/镜像名称:版本号”的命名方式上传并存储在镜像仓库中的,命名空间的目的就是解决镜像重名的情况,用以区分重名的镜像,官方镜像一般命名空间都是缺省的,自定义镜像一般需指定命名空间。所以在用户自定义镜像时,需要为该镜像设置命名空间。每个用户可以创建自己的任意多个命名空间,在指定的命名空间下,创建自己的镜像文件,并上传到镜像仓库,以便于确定唯一镜像,并依据该镜像自动化创建服务。
具体的,命名空间的创建过程可以是:
用户通过web交互界面提出创建自己的命名空间的请求(包括镜像命名数据),服务器接收该请求,创建指定命名空间,并把该命名空间信息存储在数据库中。
S23、在成功创建所述命名空间的情况下,接收用户输入的镜像创建请求。
所述镜像创建请求包括用户输入的镜像创建控制信息,且所述镜像创建控制信息用于对所述基础镜像进行调整。
用户通过web交互界面提出创建自定义镜像的请求,并输入镜像创建控制信息,其中镜像创建控制信息可以包括所需参数以及dockerfile文件。
所需参数可以是:
1)镜像维护信息,包括镜像创建人及联系方式;
2)所需要的软件包,根据任务的软件依赖环境确定;
3)对外暴露的端口,用户可以通过该端口访问该镜像创建的服务;
4)创建服务时执行的脚本文件或者命令,例如打开terminal终端、启动web(webserver)服务器等。
dockerfile文件一个包含了若干条构建镜像所需的指令和说明等信息的文本文件,用于说明所要创建的镜像文件的参数、说明等信息,用于通过docker build命令创建镜像文件。
镜像创建控制信息主要是对所述基础镜像进行调整,即将基础镜像调整为符合用户输入的镜像创建控制信息的镜像。
S24、响应所述镜像创建请求,调用所有所述应用控制指令中的镜像创建指令,并运行,以依据所述镜像创建控制信息对所述基础镜像进行调整,得到自定义镜像,并依据所述命名空间设置所述自定义镜像的镜像标识。
在实际应用中,在服务器接收到上述的参数和文件后,执行docker build命令(即镜像创建指令)来构建镜像(依据所述镜像创建控制信息对所述基础镜像进行调整,得到自定义镜像),并更新该自定义镜像所属命名空间的数据库内的信息,把该镜像按照“命名空间/镜像名称:版本号”的命名方式上传(docker tag/docker push)到本平台的镜像仓库中,其中,镜像的命名即为镜像标识。
若用户选取的上述的目标镜像是本实施例中的自定义镜像,则用户输入的目标镜像标识即为本实施例中的自定义镜像的镜像标识。
在实际应用中,构建镜像的过程可以是:
自定义镜像一般包括以下部分:
1)根据镜像创建控制信息,安装一些软件,如python、mysql等,这一部分是官方镜像一般不具备的。
2)配置上述软件,如设置环境变量等。
3)指定该镜像创建服务时,对外暴露的端口、工作目录、数据卷等。
4)指定创建服务时的默认指令,例如开启terminal终端、启动web服务等。
需要说明的是,用户只有在应用程序部署权限的情况下,才可以进行应用部署,此时才能够获取到用户选取的目标镜像标识。
用户是否有应用程序部署权限可以预先配置在用户权限中,所以首先需要获取用户权限,并且在用户权限中查看用户是否有应用程序部署权限,只有在有应用程序部署权限时,才可以执行上述的获取目标镜像标识的步骤。
S13、在成功获取到所述目标镜像标识以及所述程序部署控制信息的情况下,调用所有所述应用控制指令中的应用程序创建指令,并运行,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,创建得到与所述程序部署控制信息对应的应用程序。
在实际应用中,用户所创建的服务,有些是单一服务,即一个服务就可以完成所要求的任务,比如简单的计算任务,有些是需要多个服务来交互才能完成所要求任务的,也就是服务栈,比如,web程序大多都是要和数据库进行交互的,这时就是个服务栈,至少包括web服务器、数据库两个服务。而服务栈的情况涉及到服务编排,单一服务不涉及,所以需要分开叙述,进而本实施例中的步骤S13可以根据创建的是单一服务,还是服务栈,来执行相应的步骤。
一、若创建的是单一服务,则:
在依据所述程序部署控制信息确定出创建的应用程序为单一服务的情况下,调用所有所述应用控制指令中的第二应用程序创建指令,并运行,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,创建得到与所述程序部署控制信息对应的独立服务,并作为一个应用程序。
具体的,应用服务是按照镜像来创建的,可以看作是镜像的实例。镜像提供类似于一个模板,规定创建服务所要求的软件依赖环境等,仅仅是一个文件,而应用服务是正在运行能够提供服务的部件。一个镜像可以创建多个应用服务。
应用服务一般有以下几种:
1)web服务,配置web服务器搭建网站,这里又分J2EE(Java 2 PlatformEnterprise Edition,Java 2平台企业版)、php、python等的web服务;
2)数据库服务,用于与其他应用交互,存储读取数据,这里包括mysql、mongodb等;
3)测试服务,该服务用于企业软件开发过程中的测试阶段;
4)组建微服务架构。一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。
如果用户输入的参数是单一的服务,如程序部署控制信息中包括的设置的应用程序仅包括单一服务,则调用所有所述应用控制指令中的第二应用程序创建指令,如dockerservice create命令,从本平台的镜像仓库下载目标镜像文件,并创建与程序部署控制信息相应的独立服务,并且根据输入的程序部署控制信息中的域名、端口等信息,交由服务器中的域名管理解析模块完成域名绑定,并把该服务交由服务状态机进行生命周期的管理。
二、若创建的是服务栈,则:
在依据所述程序部署控制信息确定出创建的应用程序为服务栈的情况下,依据预设服务创建优先级顺序以及所述程序部署控制信息,调用所有所述应用控制指令中的第一应用程序创建指令,并运行,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,依次创建得到与所述程序部署控制信息对应的所述服务栈中的每一服务,并将创建得到的每一所述服务组合得到应用程序。
如果用户输入的参数是创建一个服务栈,如程序部署控制信息中包括的设置的应用程序包括服务栈,即是一组可以互相交互的服务的集合,这时需要用户上传后缀名为“.yml”的服务编排文件,服务器接收该文件,依据预设服务创建优先级顺序,检查该服务编排文件是否符合优先级要求。若符合优先级要求,根据该文件调用所有所述应用控制指令中的第一应用程序创建指令,如调用docker stackdeploy命令创建相应服务栈,具体的,下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,依次创建得到与所述程序部署控制信息对应的所述服务栈中的每一服务,并将创建得到的每一所述服务组合得到应用程序。并且针对每一个服务,根据输入的程序部署控制信息中的域名、端口等信息,交由域名管理解析模块完成域名绑定,并把该服务和服务的创建信息交由服务状态机进行生命周期管理。
S14、在成功创建得到与所述程序部署控制信息对应的应用程序的情况下,设置所述应用程序的访问接口,以使所述应用程序通过所述访问接口为用户提供服务。
在实际应用中,步骤S14可以包括:
设置所述应用程序中的每一服务的服务接口和域名。
设置所述应用程序中的每一服务的服务接口和域名的过程已经在上述实施例中进行了解释说明,请参照上述相应实施例。
本实施例中,预先为应用控制服务器配置了至少一个应用部署指令,应用控制服务器在接收到用户输入的应用程序部署请求之后,就能够响应该应用程序部署请求,并获取用户选取的目标镜像标识以及用户输入的程序部署控制信息,在成功获取到所述目标镜像标识以及所述程序部署控制信息的情况下,调用所有所述应用控制指令中的应用程序创建指令,并运行所述应用程序创建指令,以下载所述目标镜像标识对应的目标镜像,基于所述目标镜像,创建得到与所述程序部署控制信息对应的应用程序,并在成功创建得到与所述程序部署控制信息对应的应用程序的情况下,设置所述应用程序的访问接口,以使所述应用程序通过所述访问接口为用户提供服务。通过本发明,在上一步骤成功执行后,就会自动触发下一步骤的执行,即本发明在接收到用户输入的应用程序部署请求之后,能够实现应用程序的自动部署,不再需要多次接收用户输入的应用部署指令并执行,省去了后台多次接收并响应指令的操作,人机交互操作简单,并且减轻了后台处理负担。
另外,本发明引入了服务创建的优先级,在多个服务需要交互的时候,按照优先级从高到底的顺序创建服务,可以有效的减少随机顺序创建服务造成的矛盾或者错误的参数设置,从而无法正确交互的情况。
在上述应用控制方法的实施例的基础上,本发明的另一实施例提供了使用服务状态机进行生命周期管理的方案,具体的:
在成功设置所述应用程序的访问接口之后,还包括:
在成功接收到用户输入的应用程序操作请求的情况下,调用所有所述应用控制指令中与所述应用程序操作请求对应的应用操作指令,并运行,以执行与所述应用程序操作请求对应的预设操作;所述预设操作至少包括删除、更新、重建和服务扩缩容中的任一项。
在实际应用中,在需要对应用程序进行生命周期管理时,通过web交互界面,接收用户的应用程序操作请求;应用程序操作请求可以包括:删除服务、修改或更新服务配置、重建服务、服务缩扩容实例数等;另外应用程序操作请求中还携带了操作的具体操作参数,如修改服务配置时,指定要修改的属性及属性值,删除服务时,需要保存的服务信息,以便于重新建立该服务,服务扩缩容时,指定设置的实例数。
服务器在接收到应用程序操作请求之后,会根据请求,执行相应的docker命令,如:docker service rm(删除一个或多个服务)、docker service update(更新服务)、docker service scale(缩放一个或多个复制服务)等命令。
如果是删除指定服务,首先将服务的数据进行永久化存储,保存该服务的创建信息以便恢复该服务,然后执行docker service rm命令删除指定服务,并更新该服务在数据库中的状态。
如果是更新指定服务的设置参数,服务器会接收参数,执行docker serviceupdate命令更新指定服务,并更新该服务在数据库中存储的参数信息。
如果是弹性伸缩服务的实例数,服务器会接收指定参数,执行docker servicescale命令更新指定服务,并更新该服务在数据库中存储的参数信息。
如果是重建指定服务,服务器会接收指定参数,从数据库中查询该服务的创建信息,并执行docker service create命令,恢复该服务,并更新该服务早数据库中的状态。服务状态机允许的状态转换如图3所示。
具体的:
1)选定的镜像可以通过docker create命令创建服务,此时该服务的状态为Created,表示该服务已经创建,但没有运行,不能被访问并提供服务,Created状态的服务可以通过docker rm命令,删除该服务实例,更新状态为Deleted,同时把该实例的配置信息保存在数据库中以便于重建;
2)处于Created状态的服务,可以通过docker start命令使该服务运行起来并可以被访问,此时服务的状态为Running;
3)除了通过以上两个步骤来创建服务的方式,还可以通过,首先选定镜像,然后执行docker run命令创建,此时服务可以被访问并提供服务,处于Running状态;
4)正在运行的处于Running状态的服务实例,可以通过docker stop/kill命令来停止运行,但是并没有删除该服务实例,生命状态变为Stopped;
5)正在运行的处于Running状态的服务实例,可以通过docker rm-f命令删除该实例(包括先停止运行,再强制删除),并把该实例的配置信息保存在数据库中以便于重建,此时生命状态变为Deleted;
5)已经停止运行并处于Stopped状态的服务可以通过docker start命令来恢复服务实例的运行,状态更新为Running;也可以通过docker rm命令来删除该服务实例,并把该实例的配置信息保存在数据库中以便于重建,更新状态为Deleted;
6)已经被删除的处于Deleted状态的服务实例,可以通过查询数据库获取该服务实例的配置信息,然后或者通过docker create指令创建服务实例,状态为Created,或者通过docker run命令创建服务实例,状态为Running。
服务器内部还设置有应用服务负载均衡管理模块,应用服务负载均衡管理模块是一个可选模块,不需要与用户进行交互,可以看作是后台的守护程序,负责管理docker集群中的所有宿主机的负载情况,docker swarm和Kubernetes都具有默认的负载均衡策略,如果平台使用默认的负载均衡策略,那么该模块就可以省略,具体负载均衡的策略采用现有技术即可。
本实施例中,引入了服务状态机来管理服务的运行状态和参数,通过这个机制可以有效的管理服务的生命周期,并且可以实现一键恢复已经删除的服务,包括服务的参数配置。通过服务状态机可以提高服务生命周期管理的效率及准确性。
在上述应用控制方法的实施例的基础上,本发明的另一实施例中服务器还可以实现指定应用程序或指定镜像的测试,具体的:
在成功设置所述应用程序的访问接口之后,还包括:
在成功接收到用户输入的测试指令的情况下,获取与所述测试指令对应的目标测试用例,并运行所述目标测试用例,以对所述测试指令中的指定应用程序或指定镜像进行测试;所述目标测试用例依据用户输入的测试流程数据生成。
在实际应用中,首先通过web交互界面,获取用户输入的测试流程数据(可以包括模板内容,例如模板名称、模板类别、每一步操作名称、每一步测试结果的成功情况、失败情况等,此外还可以包括其他相关设置信息,例如模板的存储位置、测试脚本的存储位置等与测试过程相关的设置信息),在接收到测试流程数据之后,服务器就会创建与该测试流程数据对应的测试任务模板。其中,测试任务人为分成三类,分为功能测试、性能测试和安全性测试三部分,则模板也相应分为对应的三类。
根据测试任务模板,通过web交互界面输入测试参数信息,如最大响应时间限制、循环执行次数、每次执行间隔时间、同时参与用户数等。
若选取的是功能测试,根据测试任务模板和测试参数信息,把结果永久化存储和可视化显示,并生成测试用例。
若选取的是性能测试,根据测试任务模板和测试参数信息,把结果永久化存储和可视化显示,并生成测试用例。
若选取的是安全性测试,根据测试任务模板和测试参数信息,把结果永久化存储和可视化显示,并生成测试用例。
通过上述步骤,生成测试用例库。
若成功接收到用户输入的测试指令,该测试指令用于选取一个目标测试用例,并运行,则调用与该测试指令对应的目标测试用例,并执行,若为功能测试,则利用web爬虫技术,爬取测试任务执行后的web页面,解析网页,根据网页的信息,判断功能是否正常,将测试结果永久化存储,可视化显示在web界面;如果经过爬虫技术判断,功能正常,则生成测试日志,添加到测试日志库中。测试日志记录了运行目标测试用例的过程。
若为性能测试,则运行测试用例的过程可以是:利用脚本录制软件Badboy录制平台指定功能的JMX脚本,将JMX脚本导入Apache Jmeter,通过web交互界面捕获用户输入的参数信息,执行JMX脚本进行性能测试,根据分析得到测试结果,把测试结果可视化,并且永久化存储,其中,测试结果关注的指标如下:每一个测试步骤的正确计数、错误计数、正确率、响应时间均值等,根据整个过程,生成测试日志,并存储在测试日志库中。
安全性测试关注于用户的操作是否符合平台赋予该用户的操作权限,目的是判断该用户的操作是否违背这个权限,当操作符合权限要求时,操作的功能正常提供服务,否则不提供服务。这种实施步骤与功能性测试基本一致,都是通过分析用户操作后的结果,根据功能是否正常提供服务来判断。
但安全性测试与功能性测试的区别是:功能测试是在确保已经赋予用户合理操作权限的情况下,判断功能是否按照预期提供服务;
安全性测试则是在没有获得操作权限的情况下进行,在假设“该操作在被赋予权限后能正常提供服务”的情况下,通过分析无操作权限情况下的操作结果,来判断是否符合操作权限要求。具体的,安全性测试可以是在没有获得操作权限的情况下进行,并且利用web爬虫的页面解析后,关注的是“不能获得正确的操作结果”。
本实施例提出了镜像或应用程序的测试方法,可以有效地与容器部署平台结合,完成容器平台的测试,并且高效率地生成测试用例库。
综上所述,本发明提出的容器自动化部署方案,有效地整合用户权限管理、自定义镜像管理、域名绑定、服务高效率创建、服务编排、服务生命周期的高效管理等特性,更加符合实际应用场景。
可选地,在上述应用控制方法的实施例的基础上,本发明的另一实施例提供了一种应用控制装置,应用于应用控制服务器,所述应用控制服务器预先配置有至少一个应用控制指令;参照图4,所述应用控制装置包括:
请求接收模块11,用于接收用户输入的应用程序部署请求;
请求响应模块12,用于响应所述应用程序部署请求,并获取用户选取的目标镜像标识以及用户输入的程序部署控制信息;
程序创建模块13,用于在成功获取到所述目标镜像标识以及所述程序部署控制信息的情况下,调用所有所述应用控制指令中的应用程序创建指令,并运行,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,创建得到与所述程序部署控制信息对应的应用程序;
接口设置模块14,用于在成功创建得到与所述程序部署控制信息对应的应用程序的情况下,设置所述应用程序的访问接口,以使所述应用程序通过所述访问接口为用户提供服务。
进一步,所述请求响应模块可以包括:
镜像获取子模块,用于在接收到用户通过预设web交互界面输入的基础镜像获取请求的情况下,响应所述基础镜像获取请求,并获取与所述基础镜像获取请求对应的基础镜像;
命名空间设置子模块,用于在成功获取到所述基础镜像的情况下,接收用户输入的所述基础镜像的镜像命名数据,并创建与所述镜像命名数据对应的命名空间;
创建请求接收子模块,用于在成功创建所述命名空间的情况下,接收用户输入的镜像创建请求;所述镜像创建请求包括用户输入的镜像创建控制信息;所述镜像创建控制信息用于对所述基础镜像进行调整;
镜像创建子模块,用于响应所述镜像创建请求,调用所有所述应用控制指令中的镜像创建指令,并运行,以依据所述镜像创建控制信息对所述基础镜像进行调整,得到自定义镜像,并依据所述命名空间设置所述自定义镜像的镜像标识;
标识获取子模块,用于获取用户输入的所述自定义镜像的镜像标识,并作为目标镜像标识。
进一步,标识获取子模块用于获取用户输入的所述自定义镜像的镜像标识,并作为目标镜像标识时,具体用于:
获取用户权限,并在依据所述用户权限确定出用户具有应用程序部署权限的情况下,获取用户输入的所述自定义镜像的镜像标识,并作为目标镜像标识。
进一步,程序创建模块13具体用于:
在依据所述程序部署控制信息确定出创建的应用程序为服务栈的情况下,依据预设服务创建优先级顺序以及所述程序部署控制信息,调用所有所述应用控制指令中的第一应用程序创建指令,并运行,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,依次创建得到与所述程序部署控制信息对应的所述服务栈中的每一服务,并将创建得到的每一所述服务组合得到应用程序;
在依据所述程序部署控制信息确定出创建的应用程序为单一服务的情况下,调用所有所述应用控制指令中的第二应用程序创建指令,并运行,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,创建得到与所述程序部署控制信息对应的独立服务,并作为一个应用程序。
进一步,接口设置模块14具体用于:
设置所述应用程序中的每一服务的服务接口和域名。
本实施例中,预先为应用控制服务器配置了至少一个应用部署指令,应用控制服务器在接收到用户输入的应用程序部署请求之后,就能够响应该应用程序部署请求,并获取用户选取的目标镜像标识以及用户输入的程序部署控制信息,在成功获取到所述目标镜像标识以及所述程序部署控制信息的情况下,调用所有所述应用控制指令中的应用程序创建指令,并运行所述应用程序创建指令,以下载所述目标镜像标识对应的目标镜像,基于所述目标镜像,创建得到与所述程序部署控制信息对应的应用程序,并在成功创建得到与所述程序部署控制信息对应的应用程序的情况下,设置所述应用程序的访问接口,以使所述应用程序通过所述访问接口为用户提供服务。通过本发明,在上一步骤成功执行后,就会自动触发下一步骤的执行,即本发明在接收到用户输入的应用程序部署请求之后,能够实现应用程序的自动部署,不再需要多次接收用户输入的应用部署指令并执行,省去了后台多次接收并响应指令的操作,人机交互操作简单,并且减轻了后台处理负担。
另外,本发明引入了服务创建的优先级,在多个服务需要交互的时候,按照优先级从高到底的顺序创建服务,可以有效的减少随机顺序创建服务造成的矛盾或者错误的参数设置,从而无法正确交互的情况。
需要说明的是,本实施例中的各个模块和子模块的工作过程,请参照上述实施例中的相应说明,在此不再赘述。
可选地,在上述应用控制装置的实施例的基础上,应用控制装置还包括:
程序操作模块,用于在成功接收到用户输入的应用程序操作请求的情况下,调用所有所述应用控制指令中与所述应用程序操作请求对应的应用操作指令,并运行,以执行与所述应用程序操作请求对应的预设操作;所述预设操作至少包括删除、更新、重建和服务扩缩容中的任一项。
本实施例中,引入了服务状态机来管理服务的运行状态和参数,通过这个机制可以有效的管理服务的生命周期,并且可以实现一键恢复已经删除的服务,包括服务的参数配置。通过服务状态机可以提高服务生命周期管理的效率及准确性。
需要说明的是,本实施例中的各个模块的工作过程,请参照上述实施例中的相应说明,在此不再赘述。
可选地,在上述应用控制装置的实施例的基础上,应用控制装置还包括:
测试模块,用于在成功接收到用户输入的测试指令的情况下,获取与所述测试指令对应的目标测试用例,并运行所述目标测试用例,以对所述测试指令中的指定应用程序或指定镜像进行测试;所述目标测试用例依据用户输入的测试流程数据生成。
本实施例提出了镜像或应用程序的测试方法,可以有效地与容器部署平台结合,完成容器平台的测试,并且高效率地生成测试用例库。
需要说明的是,本实施例中的各个模块的工作过程,请参照上述实施例中的相应说明,在此不再赘述。
可选地,在上述应用控制装置的实施例的基础上,应用控制装置还包括:
域名管理及解析模块,管理服务器能够使用的所有域名,能够将指定域名和指定的服务构建一对一绑定,并提供域名解析服务。
用户权限管理模块,实现登录、注销以及用户权限管理。
具体的,名管理解析模块的具体实施步骤如下:
1)用户通过web交互界面从域名服务商购买域名,获取用户选定的域名和输入的域名注册信息,实现域名的购买和注册,并把该域名的信息存储在数据库中;
2)通过1)中的步骤可以把所有可以使用的域名全部存储在数据库中;
3)用户通过web交互界面申请使用域名,该模块自动为用户分配一个空闲状态的域名;
4)用户申请到域名的使用权后,通过web交互界面输入域名与指定服务的绑定信息,包括绑定的服务器信息和端口号,并更新数据库中该域名的使用状态,把该绑定信息存储在数据库中;
5)当新的域名绑定产生后,域名的解析交由DNS服务器进行,DNS服务器的实现不属于本发明的讨论范围;
用户权限管理模块的具体实施步骤如下:
1)用户通过web交互界面注册并输入账户信息;
2)接收用户的输入信息,存储在数据库中,完成用户注册,并提示注册成功与否;
3)用户通过web交互界面登录平台,输入账号、密码;
4)接收用户的账户信息,经过数据库比对,完成登录操作;
5)用户在4)中登录之后,可以进行平台的注销登出操作,该模块接收用户的注销请求,清除该web会话;
6)用户通过web界面发出其他业务请求,该模块首先根据该用户的权限等级,判断是否有操作权,如果有操作权,即可以交由其他业务模块执行;
7)用户的权限可以通过套餐等的购买来变更,该模块通过web交互界面接收用户权限升级的请求,收取相应费用,更新数据库中该用户的权限;
可选地,在上述应用控制方法及装置的实施例的基础上,本发明的另一实施例提供了一种应用控制服务器,所述应用控制服务器预先配置有至少一个应用控制指令;所述应用控制服务器包括:存储器和处理器;
其中,所述存储器用于存储程序;
处理器调用程序并用于:
接收用户输入的应用程序部署请求;
响应所述应用程序部署请求,并获取用户选取的目标镜像标识以及用户输入的程序部署控制信息;获取用户选取的目标镜像标识,包括:在接收到用户通过预设web交互界面输入的基础镜像获取请求的情况下,响应所述基础镜像获取请求,并获取与所述基础镜像获取请求对应的基础镜像;在成功获取到所述基础镜像的情况下,接收用户输入的所述基础镜像的镜像命名数据,并创建与所述镜像命名数据对应的命名空间;在成功创建所述命名空间的情况下,接收用户输入的镜像创建请求;所述镜像创建请求包括用户输入的镜像创建控制信息;所述镜像创建控制信息用于对所述基础镜像进行调整;响应所述镜像创建请求,调用所有所述应用控制指令中的镜像创建指令,并运行,以依据所述镜像创建控制信息对所述基础镜像进行调整,得到自定义镜像,并依据所述命名空间设置所述自定义镜像的镜像标识;获取用户输入的所述自定义镜像的镜像标识,并作为目标镜像标识;
在成功获取到所述目标镜像标识以及所述程序部署控制信息的情况下,调用所有所述应用控制指令中的应用程序创建指令,并运行,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,创建得到与所述程序部署控制信息对应的应用程序;
在成功创建得到与所述程序部署控制信息对应的应用程序的情况下,设置所述应用程序的访问接口,以使所述应用程序通过所述访问接口为用户提供服务。
进一步,获取用户输入的所述自定义镜像的镜像标识,并作为目标镜像标识,包括:
获取用户权限,并在依据所述用户权限确定出用户具有应用程序部署权限的情况下,获取用户输入的所述自定义镜像的镜像标识,并作为目标镜像标识。
进一步,调用所有所述应用控制指令中的应用程序创建指令,并运行所述应用程序创建指令,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,创建得到与所述程序部署控制信息对应的应用程序,包括:
在依据所述程序部署控制信息确定出创建的应用程序为服务栈的情况下,依据预设服务创建优先级顺序以及所述程序部署控制信息,调用所有所述应用控制指令中的第一应用程序创建指令,并运行,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,依次创建得到与所述程序部署控制信息对应的所述服务栈中的每一服务,并将创建得到的每一所述服务组合得到应用程序;
在依据所述程序部署控制信息确定出创建的应用程序为单一服务的情况下,调用所有所述应用控制指令中的第二应用程序创建指令,并运行,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,创建得到与所述程序部署控制信息对应的独立服务,并作为一个应用程序。
进一步,设置所述应用程序的访问接口,包括:
设置所述应用程序中的每一服务的服务接口和域名。
进一步,在成功设置所述应用程序的访问接口之后,还包括:
在成功接收到用户输入的应用程序操作请求的情况下,调用所有所述应用控制指令中与所述应用程序操作请求对应的应用操作指令,并运行,以执行与所述应用程序操作请求对应的预设操作;所述预设操作至少包括删除、更新、重建和服务扩缩容中的任一项。
进一步,在成功设置所述应用程序的访问接口之后,还包括:
在成功接收到用户输入的测试指令的情况下,获取与所述测试指令对应的目标测试用例,并运行所述目标测试用例,以对所述测试指令中的指定应用程序或指定镜像进行测试;所述目标测试用例依据用户输入的测试流程数据生成。
本实施例中,预先为应用控制服务器配置了至少一个应用部署指令,应用控制服务器在接收到用户输入的应用程序部署请求之后,就能够响应该应用程序部署请求,并获取用户选取的目标镜像标识以及用户输入的程序部署控制信息,在成功获取到所述目标镜像标识以及所述程序部署控制信息的情况下,调用所有所述应用控制指令中的应用程序创建指令,并运行所述应用程序创建指令,以下载所述目标镜像标识对应的目标镜像,基于所述目标镜像,创建得到与所述程序部署控制信息对应的应用程序,并在成功创建得到与所述程序部署控制信息对应的应用程序的情况下,设置所述应用程序的访问接口,以使所述应用程序通过所述访问接口为用户提供服务。通过本发明,在上一步骤成功执行后,就会自动触发下一步骤的执行,即本发明在接收到用户输入的应用程序部署请求之后,能够实现应用程序的自动部署,不再需要多次接收用户输入的应用部署指令并执行,省去了后台多次接收并响应指令的操作,人机交互操作简单,并且减轻了后台处理负担。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种应用控制方法,其特征在于,应用于应用控制服务器,所述应用控制服务器预先配置有至少一个应用控制指令;所述应用控制方法包括:
接收用户输入的应用程序部署请求;
响应所述应用程序部署请求,并获取用户选取的目标镜像标识以及用户输入的程序部署控制信息;获取用户选取的目标镜像标识,包括:在接收到用户通过预设web交互界面输入的基础镜像获取请求的情况下,响应所述基础镜像获取请求,并获取与所述基础镜像获取请求对应的基础镜像;在成功获取到所述基础镜像的情况下,接收用户输入的所述基础镜像的镜像命名数据,并创建与所述镜像命名数据对应的命名空间;在成功创建所述命名空间的情况下,接收用户输入的镜像创建请求;所述镜像创建请求包括用户输入的镜像创建控制信息;所述镜像创建控制信息用于对所述基础镜像进行调整;响应所述镜像创建请求,调用所有所述应用控制指令中的镜像创建指令,并运行,以依据所述镜像创建控制信息对所述基础镜像进行调整,得到自定义镜像,并依据所述命名空间设置所述自定义镜像的镜像标识;获取用户输入的所述自定义镜像的镜像标识,并作为目标镜像标识;
在成功获取到所述目标镜像标识以及所述程序部署控制信息的情况下,调用所有所述应用控制指令中的应用程序创建指令,并运行,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,创建得到与所述程序部署控制信息对应的应用程序;
在成功创建得到与所述程序部署控制信息对应的应用程序的情况下,设置所述应用程序的访问接口,以使所述应用程序通过所述访问接口为用户提供服务。
2.根据权利要求1所述的应用控制方法,其特征在于,获取用户输入的所述自定义镜像的镜像标识,并作为目标镜像标识,包括:
获取用户权限,并在依据所述用户权限确定出用户具有应用程序部署权限的情况下,获取用户输入的所述自定义镜像的镜像标识,并作为目标镜像标识。
3.根据权利要求1所述的应用控制方法,其特征在于,调用所有所述应用控制指令中的应用程序创建指令,并运行所述应用程序创建指令,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,创建得到与所述程序部署控制信息对应的应用程序,包括:
在依据所述程序部署控制信息确定出创建的应用程序为服务栈的情况下,依据预设服务创建优先级顺序以及所述程序部署控制信息,调用所有所述应用控制指令中的第一应用程序创建指令,并运行,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,依次创建得到与所述程序部署控制信息对应的所述服务栈中的每一服务,并将创建得到的每一所述服务组合得到应用程序;
在依据所述程序部署控制信息确定出创建的应用程序为单一服务的情况下,调用所有所述应用控制指令中的第二应用程序创建指令,并运行,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,创建得到与所述程序部署控制信息对应的独立服务,并作为一个应用程序。
4.根据权利要求3所述的应用控制方法,其特征在于,设置所述应用程序的访问接口,包括:
设置所述应用程序中的每一服务的服务接口和域名。
5.根据权利要求1所述的应用控制方法,其特征在于,在成功设置所述应用程序的访问接口之后,还包括:
在成功接收到用户输入的应用程序操作请求的情况下,调用所有所述应用控制指令中与所述应用程序操作请求对应的应用操作指令,并运行,以执行与所述应用程序操作请求对应的预设操作;所述预设操作至少包括删除、更新、重建和服务扩缩容中的任一项。
6.根据权利要求1所述的应用控制方法,其特征在于,在成功设置所述应用程序的访问接口之后,还包括:
在成功接收到用户输入的测试指令的情况下,获取与所述测试指令对应的目标测试用例,并运行所述目标测试用例,以对所述测试指令中的指定应用程序或指定镜像进行测试;所述目标测试用例依据用户输入的测试流程数据生成。
7.一种应用控制装置,其特征在于,应用于应用控制服务器,所述应用控制服务器预先配置有至少一个应用控制指令;所述应用控制装置包括:
请求接收模块,用于接收用户输入的应用程序部署请求;
请求响应模块,用于响应所述应用程序部署请求,并获取用户选取的目标镜像标识以及用户输入的程序部署控制信息;所述请求响应模块包括:镜像获取子模块,用于在接收到用户通过预设web交互界面输入的基础镜像获取请求的情况下,响应所述基础镜像获取请求,并获取与所述基础镜像获取请求对应的基础镜像;命名空间设置子模块,用于在成功获取到所述基础镜像的情况下,接收用户输入的所述基础镜像的镜像命名数据,并创建与所述镜像命名数据对应的命名空间;创建请求接收子模块,用于在成功创建所述命名空间的情况下,接收用户输入的镜像创建请求;所述镜像创建请求包括用户输入的镜像创建控制信息;所述镜像创建控制信息用于对所述基础镜像进行调整;镜像创建子模块,用于响应所述镜像创建请求,调用所有所述应用控制指令中的镜像创建指令,并运行,以依据所述镜像创建控制信息对所述基础镜像进行调整,得到自定义镜像,并依据所述命名空间设置所述自定义镜像的镜像标识;标识获取子模块,用于获取用户输入的所述自定义镜像的镜像标识,并作为目标镜像标识;
程序创建模块,用于在成功获取到所述目标镜像标识以及所述程序部署控制信息的情况下,调用所有所述应用控制指令中的应用程序创建指令,并运行,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,创建得到与所述程序部署控制信息对应的应用程序;
接口设置模块,用于在成功创建得到与所述程序部署控制信息对应的应用程序的情况下,设置所述应用程序的访问接口,以使所述应用程序通过所述访问接口为用户提供服务。
8.根据权利要求7所述的应用控制装置,其特征在于,所述标识获取子模块用于获取用户输入的所述自定义镜像的镜像标识,并作为目标镜像标识时,具体用于:
获取用户权限,并在依据所述用户权限确定出用户具有应用程序部署权限的情况下,获取用户输入的所述自定义镜像的镜像标识,并作为目标镜像标识。
9.根据权利要求7所述的应用控制装置,其特征在于,所述程序创建模块具体用于:
在依据所述程序部署控制信息确定出创建的应用程序为服务栈的情况下,依据预设服务创建优先级顺序以及所述程序部署控制信息,调用所有所述应用控制指令中的第一应用程序创建指令,并运行,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,依次创建得到与所述程序部署控制信息对应的所述服务栈中的每一服务,并将创建得到的每一所述服务组合得到应用程序;
在依据所述程序部署控制信息确定出创建的应用程序为单一服务的情况下,调用所有所述应用控制指令中的第二应用程序创建指令,并运行,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,创建得到与所述程序部署控制信息对应的独立服务,并作为一个应用程序。
10.一种应用控制服务器,其特征在于,所述应用控制服务器预先配置有至少一个应用控制指令;所述应用控制服务器包括:存储器和处理器;
其中,所述存储器用于存储程序;
处理器调用程序并用于:
接收用户输入的应用程序部署请求;
响应所述应用程序部署请求,并获取用户选取的目标镜像标识以及用户输入的程序部署控制信息;获取用户选取的目标镜像标识,包括:在接收到用户通过预设web交互界面输入的基础镜像获取请求的情况下,响应所述基础镜像获取请求,并获取与所述基础镜像获取请求对应的基础镜像;在成功获取到所述基础镜像的情况下,接收用户输入的所述基础镜像的镜像命名数据,并创建与所述镜像命名数据对应的命名空间;在成功创建所述命名空间的情况下,接收用户输入的镜像创建请求;所述镜像创建请求包括用户输入的镜像创建控制信息;所述镜像创建控制信息用于对所述基础镜像进行调整;响应所述镜像创建请求,调用所有所述应用控制指令中的镜像创建指令,并运行,以依据所述镜像创建控制信息对所述基础镜像进行调整,得到自定义镜像,并依据所述命名空间设置所述自定义镜像的镜像标识;获取用户输入的所述自定义镜像的镜像标识,并作为目标镜像标识;
在成功获取到所述目标镜像标识以及所述程序部署控制信息的情况下,调用所有所述应用控制指令中的应用程序创建指令,并运行,以下载所述目标镜像标识对应的目标镜像,并基于所述目标镜像,创建得到与所述程序部署控制信息对应的应用程序;
在成功创建得到与所述程序部署控制信息对应的应用程序的情况下,设置所述应用程序的访问接口,以使所述应用程序通过所述访问接口为用户提供服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010424979.0A CN111596928B (zh) | 2020-05-19 | 2020-05-19 | 一种应用控制方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010424979.0A CN111596928B (zh) | 2020-05-19 | 2020-05-19 | 一种应用控制方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111596928A true CN111596928A (zh) | 2020-08-28 |
CN111596928B CN111596928B (zh) | 2021-08-13 |
Family
ID=72190343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010424979.0A Expired - Fee Related CN111596928B (zh) | 2020-05-19 | 2020-05-19 | 一种应用控制方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111596928B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112685046A (zh) * | 2020-12-29 | 2021-04-20 | 北京达佳互联信息技术有限公司 | 一种数据处理方法和装置 |
CN113377346A (zh) * | 2021-06-10 | 2021-09-10 | 北京滴普科技有限公司 | 集成环境搭建方法、装置、电子设备及存储介质 |
CN114448998A (zh) * | 2021-12-17 | 2022-05-06 | 广州极飞科技股份有限公司 | 网络请求处理方法、装置、设备及存储介质 |
WO2022142601A1 (zh) * | 2020-12-28 | 2022-07-07 | 京东科技控股股份有限公司 | 应用程序的构建方法、装置及计算机设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108958927A (zh) * | 2018-05-31 | 2018-12-07 | 康键信息技术(深圳)有限公司 | 容器应用的部署方法、装置、计算机设备和存储介质 |
CN109358858A (zh) * | 2018-09-19 | 2019-02-19 | 网易(杭州)网络有限公司 | 自动化部署方法、装置、介质及电子设备 |
US10303576B1 (en) * | 2018-05-04 | 2019-05-28 | 6Fusion Usa, Inc. | Systems and methods for IT intelligence and management based on container-level metering |
US20190286463A1 (en) * | 2018-03-13 | 2019-09-19 | Fujitsu Limited | Operation control method, and apparatus for operation control, and non-transitory computer-readable storage medium for storing program |
CN110688137A (zh) * | 2019-09-27 | 2020-01-14 | 支付宝(杭州)信息技术有限公司 | 应用交付方法和装置、存储介质 |
CN110888655A (zh) * | 2019-11-14 | 2020-03-17 | 中国民航信息网络股份有限公司 | 一种应用发布方法及装置 |
CN110995473A (zh) * | 2019-11-18 | 2020-04-10 | 腾讯科技(深圳)有限公司 | 一种业务节点的控制方法及相关设备 |
-
2020
- 2020-05-19 CN CN202010424979.0A patent/CN111596928B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190286463A1 (en) * | 2018-03-13 | 2019-09-19 | Fujitsu Limited | Operation control method, and apparatus for operation control, and non-transitory computer-readable storage medium for storing program |
US10303576B1 (en) * | 2018-05-04 | 2019-05-28 | 6Fusion Usa, Inc. | Systems and methods for IT intelligence and management based on container-level metering |
CN108958927A (zh) * | 2018-05-31 | 2018-12-07 | 康键信息技术(深圳)有限公司 | 容器应用的部署方法、装置、计算机设备和存储介质 |
CN109358858A (zh) * | 2018-09-19 | 2019-02-19 | 网易(杭州)网络有限公司 | 自动化部署方法、装置、介质及电子设备 |
CN110688137A (zh) * | 2019-09-27 | 2020-01-14 | 支付宝(杭州)信息技术有限公司 | 应用交付方法和装置、存储介质 |
CN110888655A (zh) * | 2019-11-14 | 2020-03-17 | 中国民航信息网络股份有限公司 | 一种应用发布方法及装置 |
CN110995473A (zh) * | 2019-11-18 | 2020-04-10 | 腾讯科技(深圳)有限公司 | 一种业务节点的控制方法及相关设备 |
Non-Patent Citations (1)
Title |
---|
蒋少华等: "《基于Docker的计算机应用快速部署系统的设计》", 《韶关学院学报》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022142601A1 (zh) * | 2020-12-28 | 2022-07-07 | 京东科技控股股份有限公司 | 应用程序的构建方法、装置及计算机设备 |
CN112685046A (zh) * | 2020-12-29 | 2021-04-20 | 北京达佳互联信息技术有限公司 | 一种数据处理方法和装置 |
CN113377346A (zh) * | 2021-06-10 | 2021-09-10 | 北京滴普科技有限公司 | 集成环境搭建方法、装置、电子设备及存储介质 |
CN114448998A (zh) * | 2021-12-17 | 2022-05-06 | 广州极飞科技股份有限公司 | 网络请求处理方法、装置、设备及存储介质 |
CN114448998B (zh) * | 2021-12-17 | 2024-03-01 | 广州极飞科技股份有限公司 | 网络请求处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111596928B (zh) | 2021-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111596928B (zh) | 一种应用控制方法、装置及电子设备 | |
US10963361B2 (en) | Overlapping-in-time execution of load tests on applications in a centralized system | |
CN107766126B (zh) | 容器镜像的构建方法、系统、装置及存储介质 | |
JP7011737B2 (ja) | コネクタ開発および統合チャネル展開のためのシステムおよび方法 | |
CN108293081B (zh) | 通过用户界面事件的程序重放深度链接到移动应用状态 | |
US9342273B1 (en) | Automatic communications graphing for a source application | |
US9792141B1 (en) | Configured generation of virtual machine images | |
US20160350081A1 (en) | Automatic container definition | |
CN111651224A (zh) | 用于识别、索引和导航至移动应用的深度状态的系统和方法 | |
US10284634B2 (en) | Closed-loop infrastructure orchestration templates | |
WO2013109860A1 (en) | Software builder | |
CN111580926A (zh) | 模型发布方法、模型部署方法、装置、设备及存储介质 | |
US10732952B1 (en) | Deployment and customization of applications at the widget level | |
US9542173B2 (en) | Dependency handling for software extensions | |
CN115480801A (zh) | 一种基于Vue框架的多项目开发部署运行方法和系统 | |
CN111142884B (zh) | 小程序的版本部署方法、装置、电子设备及存储介质 | |
CN110597564A (zh) | 一种安装包构建和业务组件加载方法、装置、终端设备 | |
CN110750415A (zh) | 接口服务配置方法、装置、介质和计算机设备 | |
CN115658529A (zh) | 用户页面的自动化测试方法以及相关设备 | |
CN114297056A (zh) | 一种自动化测试方法及系统 | |
US20230037199A1 (en) | Intelligent integration of cloud infrastructure tools for creating cloud infrastructures | |
US20160335068A1 (en) | Checks for software extensions | |
CN116974716A (zh) | 调度任务的发布方法、装置、电子设备及存储介质 | |
Siebra et al. | Empowering continuous delivery in software development: the DevOps strategy | |
CN113835827A (zh) | 基于容器Docker的应用部署方法、装置及电子设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210813 |
|
CF01 | Termination of patent right due to non-payment of annual fee |