具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的测试环境部署方法,可以应用于如图1所示的应用环境中。其中,终端102与服务器104通过网络进行通信。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。终端102上部署了测试环境部署平台。开发人员或测试人员等用户在终端102可以基于该测试环境部署平台录入测试资源需求信息,终端102将测试资源需求信息发送至服务器104。服务器104根据测试资源需求信息计算测试环境需要的物理资源,调用私有云接口,向私有云申请相应的物理资源。服务器104在接收到私有云返回的资源分配提示时,对申请到的物理资源初始化,并在申请到的物理资源上部署容器管理代理。服务器104通过调用容器集群管理接口,向容器管理代理发送容器部署请求,使容器管理代理根据容器部署请求在预设的容器仓库拉取容器文件,利用容器文件在相应的物理资源上进行应用部署。服务器104将完成应用部署的物理资源配置为测试环境集群,获取测试环境集群对应的测试环境标识,将测试环境标识返回至终端104。上述测试环境部署过程,测试环境的用户可以直接进行测试环境搭建,降低测试环境部署门槛,无需再依赖其他人员,提高测试环境部署效率,还可以根据软件实际测试需求有针对性的搭建微型测试环境,节约测试资源。
在一个实施例中,如图2所示,提供了一种测试环境部署方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤202,接收终端发送的测试资源需求信息。
步骤204,根据测试资源需求信息计算需要的物理资源。
终端上部署了测试环境部署平台。测试环境部署平台的用户包括但不限于被测软件的开发人员和测试人员,还可以是运维人员等。用户可以基于测试环境部署平台,针对不同测试需求搭建不同的测试环境。测试环境部署平台向用户提供多个服务选项、数据选项和应用选项。测试资源需求信息包括用户选定的服务选项、应用选项或数据选项。
服务器根据用户选定的服务选项、应用选项或数据选项,实时计算需要的物理资源的资源信息。资源信息包括需要申请的虚拟机的数量以及每个虚拟机对应的虚拟机类型和存储空间。虚拟机类型包括服务型虚拟机和应用型虚拟机。
步骤206,根据需要的物理资源进行物理资源申请,对申请到的物理资源初始化,在申请到的物理资源上部署容器管理代理。
服务器根据需要的物理资源,向私有云申请相应数量的虚拟机。当接收到私有云返回的资源分配完成的提示时,服务器利用salt(一种自动化虚拟机管理软件)向申请到的虚拟机下发相应的初始化指令。通过初始化指令,服务器在每个应用型虚拟机上安装容器管理代理,如rancher agent或swarm agent(一种容器集群管理软件代理)等。
步骤208,通过调用容器集群管理接口,将初始化后的物理资源配置为测试环境集群。
服务器利用rancher、swarm等容器集群管理软件将初始化后的多个虚拟机组成一个集群。
在一个实施例中,将初始化后的物理资源配置为测试环境集群包括:向容器集群管理服务器发送环境创建请求,使容器集群管理服务器根据环境创建请求创建虚拟的测试环境集群;向容器集群管理服务器发送集群封装请求,使容器集群管理服务器根据集群封装请求在测试环境集群添加申请到的虚拟机对应的虚拟机标识。
与容器管理代理相对应的,容器集群管理服务器可以是rancher server或swarmserver等。容器集群管理服务器已预先启动。服务器通过调用容器集群管理接口,向容器集群管理服务器发送环境创建请求,使容器集群管理服务器根据环境创建请求创建虚拟的目标环境。容器集群管理软件中可以创建多个逻辑的目标环境。每个目标环境与一个测试环境集群对应。目标环境包括多个节点。每个节点可以对应一个虚拟机。服务器将初始化后的每个虚拟机作为一个节点添加至该目标环境。将申请到的多个分散的虚拟机配置为一个逻辑的集群,便于对测试环境进行管理及使用。
步骤210,向容器管理代理发送容器部署请求;使容器管理代理根据容器部署请求在预设的容器仓库拉取容器文件,利用容器文件在测试环境集群进行应用部署。
在将初始化后的服务型虚拟机和应用型虚拟机作为节点配置为测试环境集群后,服务器在其中应用型虚拟机上进行应用部署。一套测试环境中可以会有一台或多台应用型虚拟机。一台应用型虚拟机上可以部署多个应用。若有一台应用型虚拟机,则可以将用户选定的全部应用部署在该应用型虚拟机。换言之,所有应用共用一台应用型虚拟机。
服务器以容器的方式进行应用部署。具体的,服务器通过调用容器集群管理接口,向容器集群管理服务器发送的启停或更新服务的请求。容器集群管理服务器对启停或更新服务的请求进行翻译,转换成启停或更新容器的请求,将启停或更新容器的请求发送至容器管理代理。由于容器管理代理预先通过初始化指令部署在应用型虚拟机上,由此应用型虚拟机可以接收容器集群管理服务器发送的启停或更新服务的请求。容器管理代理将启停或更新容器的请求发送至预先启动的容器守护进程,如docker daemon(应用程序引擎守护进程)。容器守护进程从预设的容器仓库拉取相应的容器文件,在申请到的应用型虚拟机上通过调整相关配置参数启动容器文件,从而实现应用部署。配置参数可以是端口号、volume映射(数据卷映射)等。
以容器的方式进行应用部署,可以大大提高应用部署效率,进而提高测试环境部署效率。根据实际实验测得,20个应用的测试环境部署过程仅需要约30分钟。
步骤212,获取完成应用部署的测试环境集群对应的测试环境标识,将测试环境标识返回至终端。
在完成用户选定的全部应用的部署之后,测试环境部署完成。服务器获取完成应用部署的测试环境集群对应的测试环境标识,将测试环境标识返回至终端。终端可以利用测试环境标识获取关联的测试资源进行项目测试。在另一个实施例中,服务器还将测试环境使用需要的信息发送至终端,保证用户可立即使用该测试环境投入测试。微型的测试环境虽小,但测试环境主体是完备的,具有高扩展性。
本实施例中,根据终端发送的测试资源需求信息,可以直接计算需要的物理资源;根据需要的物理资源,可以进行物理资源申请;通过对申请到的物理资源初始化,可以在申请到的物理资源上部署容器管理代理;通过调用容器集群管理接口,可以将初始化后的物理资源配置为测试环境集群;通过向容器管理代理发送容器部署请求,可以在测试环境集群进行应用部署;将完成应用部署的测试环境集群对应的测试环境标识发送至终端,可以使终端基于测试环境标识关联的测试资源进行项目测试。由于测试环境的用户可以根据测试需求直接进行测试环境部署,降低测试环境部署门槛,无需再依赖其他人员,提高测试环境部署效率,且能够在资源集约的情况下满足开发人员及测试人员对测试环境的多样化需求,支持测试项目的快速迭代。根据软件实际测试需求有针对性的搭建微型测试环境,可以节约测试资源。
在一个实施例中,接收终端发送的测试资源需求信息包括:接收终端发送的测试环境部署请求;根据测试环境部署请求,获取预设的测试环境部署页面;将测试环境部署页面返回至终端;测试环境部署页面包括多个服务选项、应用选项和数据选项;接收终端返回的测试资源需求信息;测试资源需求信息包括用户在测试环境部署页面选定的服务选项、应用选项或数据选项。
测试环境部署平台包括基本信息模块、服务模块、应用模板和数据模块。每个模块允许用户自定义。其中,基本信息模块用于获取用户期望搭建的测试环境的环境用途描述、管理人标识、环境回收时间等信息。服务模块向用户提供多个服务选项,如数据库、中间件、DNS(Domain Name System,域名系统)、文件存储系统等。应用模块向用户提供多个应用选项,如模板应用、线上版本应用或指定版本应用。其中,模板应用是指用户选择频率较高或者适用于不同测试场景的应用群组,包括多个应用,减少用户逐个添加应用的繁琐,提高应用选择效率。线上版本应用是指用户未指定应用版本时,默认选定线上版本的应用。数据模块向用户提供多个数据选项,如用户数据或资产数据等用于不同类型测试的历史数据。
当用户需要部署测试环境时,可以在终端基于测试环境部署平台向服务器发送测试环境部署请求。服务器根据测试环境部署请求,获取预设的测试环境部署页面,将测试环境部署页面返回至终端。测试环境部署页面包括上述四个模块。用户可以根据测试需求在测试环境部署页面录入测试资源需求信息。具体的,在基本信息模块配置环境用途描述、管理人标识、环境回收时间等信息,并在其他三个模块选定需要的服务选项、应用选项和数据选项。
本实施例中,用户可以契合测试需求选择服务选项、数据选项或应用选项,从而搭建满足不同测试需求的测试环境,使有限的测试资源能够支持更多的测试项目。
在一个实施例中,物理资源包括多个虚拟机;根据测试资源需求信息计算需要的物理资源包括:根据选定的服务选项的数量,计算需要的虚拟机的数量;根据选定的服务选项的类型,确定需要的每个虚拟机的类型;虚拟机的类型包括服务型虚拟机和应用型虚拟机;根据选定的应用选项对应应用程序所需要的存储空间,计算应用型虚拟机所需的存储空间;根据预设的基础存储空间以及选定的数据选项对应数据所需要的存储空间,计算服务型虚拟机所需的存储空间。
服务器获取预先设定的服务选项与虚拟机数量的对应关系,根据该对应关系及当前用户选定的服务选项的数量,计算需要的虚拟机的数量。例如,可以设定每个服务选项对应一台虚拟机。
服务器根据用户选定的服务选项的类型,确定需要的虚拟机的类型。服务选项的类型可以是entry、app、redis、mysql等。虚拟机的类型包括应用型虚拟机和服务型虚拟机。当服务选项的类型为app时,对应虚拟机的类型可以是应用型虚拟机。对于其他类型的服务选项,对应虚拟机的类型可以服务型虚拟机。
服务器根据用户选定的应用选项的数量以及每个应用选项对应应用程序所需内存,计算应用型虚拟机需要的存储空间。服务器根据默认配置的基础存储空间以及选定的数据选项对应数据所需要的存储空间,确定服务型虚拟机对需要的存储空间。
本实施例中,用户只需基于测试需求选定需要的测试资源,服务器自动将测试资源转换为需要申请的物理资源,相比传统的运维人员根据开发人员或测试人员的测试需求人工计算的方式,不仅可以提高转换效率,也可以提高转换准确率。
在一个实施例中,如图3所示,根据需要的物理资源进行物理资源申请,对申请到的物理资源初始化,在申请到的物理资源上部署容器管理代理的步骤,即物理资源申请及初始化的步骤,包括:
步骤302,根据需要的物理资源生成物理资源分配请求。
步骤304,调用私有云接口,将物理资源分配请求发送至私有云,使私有云根据物理资源分配请求进行物理资源分配。
步骤306,接收私有云返回的分配完成提示;分配完成提示携带了多个虚拟机标识及分别对应的虚拟机类型;虚拟机类型包括应用型虚拟机。
服务器根据计算得到的需要的物理资源的资源信息生成物理资源分配请求,调用私有云接口,向私有云发送物理资源分配请求。私有云根据物理资源分配请求进行测试资源分配。当资源分配完成时,私有云回调接口向服务器返回分配完成提示。分配完成提示包含了分配的多个虚拟机的虚拟机标识和虚拟机类型。
步骤308,根据虚拟机类型获取对应的初始化脚本;应用型虚拟机对应的初始化脚本包括容器管理代理程序。
服务器预存了多种虚拟机类型分别对应的初始化脚本。当接收到私有云发送的分配完成提示时,服务器根据虚拟机类型,获取每个虚拟机标识对应的初始化脚本,将获取到的初始化脚本发送至相应虚拟机标识对应的虚拟机,对虚拟机进行初始化。
步骤310,将初始化脚本发送至相应虚拟机标识对应的虚拟机,对虚拟机进行初始化,使应用型虚拟机通过运行容器管理代理程序部署容器管理代理。
在应用型虚拟机上安装容器管理代理也是初始化的一部分。具体的,应用型虚拟机对应的初始化脚本包括容器管理代理程序。服务器将携带容器管理代理程序的初始化脚本发送至相应虚拟机标识对应的应用型虚拟机,使应用型虚拟机通过运行容器管理代理程序实现容器管理代理部署。
本实施例中,调用私有云进行测试资源分配,相对传统方式运维人员向基础架构人员申请测试资源,由基础架构人员人工进行测试资源分配,可以提高资源分配效率和准确性。对分配到的物理资源进行初始化,并通过初始化在申请到的应用型虚拟机上部署容器管理代理,基于容器管理代理可以实现应用的远程自动部署,从而可以提高应用部署的成本和效率。
在一个实施例中,该方法还包括:向容器集群管理服务器发送网络隔离请求;网络隔离请求携带了测试环境标识和overlay网络(覆盖网络)标识;使容器集群管理服务器根据overlay网络标识,对测试环境标识对应的测试环境集群中多个虚拟机进行网络配置,以使同一测试环境集群中多个虚拟机共用同一个overlay网络,不同测试环境集群采用不同overlay网络。
用户可以基于不同的测试需求,在测试环境部署平台部署多套不同的测试环境。该测试环境部署平台也支持在已有测试环境的基础上搭建新的测试环境。为了保证不同测试环境的隔离性,服务器对不同测试环境进行不同的网络配置。具体的,服务器通过调用容器集群管理接口,向容器集群管理服务器发送网络隔离请求。网络隔离请求携带了测试环境标识和overlay网络标识。容器集群管理服务器识别接收到的overlay网络标识是否属于已有测试环境对应的overlay网络标识。若否,则表示尚未有测试环境采用该overlay网络标识,容器集群管理服务器根据接收到的测试环境标识获取对应的测试环境集群,利用该overlay网络标识对测试环境标识对应的测试环境集群中多个虚拟机进行网络配置。同一测试环境集群中多个虚拟机共用同一个overlay网络,不同测试环境集群采用不同overlay网络,从而保证不同测试环境之间的隔离性。
本实施例中,通过简单的网络配置即可实现不同测试环境之间的隔离,提高测试环境隔离效率;对不同测试环境进行网络隔离,可以避免多个测试环境对用户造成使用干扰。
在一个实施例中,测试资源需求信息包括管理人标识和环境回收时间;该方法还包括:分别对多个测试环境标识对应的环境回收时间是否到达进行监测;若达到环境回收时间时,向相应管理人标识对应的管理终端发送回收提示;判断在预设时间内是否接收到管理终端返回的延期请求;若是,则根据延期请求更新环境回收时间;否则,对相应测试环境标识对应多个虚拟机进行资源释放。
用户在进行测试环境部署时,需要指定测试环境的管理人标识和环境回收时间。服务器对每个测试环境标识对应的环境回收时间进行监测。若监测到有测试环境集群达到对应的环境回收时间时,向相应管理人标识对应的管理终端发送回收提示。若用户期望继续采用该测试环境进行项目测试,可以在预设时间内通过管理终端向服务器延期请求。服务器根据延期请求更新环境回收时间,并继续对更新后的环境回收时间进行监测。
若在预设时间内未接收到管理终端返回的延期请求,则服务器对相应测试环境标识对应多个虚拟机进行资源释放。例如,服务器可以将该测试环境标识对应多个虚拟机的虚拟机标识推送至私有云,使私有云对这些虚拟机重新进行资源分配,应用于新的测试环境的部署。
本实施例中,对已经部署的测试环境进行回收监测,可以保证测试资源回收及时性,从而可以减少因测试资源无端占用造成测试资源紧张的情况,进而能够使有限的测试资源能够支持更多的测试项目。
应该理解的是,虽然图2~3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2~3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种测试环境部署装置,包括:资源申请模块402、集群封装模块404和应用部署模块406,其中:
资源申请模块402,用于接收终端发送的测试资源需求信息;根据测试资源需求信息计算需要的物理资源;根据需要的物理资源进行物理资源申请,对申请到的物理资源初始化,在申请到的物理资源上部署容器管理代理。
集群封装模块404,用于通过调用容器集群管理接口,将初始化后的物理资源配置为测试环境集群。
应用部署模块406,用于向容器管理代理发送容器部署请求;使容器管理代理根据容器部署请求在预设的容器仓库拉取容器文件,利用容器文件在测试环境集群进行应用部署;获取完成应用部署的测试环境集群对应的测试环境标识,将测试环境标识返回至终端。
在一个实施例中,资源申请模块402包括需求提交模块4022,用于接收终端发送的测试环境部署请求;根据测试环境部署请求,获取预设的测试环境部署页面;将测试环境部署页面返回至终端;测试环境部署页面包括多个服务选项、应用选项和数据选项;接收终端返回的测试资源需求信息;测试资源需求信息包括用户在测试环境部署页面选定的服务选项、应用选项或数据选项。
在一个实施例中,物理资源包括多个虚拟机;资源申请模块402包括资源计算模块4024,用于根据选定的服务选项的数量,计算需要的虚拟机的数量;根据选定的服务选项的类型,确定需要的每个虚拟机的类型;虚拟机的类型包括服务型虚拟机和应用型虚拟机;根据选定的应用选项对应应用程序所需要的存储空间,计算应用型虚拟机所需的存储空间;根据预设的基础存储空间以及选定的数据选项对应数据所需要的存储空间,计算服务型虚拟机所需的存储空间。
在一个实施例中,资源申请模块402包括资源初始化模块4026,用于根据需要的物理资源生成物理资源分配请求;调用私有云接口,将物理资源分配请求发送至私有云,使私有云根据物理资源分配请求进行物理资源分配;接收私有云返回的分配完成提示;分配完成提示携带了多个虚拟机标识及分别对应的虚拟机类型;虚拟机类型包括应用型虚拟机;根据虚拟机类型获取对应的初始化脚本;应用型虚拟机对应的初始化脚本包括容器管理代理程序;将初始化脚本发送至相应虚拟机标识对应的虚拟机,对虚拟机进行初始化,使应用型虚拟机通过运行容器管理代理程序部署容器管理代理。
在一个实施例中,物理资源包括多个虚拟机;集群封装模块404还用于向容器集群管理服务器发送环境创建请求,使容器集群管理服务器根据环境创建请求创建虚拟的测试环境集群;向容器集群管理服务器发送集群封装请求,使容器集群管理服务器根据集群封装请求在测试环境集群添加申请到的虚拟机对应的虚拟机标识。
在一个实施例中,集群封装模块404还用于向容器集群管理服务器发送网络隔离请求;网络隔离请求携带了测试环境标识和overlay网络标识;使容器集群管理服务器根据overlay网络标识,对测试环境标识对应的测试环境集群中多个虚拟机进行网络配置,以使同一测试环境集群中多个虚拟机共用同一个overlay网络,不同测试环境集群采用不同overlay网络。
在一个实施例中,测试资源需求信息包括管理人标识和环境回收时间;该装置还包括环境回收模块408,用于分别对多个测试环境标识对应的环境回收时间是否到达进行监测;若达到环境回收时间,向相应管理人标识对应的管理终端发送回收提示;判断在预设时间内是否接收到管理终端返回的延期请求;若是,则根据延期请求更新环境回收时间;否则,对相应测试环境标识对应多个虚拟机进行资源释放。
关于测试环境部署装置的具体限定可以参见上文中对于测试环境部署方法的限定,在此不再赘述。上述测试环境部署装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种测试环境部署方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收终端发送的测试资源需求信息;根据测试资源需求信息计算需要的物理资源;根据需要的物理资源进行物理资源申请,对申请到的物理资源初始化,在申请到的物理资源上部署容器管理代理;通过调用容器集群管理接口,将初始化后的物理资源配置为测试环境集群;向容器管理代理发送容器部署请求;使容器管理代理根据容器部署请求在预设的容器仓库拉取容器文件,利用容器文件在测试环境集群进行应用部署;获取完成应用部署的测试环境集群对应的测试环境标识,将测试环境标识返回至终端。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收终端发送的测试环境部署请求;根据测试环境部署请求,获取预设的测试环境部署页面;将测试环境部署页面返回至终端;测试环境部署页面包括多个服务选项、应用选项和数据选项;接收终端返回的测试资源需求信息;测试资源需求信息包括用户在测试环境部署页面选定的服务选项、应用选项或数据选项。
在一个实施例中,物理资源包括多个虚拟机;处理器执行计算机程序时还实现以下步骤:根据选定的服务选项的数量,计算需要的虚拟机的数量;根据选定的服务选项的类型,确定需要的每个虚拟机的类型;虚拟机的类型包括服务型虚拟机和应用型虚拟机;根据选定的应用选项对应应用程序所需要的存储空间,计算应用型虚拟机所需的存储空间;根据预设的基础存储空间以及选定的数据选项对应数据所需要的存储空间,计算服务型虚拟机所需的存储空间。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据需要的物理资源生成物理资源分配请求;调用私有云接口,将物理资源分配请求发送至私有云,使私有云根据物理资源分配请求进行物理资源分配;接收私有云返回的分配完成提示;分配完成提示携带了多个虚拟机标识及分别对应的虚拟机类型;虚拟机类型包括应用型虚拟机;根据虚拟机类型获取对应的初始化脚本;应用型虚拟机对应的初始化脚本包括容器管理代理程序;将初始化脚本发送至相应虚拟机标识对应的虚拟机,对虚拟机进行初始化,使应用型虚拟机通过运行容器管理代理程序部署容器管理代理。
在一个实施例中,物理资源包括多个虚拟机;处理器执行计算机程序时还实现以下步骤:向容器集群管理服务器发送环境创建请求,使容器集群管理服务器根据环境创建请求创建虚拟的测试环境集群;向容器集群管理服务器发送集群封装请求,使容器集群管理服务器根据集群封装请求在测试环境集群添加申请到的虚拟机对应的虚拟机标识。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:向容器集群管理服务器发送网络隔离请求;网络隔离请求携带了测试环境标识和overlay网络标识;使容器集群管理服务器根据overlay网络标识,对测试环境标识对应的测试环境集群中多个虚拟机进行网络配置,以使同一测试环境集群中多个虚拟机共用同一个overlay网络,不同测试环境集群采用不同overlay网络。
在一个实施例中,测试资源需求信息包括管理人标识和环境回收时间;处理器执行计算机程序时还实现以下步骤:分别对多个测试环境标识对应的环境回收时间是否到达进行监测;若达到环境回收时间,向相应管理人标识对应的管理终端发送回收提示;判断在预设时间内是否接收到管理终端返回的延期请求;若是,则根据延期请求更新环境回收时间;否则,对相应测试环境标识对应多个虚拟机进行资源释放。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收终端发送的测试资源需求信息;根据测试资源需求信息计算需要的物理资源;根据需要的物理资源进行物理资源申请,对申请到的物理资源初始化,在申请到的物理资源上部署容器管理代理;通过调用容器集群管理接口,将初始化后的物理资源配置为测试环境集群;向容器管理代理发送容器部署请求;使容器管理代理根据容器部署请求在预设的容器仓库拉取容器文件,利用容器文件在测试环境集群进行应用部署;获取完成应用部署的测试环境集群对应的测试环境标识,将测试环境标识返回至终端。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收终端发送的测试环境部署请求;根据测试环境部署请求,获取预设的测试环境部署页面;将测试环境部署页面返回至终端;测试环境部署页面包括多个服务选项、应用选项和数据选项;接收终端返回的测试资源需求信息;测试资源需求信息包括用户在测试环境部署页面选定的服务选项、应用选项或数据选项。
在一个实施例中,物理资源包括多个虚拟机;计算机程序被处理器执行时还实现以下步骤:根据选定的服务选项的数量,计算需要的虚拟机的数量;根据选定的服务选项的类型,确定需要的每个虚拟机的类型;虚拟机的类型包括服务型虚拟机和应用型虚拟机;根据选定的应用选项对应应用程序所需要的存储空间,计算应用型虚拟机所需的存储空间;根据预设的基础存储空间以及选定的数据选项对应数据所需要的存储空间,计算服务型虚拟机所需的存储空间。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据需要的物理资源生成物理资源分配请求;调用私有云接口,将物理资源分配请求发送至私有云,使私有云根据物理资源分配请求进行物理资源分配;接收私有云返回的分配完成提示;分配完成提示携带了多个虚拟机标识及分别对应的虚拟机类型;虚拟机类型包括应用型虚拟机;根据虚拟机类型获取对应的初始化脚本;应用型虚拟机对应的初始化脚本包括容器管理代理程序;将初始化脚本发送至相应虚拟机标识对应的虚拟机,对虚拟机进行初始化,使应用型虚拟机通过运行容器管理代理程序部署容器管理代理。
在一个实施例中,物理资源包括多个虚拟机;计算机程序被处理器执行时还实现以下步骤:向容器集群管理服务器发送环境创建请求,使容器集群管理服务器根据环境创建请求创建虚拟的测试环境集群;向容器集群管理服务器发送集群封装请求,使容器集群管理服务器根据集群封装请求在测试环境集群添加申请到的虚拟机对应的虚拟机标识。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:向容器集群管理服务器发送网络隔离请求;网络隔离请求携带了测试环境标识和overlay网络标识;使容器集群管理服务器根据overlay网络标识,对测试环境标识对应的测试环境集群中多个虚拟机进行网络配置,以使同一测试环境集群中多个虚拟机共用同一个overlay网络,不同测试环境集群采用不同overlay网络。
在一个实施例中,测试资源需求信息包括管理人标识和环境回收时间;计算机程序被处理器执行时还实现以下步骤:分别对多个测试环境标识对应的环境回收时间是否到达进行监测;若达到环境回收时间,向相应管理人标识对应的管理终端发送回收提示;判断在预设时间内是否接收到管理终端返回的延期请求;若是,则根据延期请求更新环境回收时间;否则,对相应测试环境标识对应多个虚拟机进行资源释放。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。