一种运行环境的搭建系统、方法和装置与流程

文档序号:15215859发布日期:2018-08-21 16:51阅读:146来源:国知局

本申请涉及计算机技术领域,尤其涉及一种运行环境的搭建系统、方法和装置。



背景技术:

在产品的开发过程中,通常需要为产品搭建不同的运行环境,以便于在不同的运行环境下运行产品。例如,可以搭建产品的开发环境、测试环境等,在成功搭建这些运行环境后,可以在这些运行环境下运行产品,以便于对产品进行开发、测试等。

通常,在为产品搭建不同的运行环境时,可以基于该产品的产品配置进行搭建。然而,在实际应用中,不同产品的产品配置不同,同一产品不同版本之间的产品配置也不同,同一版本的产品在不同运行环境下的产品配置亦不同。这样,由于产品配置在不同产品、不同版本以及不同运行环境下的差异性,导致在基于产品配置为产品搭建运行环境时比较困难。



技术实现要素:

本申请实施例提供一种运行环境的搭建系统、方法和装置,用于解决在基于产品配置为产品搭建运行环境时,由于产品配置在不同产品、不同版本以及不同运行环境下的差异性,导致实际为产品搭建运行环境时比较困难的问题。

为解决上述技术问题,本申请实施例是这样实现的:

第一方面,提出一种运行环境的搭建系统,包括:配置中心、环境中心和运行环境,其中:

所述配置中心存储有用于搭建不同产品在不同版本下的目标环境的产品配置和环境配置,所述产品配置中包含环境变量;

所述环境中心,从所述配置中心获取用于搭建第一目标环境的第一产品配置以及第一环境配置;将所述第一环境配置替换所述第一产品配置中包含的所述环境变量,得到第二产品配置;根据所述第二产品配置搭建所述第一目标环境;

所述运行环境用于运行搭建的目标环境。

第二方面,提出了一种运行环境的搭建方法,该方法包括:

获取用于搭建第一目标环境的第一产品配置以及第一环境配置,所述第一产品配置中包含环境变量;

将所述第一环境配置替换所述第一产品配置中包含的所述环境变量,得到第二产品配置;

根据所述第二产品配置搭建所述第一目标环境。

第三方面,提出一种运行环境的搭建装置,该装置包括:

获取单元,获取用于搭建第一目标环境的第一产品配置以及第一环境配置,所述第一产品配置中包含环境变量;

替换单元,将所述第一环境配置替换所述第一产品配置中包含的所述环境变量,得到第二产品配置;

搭建单元,根据所述第二产品配置搭建所述第一目标环境。

第四方面,提出一种电子设备,该电子设备包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,该可执行指令在被执行时使该处理器执行以下操作:

获取用于搭建第一目标环境的第一产品配置以及第一环境配置,所述第一产品配置中包含环境变量;

将所述第一环境配置替换所述第一产品配置中包含的所述环境变量,得到第二产品配置;

根据所述第二产品配置搭建所述第一目标环境。

第五方面,提出一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下方法:

获取用于搭建第一目标环境的第一产品配置以及第一环境配置,所述第一产品配置中包含环境变量;

将所述第一环境配置替换所述第一产品配置中包含的所述环境变量,得到第二产品配置;

根据所述第二产品配置搭建所述第一目标环境。

本申请实施例提供的技术方案,将用于搭建产品运行环境的产品配置中与运行环境相关的环境配置由环境变量代替,将不同运行环境下的环境配置与产品配置分别存储,并通过环境变量建立产品配置与环境配置之间的关联。这样,在搭建产品的运行环境时,可以根据与该运行环境对应的环境配置以及产品配置快速实现运行环境的搭建,简化了搭建运行环境的步骤,提高了搭建运行环境的效率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请的一个实施例运行环境的搭建系统的结构示意图;

图2是本申请的一个实施例配置中心存储产品配置和环境配置的示意图;

图3是本申请的一个实施例产品配置和环境配置的示意图;

图4是本申请的一个实施例产品开发过程中搭建运行环境的示意图;

图5是本申请的一个实施例运行环境的搭建方法的流程示意图;

图6是本申请的一个实施例运行环境的搭建方法的流程示意图;

图7是本申请的一个实施例电子设备的结构示意图;

图8是本申请的一个实施例运行环境的搭建装置的结构示意图。

具体实施方式

在产品的开发过程中,通常需要为产品搭建各种各样的运行环境,例如搭建开发环境、测试环境、性能环境以及生产环境等。然而,在实际搭建产品的运行环境时,由于产品配置在不同产品、不同版本以及不同的运行环境下的差异性,导致实际搭建产品的运行环境时比较困难。

传统的运行环境的搭建方法,通常由人工在指定的运行环境下搭建指定的产品版本。然而,随着产品的版本越来越多,运行环境的类型越来越多,用于搭建运行环境的产品配置也越来越多(可以包含上百个应用或上百个资源依赖等),这样,采用人工搭建的方法为产品的不同版本搭建运行环境时,将会消耗大量的时间,效率较低,且在产品配置比较多的情况下,人工搭建的方法容易出错,导致不能成功搭建运行环境。

现有技术中,为了便于搭建产品的运行环境,针对同一产品而言,通常可以维护该产品在不同版本下的产品配置,不同版本之间的产品配置不同,同一版本的产品配置可以用于搭建该版本下不同的运行环境,在需要搭建某一运行环境时,可以基于维护的产品配置进行自动化搭建。

例如,针对产品a的版本v1~vn,可以维护n套产品配置,n套产品配置分别对应产品a的版本v1~vn。在需要搭建v1版本的测试环境时,可以在维护的v1版本的产品配置的基础上进行适应性修改,以搭建v1版本的测试环境。

然而,在实际应用中,由于上述运行环境的搭建方法针对一个版本的产品而言,仅维护了一套产品配置,因此,在基于该套产品配置搭建运行环境时,不能准确区分不同运行环境需要哪些产品配置,从而无法准确搭建所需的运行环境。也就是说,在仅维护一套产品配置的情况下,将该版本的产品部署到不同的运行环境时不能满足需求。

为了快速、准确地搭建产品的运行环境,解决上述技术问题,本申请实施例提供一种运行环境的搭建系统、方法和装置,该系统包括:配置中心、环境中心和运行环境,其中:所述配置中心存储有用于搭建不同产品在不同版本下的目标环境的产品配置和环境配置,所述产品配置中包含环境变量;所述环境中心,从所述配置中心获取用于搭建第一目标环境的第一产品配置以及第一环境配置;将所述第一环境配置替换所述第一产品配置中包含的所述环境变量,得到第二产品配置;根据所述第二产品配置搭建所述第一目标环境;所述运行环境用于运行搭建的目标环境。

本申请实施例提供的技术方案,将用于搭建产品运行环境的产品配置中与运行环境相关的环境配置由环境变量代替,将不同运行环境下的环境配置与产品配置分别存储,并通过环境变量建立产品配置与环境配置之间的关联。这样,在搭建产品的运行环境时,可以根据与该运行环境对应的环境配置以及产品配置快速实现运行环境的搭建,简化了搭建运行环境的步骤,提高了搭建运行环境的效率。

为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

本申请实施例提供的技术方案,可以用于搭建不同产品在不同版本下不同的运行环境,所述运行环境可以包括但不限于开发环境、测试环境、性能环境以及生产环境。

以下结合附图,详细说明本申请各实施例提供的技术方案。

图1是本申请的一个实施例运行环境的搭建系统的结构示意图。所述运行环境的搭建系统可以包括:配置中心11、环境中心12和运行环境13,其中:

所述配置中心11存储有用于搭建不同产品在不同版本下的目标环境的产品配置和环境配置,所述产品配置中包含环境变量;

所述环境中心12,从所述配置中心获取用于搭建第一目标环境的第一产品配置以及第一环境配置;将所述第一环境配置替换所述第一产品配置中包含的所述环境变量,得到第二产品配置;根据所述第二产品配置搭建所述第一目标环境;

所述运行环境13用于运行搭建的目标环境。

本申请实施例中,可以将用于搭建不同产品在不同版本下的目标环境的产品配置中,与目标环境相关的环境配置由环境变量代替,并通过环境变量建立产品配置与环境配置之间的关联。同时,可以由配置中心11将环境配置与包含环境变量的产品配置分开存储,以支持各目标环境之间的差异的管理。

需要说明的是,针对一个版本的产品而言,配置中心11可以维护一套包含环境变量的产品配置,该套产品配置可以对应多套环境配置,每一套环境配置可以分别对应一个运行环境。这样,可以基于该套产品配置以及多套环境配置搭建该产品版本的不同的运行环境。

本申请实施例中,配置中心11中可以针对不同产品的不同版本,分别维护一套包含环境变量的产品配置以及与多套环境配置。在搭建其中一个产品版本的目标环境时,可以基于配置中心11中维护的与该产品版本对应的一套产品配置以及环境配置搭建该目标环境。

还需要说明的是,针对同一个产品而言,环境变量在该产品的产品配置中可以具有唯一性。在本申请实施例中,产品配置包含的环境变量的格式可以定义为;‘#{‘开头并且’}’,结尾的字符串,例如,可以是key=#{es_url_test}?a=b,其中,es_url_test为环境变量。

本申请实施例中,配置中心11可以提供产品配置和环境配置的读、写以及版本管理的能力。其中,为了便于管理包含环境变量的产品配置以及环境配置,可以采用分支管理的方式存储所述产品配置以及所述环境配置,以支持产品的开发过程中搭建目标环境的需求。

分支管理的方式包括但不限于:分布式版本控制系统git、分支管理系统svn以及代码版本控制软件cvs。其中,由于git的开发难度较小,易于实现分支管理和分支合并,因此,作为一种优选地方式,可以采用git管理所述产品配置和所述环境配置。

可选地,配置中心11在采用分支管理的方式存储所述产品配置以及所述环境配置时,具体可以包括:

若产品处于开发状态,则将所述产品对应的所述产品配置以及所述环境配置以迭代分支的方式存储;

若产品处于已发布状态,则将所述产品对应的所述产品配置以及所述环境配置以tag分支的方式存储。

由于在开发产品的过程中,存在已经发布的产品版本和正在开发中的产品版本,因此,为了便于对正在开发中的产品版本进行开发,以及便于管理已开发的产品版本的产品配置和环境配置,本申请实施例可以将处于开发状态的产品版本对应的产品配置以及环境配置以迭代分支的方式存储(即创建一个迭代分支),将已经发布的产品版本对应的产品配置以及环境配置以tag分支的方式存储(即创建一个tag)。

以迭代分支的方式存储和管理正在开发的产品版本的相关配置,可以便于在此迭代分支上对产品配置和环境配置进行不断修改,并最终得到想要开发的产品版本的产品配置和环境配置。以tag分支的方式存储和管理已发布的产品版本的相关配置,该tag分支上的产品配置和环境配置可以是固定不变的,在需要开发新的版本时,可以从tag分支为基础创建一个新的迭代分支,并在该迭代分支的基础上开发新的产品版本。

图2是本申请的一个实施例配置中心存储产品配置和环境配置的示意图。

如图2所示,配置中心11可以采用git管理同一产品的不同版本对应的产品配置和环境配置。其中,v1.0至vn.0是已发布的n个版本,在采用git对v1.0至vn.0进行管理时,可以为每一个版本下的产品配置和环境配置创建一个tag。

迭代分支(branch)可以用于开发新的产品版本,在该迭代分支下可以包含产品配置和环境配置,在开发过程中,可以对该迭代分支下的产品配置和环境配置进行修改,并在该迭代分支下不断进行迭代开发,最终可以得到新的产品版本对应的产品配置和环境配置。

图2中,迭代分支下的产品配置可以包含分面式缓存、antx、数据库以及定时任务等,环境配置可以包含开发环境下的配置、测试环境下的配置、性能环境下的配置以及生产环境下的配置等。

本申请实施例中,环境中心12可以基于配置中心11中的产品配置和环境配置搭建不同产品在不同版本下的目标环境。以搭建一个产品版本的第一目标环境为例,具体地:

首先,环境中心12可以从配置中心11中获取用于搭建第一目标环境的第一产品配置以及第一环境配置。

环境中心12在从配置中心11中获取与所述第一目标环境对应的第一产品配置时,可以从配置中心11当前的迭代分支中获取最新版本的产品配置,该产品配置即为所述第一产品配置。如果该最新版本的产品配置不是实际所需的产品配置,环境中心12也可以从配置中心11的tag分支中获取历史版本的产品配置,该历史版本的产品配置即为所述第一产品配置。

本申请实施例中,所述第一产品配置中包含环境变量。

环境中心12在从配置中心11获取所述第一环境配置时,可以从配置中心11当前的迭代分支中获取与所述第一目标环境对应的环境配置,该环境配置即为所述第一环境配置,也可以从配置中心11的其中一个tag分支中获取所述第一环境配置。

其次,环境中心12在获取所述第一产品配置以及所述第一环境配置后,可以将所述第一环境配置替换所述第一产品配置中包含的所述环境变量,得到第二产品配置。

由于所述第一产品配置中包含环境变量,并不能直接搭建所述第一目标环境,因此,可以将所述第一环境变量替换掉所述第一产品配置中的环境变量,从而得到第二产品配置。本申请实施例中,所述第二产品配置中包含环境配置,根据所述第二产品配置可以搭建所述第一目标环境。

图3是本申请的一个实施例产品配置和环境配置的示意图。

图3为开发环境(dev)下对应的产品配置和环境配置。环境中心12在获取到图3所示的产品配置以及环境配置后,可以将环境配置代替产品配置中的环境变量。如图3所示,可以使用环境配置中的11.239.238.100替换掉产品配置里的#{es_url_test}。

最后,环境中心12在得到所述第二产品配置后,可以根据所述第二产品配置搭建所述第一目标环境。

在本申请的一个实施例中,环境中心12可以提供将产品配置同步至运行环境13以搭建目标环境的能力,这样,在搭建所述第一目标环境时,可以将所述第二产品配置同步至运行环境13中,从而搭建所述第一目标环境。

需要说明的是,本实施例中,环境中心12在将所述第二产品配置同步至运行环境13以搭建所述第一目标环境时,可以所述第二产品配置全量同步至运行环境13中,以全量搭建所述第一目标环境。

本实施例中,将用于搭建产品运行环境的产品配置中与运行环境相关的环境配置由环境变量代替,将不同运行环境下的环境配置与产品配置分别存储,并通过环境变量建立产品配置与环境配置之间的关联。在搭建产品的运行环境时,可以根据与该运行环境对应的环境配置以及产品配置快速实现运行环境的搭建,相较于现有的运行环境的搭建方法,一方面可以准确获取需要搭建的运行环境的环境配置,以成功搭建所需的运行环境,另一方面还可以简化搭建运行环境的步骤,提高搭建运行环境的效率。

在本申请的另一实施例中,环境中心12在根据所述第二产品配置搭建所述第一目标环境时,可以包括:

获取所述运行环境运行第二目标环境时的第三产品配置,所述第二目标环境与所述第一目标环境属于相同类别的运行环境;

将所述第二产品配置与所述第三产品配置进行比较,确定所述第二产品配置与所述第三产品配置之间的差异;

根据所述第二产品配置与所述第三产品配置之间的差异,搭建所述第一目标环境。

在本实施例中,环境中心12还可以支持不同产品配置之间的diff、产品配置与所要搭建的目标环境之间的diff,并可以基于所述第二产品配置与历史产品配置之间的差异(可以理解为所述第二产品配置相较于所述历史产品配置的增量部分)搭建所述第一目标环境。具体地:

首先,环境中心12可以获取运行环境13运行第二目标环境时的第三产品配置。其中,所述第二目标环境与所述第一目标环境属于相同的运行环境,例如,所述第一目标环境是测试环境,所述第二目标环境也是测试环境。不同的是,所述第二目标环境是历史搭建的运行环境,在本实施例中,所述第二目标环境可以视为所述第一目标环境对应的真实环境。

本实施例中,可以令运行环境13运行所述第二目标环境,在运行环境13运行所述第二目标环境的过程中,环境中心12可以确定运行所述第二目标环境时所述第二目标环境对应的第三产品配置。其中,所述第三产品配置可以是历史产品配置,且包含环境配置。

其次,环境中心12在获得所述第三产品配置后,可以将所述第二产品配置与所述第三产品配置进行比较,确定所述第二产品配置与所述第三产品配置之间的差异。

本实施例中,所述第二产品配置与所述第三产品配置之间的差异可以用于表征所述第一目标环境与所述第二目标环境之间的差异。

最后,环境中心12可以根据所述第二产品配置与所述第三产品配置之间的差异,搭建所述第一目标环境。

环境中心12在根据所述第二产品配置与所述第三产品配置之间的差异,搭建所述第一目标环境时,可以包括:

将所述第二产品配置与所述第三产品配置之间的差异部分或全部同步至运行环境13中运行的所述第二目标环境,在运行环境13中搭建所述第一目标环境。

本实施例中,可以将所述第二产品配置与所述第三产品配置之间的差异同步至所述第二目标环境中以搭建所述第一目标环境。具体地,可以根据实际需要,将所述第二产品配置与所述第三产品配置之间的差异全部同步至所述第二目标环境,以在运行环境13中搭建所述第一目标环境,也可以将所述第二产品配置与所述第三产品配置之间的部分差异同步至所述第二目标环境中,以搭建所述第一目标环境。

这样,可以实现基于所述第二产品配置与所述第三产品配置之间的部分或全部差异,以及所述第二目标环境搭建所述第一目标环境,相较于根据所述第二产品配置全量搭建所述第一目标环境而言,可以进一步简化运行环境的搭建步骤,从而进一步提高运行环境的搭建效率。

需要说明的是,执行本实施例记载的方法的前提是:存在与所述第一目标环境对应的所述第二目标环境,也就是说,若存在所述第二目标环境,则可以使用本实施例记载的方法搭建所述第一目标环境;若不存在所述第一目标环境对应的所述第二目标环境,则可以直接根据所述第二产品配置全量搭建所述第一目标环境。

应理解,若存在与所述第一目标环境对应的所述第二目标环境,除了可以通过本实施例记载的方法搭建所述第一目标环境之外,也可以选择根据所述第二产品配置全量搭建所述第一目标环境,这里不做具体限定。

在实际应用中,若存在与所述第一目标环境对应的所述第二目标环境,则为了进一步简化搭建运行环境的步骤,提高搭建运行环境的效率,优选地,可以根据所述第二产品配置与所述第三产品配置之间的差异搭建所述第一目标环境。

环境中心12在基于上述记载的方法搭建所述第一目标环境后,所述方法还可以包括:

接收运行环境13返回的确认信息,所述确认信息用于表征是否成功搭建所述第一目标环境;

根据所述确认信息,确定是否成功搭建所述第一目标环境。

具体地,环境中心12在搭建所述第一目标环境后,运行环境13可以运行搭建的所述第一目标环境,在运行所述第一目标环境后,运行环境13可以生成一个确认信息,并将所述确认信息返回给环境中心12。其中,所述确认信息可以用于表征是否成功搭建所述第一目标环境。

环境中心12在接收到运行环境返回的所述确认信息后,可以根据所述确认信息确定是否成功搭建所述第一目标环境。

本实施例中,若环境中心12未成功搭建所述第一目标环境,则可以基于上述记载的方法重新获取所述第一产品配置以及所述第一环境配置,并基于上述记载的方法重新搭建所述第一目标运行环境,也可以基于原有的所述第一产品配置以及所述第一环境配置进行修改,继续进行迭代开发得到新的所述第二产品配置,并基于上述记载的方法重新搭建所述第一目标环境,直到成功搭建所述第一目标环境。

若环境中心12成功搭建所述第一目标环境,则可以基于上述记载的方法搭建其他运行环境,并最终完成新产品版本的发布。

本申请实施例提供的运行环境的搭建系统,在产品的开发过程中(包括产品发布以后),可以基于上述记载的方法快速实时的搭建各种运行环境。

图4是本申请的一个实施例产品开发过程中搭建运行环境的示意图。

图4中,以开发一个新的产品版本,并搭建该产品版本的开发环境、测试环境以及生产环境为例进行说明。

在开发阶段,开发新的版本v1.0和版本v1.1时,环境中心可以从配置中心存储的tag中拉取迭代分支v1.0和迭代分支v1.1,迭代分支v1.0以及迭代分支v1.1中均包含产品配置(包含环境变量)和环境配置,根据各自版本的产品配置以及环境配置可以得到版本v1.0对应的配置数据(包含环境配置的产品配置,这里使用配置数据表示)以及版本v1.1对应的配置数据。

根据版本v1.0以及版本v1.1各自的配置数据,可以搭建版本v1.0以及版本v1.1的开发环境。具体地,可以基于上述记载的方法,将版本v1.0以及版本v1.1各自的配置数据分别与真实开发环境运行时的配置数据进行比较,确定需要搭建的开发环境与真实开发环境之间的差异,从而搭建得到版本v1.0以及版本v1.1各自的开发环境。其中,真实开发环境可以理解为搭建的历史开发环境。

在开发阶段,开发人员回不停的对迭代分支v1.0和迭代分支v1.1中的产品配置和/或环境配置进行修改,并实时搭建开发环境,直至成功搭建所需的开发环境。

在成功搭建开发环境并完成开发阶段后,可以进入测试阶段。

在测试阶段,可以将版本v1.0以及版本1.1合并(merge)至主干(master),在搭建版本v1.0以及版本v1.1的测试环境时,环境中心可以使用合并后的主干中的产品配置和环境配置搭建这两个版本的测试环境。具体也可以采用上述记载的方法,将主干中版本v1.0的产品配置与测试环境下的环境配置相结合得到配置数据,将该配置数据与真实测试环境运行时的配置数据进行比较,确定需要搭建的版本v1.0的测试环境与真实测试环境之间的差异,从而搭建得到版本v1.0的测试环境。其中,真实测试环境可以理解为搭建的历史开发环境。同样的,也可以搭建得到版本v1.1的测试环境。

在测试阶段,如果发现一些bug,需要修改配置,则可以在主干上进行修改。

在成功搭建测试环境并完成测试阶段后,可以进入发布阶段。

在发布阶段,环境中心可以将版本v1.0/版本v1.1在测试阶段的产品配置和环境配置,以及版本v1.0/版本v1.1在发布阶段的产品配置和环境配置合并,从而基于上述记载的方法搭建版本v1.0/版本v1.1的生产环境。

在成功搭建生产环境后,可以在配置中心自动创建一个已发布的版本v1.0/版本v1.1的tag分支。当出现线上的bug后,可以从已创建的tag分支中拉出一个紧急发布的迭代分支(branch),开发人员可以在此迭代分支上对bug进行修复,并通过上述记载的方法将变化的配置数据同步至生产环境。同步完成后,可以将该修改的内容合并至主干中。

需要说明的是,图4中只给出了根据需要搭建的运行环境与对应的真实环境之间的差异,通过增量同步的方式搭建开发环境、测试环境以及生产环境,此外,也可以通过全量同步的方式搭建运行环境。

综上所述,本申请实施例提供的技术方案,将用于搭建产品运行环境的产品配置中与运行环境相关的环境配置由环境变量代替,将不同运行环境下的环境配置与产品配置分别存储,并通过环境变量建立产品配置与环境配置之间的关联。这样,在搭建产品的运行环境时,可以根据与该运行环境对应的环境配置以及产品配置快速实现运行环境的搭建,简化了搭建运行环境的步骤,提高了搭建运行环境的效率。

图5是本申请的一个实施例运行环境的搭建方法的流程示意图。所述运行环境的搭建方法可以由图1所示的环境中心执行。所述运行环境的搭建方法如下所述。

s502:获取用于搭建第一目标环境的第一产品配置以及第一环境配置。

在步骤502中,在产品的开发过程中,在需要搭建第一目标环境时,可以获取与所述第一目标环境对应的第一产品配置以及第一环境配置。

本申请实施例中,所述第一目标环境可以是产品开发过程中涉及到的开发环境、测试环境、性能环境或生产环境等;所述第一产品配置中可以包含环境变量。

获取所述第一产品配置与所述第一环境配置的具体实现方式可以与图1所示的实施例中记载的获取第一产品配合以及第一环境配置的实现方式相同,这里不再重复描述。

在获取到所述第一产品配置以及所述第一环境配置后,可以执行s504。

s504:将所述第一环境配置替换所述第一产品配置中包含的所述环境变量,得到第二产品配置。

在步骤504中,可以将所述第一环境配置替换掉所述第一产品配置中的环境变量,得到第二产品配置,所述第二产品配置中包含所述第一环境配置,所述第二产品配置可以用于搭建所述第一目标环境。

在得到所述第二环境配置后,可以执行s506。

s506:根据所述第二产品配置搭建所述第一目标环境。

在步骤506中,在得到所述第二产品配置后,可以根据所述第二产品配置搭建所述第一目标环境。

在本申请的一个实施例中,可以基于图1所示的实施例记载的方法,根据所述第二产品配置全量搭建所述第一目标环境。

在本申请的另一实施例中,根据所述第二产品配置搭建所述第一目标环境,可以包括:

获取运行第二目标环境时的第三产品配置,所述第二目标环境与所述第一目标环境属于相同类别的运行环境;

将所述第二产品配置与所述第三产品配置进行比较,确定所述第二产品配置与所述第三产品配置之间的差异;

根据所述第二产品配置与所述第三产品配置之间的差异,搭建所述第一目标环境。

在根据所述第二产品配置与所述第三产品配置之间的差异,搭建所述第一目标环境,可以包括:

将所述第二产品配置与所述第三产品配置之间的差异部分或全部同步至所述第二目标环境以搭建所述第一目标环境。

本实施例在搭建所述第一目标环境时,可以基于所述第二产品配置与所述第三产品配置之间的差异搭建所述第一目标环境,具体实现方式可以参见图1所示的实施例中记载的根据所述第二产品配置与所述第三产品配置之间的差异,搭建所述第一目标环境的实现方式,这里不再重复描述。

在步骤506中,基于上述记载的方法搭建得到所述第一目标环境后,所述方法还可以包括:

接收确认信息,所述确认信息用于表征是否成功搭建所述第一目标环境;

根据所述确认信息,确定是否成功搭建所述第一目标环境。

也就是说,在搭建所述第一目标环境后,可以接收确认信息,该确认信息可以由运行所述第一目标环境的运行环境返回,所述确认信息可以用于表征是否成功搭建所述第一目标环境。

在接收到所述确认信息后,而已根据所述确认信息确定是否成功搭建所述第一目标环境。具体可以参见图1所示的实施例中记载的相关内容,这里不再重复描述。

图6是本申请的一个实施例运行环境的搭建方法的流程示意图。图6所示的运行环境的搭建方法可以由图1所示的运行环境的搭建系统实现,且与图5所示的运行环境的搭建方法属于相同的发明构思。所述方法如下所述。

步骤601:环境中心从配置中心获取用于搭建第一目标环境的第一产品配置以及第一环境配置。

所述第一目标环境可以是开发环境、测试环境、性能环境或生产环境等,所述第一产品配置中包含环境变量。

环境中心从配置中心获取所述第一产品配置以及所述第一环境配置的具体实现方式可以与图1所示的实施例中获取第一产品配置以及第一环境配置的方法相同,这里不再重复描述。

此时,配置中心可以将所述第一产品配置以及所述第一环境配置返回给环境中心。

步骤602:环境中心将所述第一环境配置替换所述第一产品配置中的环境变量,得到第二产品配置。

所述第二产品配置为包含环境配置的产品配置。

步骤603:环境中心从运行环境中获取第二目标环境运行时的第三产品配置。

所述第二目标环境与所述第一目标环境属于相同类别的运行环境,例如,所述第一目标环境为生产环境,则所述第二目标环境也为生产环境,不同的是,所述第二目标环境相对于所述第一目标环境而言为历史的运行环境。

此时,运行环境可以运行所述第二目标环境,并将所述第三产品配置返回给环境中心。

步骤604:环境中心确定所述第二产品配置与所述第三产品配置之间的差异。

环境中心可以通过将所述第二产品配置与所述第三产品配置进行比较的方式,确定所述第二产品配置与所述第三产品配置之间的差异。所述第二产品配置与所述第三产品配置之间的差异可以视为所述第二产品配置相较于所述第三产品配置的增量。

步骤605:环境中心将所述第二产品配置与所述第三产品配置之间的差异展示给用户。

这里的用户可以视为产品开发人员

步骤606:环境中心将所述第二产品配置与所述第三产品配置之间的差异同步至运行环境,并搭建所述第一目标环境。

环境中心在将所述第二产品配置与所述第三产品配置之间的差异展示给开发人员后,开发人员可以选择差异中的部分或全部输入运行环境中,具体可以通过所述第二目标环境的资源创建的接口完成数据输入。

开发人员在输入数据后,环境中心可以将开发人员输入的数据同步至运行环境,即将所述第二产品配置与所述第三产品配置之间的差异同步至运行环境,以搭建所述第一目标环境。

步骤607:运行环境向环境中心返回确认信息。

环境中心在将环境中心将所述第二产品配置与所述第三产品配置之间的差异同步至运行环境后,可以在运行环境中搭建所述第一目标环境。之后,运行环境可以生成用于表征是否成功搭建所述第一目标环境的确认信息,并将所述确认信息返回给环境中心。

步骤608:环境中心根据所述确认信息确定是否成功搭建所述第一目标环境。

在步骤608中,若环境中心未成功搭建所述第一目标环境,则可以对所述第二产品配置进行修改,并根据修改后的产品配置,根据上述记载的步骤604值606重新搭建所述第一目标环境,直至成功搭建所述第一目标环境。

需要说明的是,图6所示的实施例中,环境中心在确定所述第二产品配置后,也可以不执行上述步骤604至步骤606,而是直接将所述第二产品配置同步至运行环境,并基于所述第二产品配置全量搭建所述第一目标环境。在实际应用中,为了进一步简化搭建所述第一目标环境的步骤,优选将所述第二产品配置与所述第三产品配置之间的差异同步至运行环境,进而搭建所述第一目标环境。

本申请实施例提供的技术方案,将用于搭建产品运行环境的产品配置中与运行环境相关的环境配置由环境变量代替,将不同运行环境下的环境配置与产品配置分别存储,并通过环境变量建立产品配置与环境配置之间的关联。这样,在搭建产品的运行环境时,可以根据与该运行环境对应的环境配置以及产品配置快速实现运行环境的搭建,简化了搭建运行环境的步骤,提高了搭建运行环境的效率。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

图7是本申请的一个实施例电子设备的结构示意图。请参考图7,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-accessmemory,ram),也可能还包括非易失性存储器(non-volatilememory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。

处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industrystandardarchitecture,工业标准体系结构)总线、pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。

处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成运行环境的搭建装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:

获取用于搭建第一目标环境的第一产品配置以及第一环境配置,所述第一产品配置中包含环境变量;

将所述第一环境配置替换所述第一产品配置中包含的所述环境变量,得到第二产品配置;

根据所述第二产品配置搭建所述第一目标环境。

上述如本申请图7所示实施例揭示的运行环境的搭建装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

该电子设备还可执行图5的方法,并实现运行环境的搭建装置在图5以及图6所示实施例的功能,本申请实施例在此不再赘述。

当然,除了软件实现方式之外,本申请的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图5所示实施例的方法,并具体用于执行以下操作:

获取用于搭建第一目标环境的第一产品配置以及第一环境配置,所述第一产品配置中包含环境变量;

将所述第一环境配置替换所述第一产品配置中包含的所述环境变量,得到第二产品配置;

根据所述第二产品配置搭建所述第一目标环境。

图8是本申请的一个实施例运行环境的搭建装置80的结构示意图。请参考图8,在一种软件实施方式中,所述运行环境的搭建装置80可包括:获取单元81、替换单元82和搭建单元83,其中:

获取单元81,获取用于搭建第一目标环境的第一产品配置以及第一环境配置,所述第一产品配置中包含环境变量;

替换单元82,将所述第一环境配置替换所述第一产品配置中包含的所述环境变量,得到第二产品配置;

搭建单元83,根据所述第二产品配置搭建所述第一目标环境。

可选地,所述搭建单元83根据所述第二产品配置搭建所述第一目标环境,包括:

获取运行第二目标环境时的第三产品配置,所述第二目标环境与所述第一目标环境属于相同类别的运行环境;

将所述第二产品配置与所述第三产品配置进行比较,确定所述第二产品配置与所述第三产品配置之间的差异;

根据所述第二产品配置与所述第三产品配置之间的差异,搭建所述第一目标环境。

可选地,所述搭建单元83根据所述第二产品配置与所述第三产品配置之间的差异,搭建所述第一目标环境,包括:

将所述第二产品配置与所述第三产品配置之间的差异部分或全部同步至所述第二目标环境以搭建所述第一目标环境。

可选地,所述运行环境的搭建装置80还可以包括:确认单元84,其中:

所述确认单元84,在所述搭建单元83搭建所述第一目标环境后,接收确认信息,所述确认信息用于表征是否成功搭建所述第一目标环境;

根据所述确认信息,确定是否成功搭建所述第一目标环境。

运行环境的搭建装置80还可执行图5或图6的方法,并实现运行环境的搭建装置在图5、图6所示实施例的功能,本申请实施例在此不再赘述。

总之,以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1