发布方法及系统与流程

文档序号:11285839阅读:225来源:国知局
发布方法及系统与流程

本申请涉及计算机网络技术领域,具体涉及一种发布方法及系统。



背景技术:

大型互联网业务为了快速满足用户日新月异的需求,产品的迭代速度非常快;参与大型业务开发的团队也逐渐增大,出现多个团队同时维护一个产品;为了提升服务质量,和用户体验,都会在多地域,建设对应的机房。

现有的部署方法通常采用全量镜像(fullimage)更新的方式。也就是说,将整个业务的代码打成一个整包,然后通过发布系统,发布到线上进行变更。

上述现有部署方法的缺陷在于:全量包的构建速度慢,通常需要将各模块全部编译后再发布;以及,全量包的数据量较大,传输成本高,带宽消耗大;此外,全量包的回归测试成本高,需要对多次发布的功能全部进行整体功能回归。



技术实现要素:

鉴于现有技术中的上述缺陷或不足,期望提供一种构建和部署速度较快、传输成本和回归测试成本较低的发布方法及系统。

第一方面,本发明提供一种发布方法,该方法包括:

并行下载若干待部署模块;

根据预配置的过滤策略从各待部署模块中筛选出若干待部署文件;

对各待部署文件进行冲突检测;

将各待部署文件打包成待部署文件包,以供部署端并行下载并进行以下至少一项操作:并行部署,更新镜像。

第二方面,本发明提供另一种发布方法,该方法包括:

并行下载若干待部署文件包;

根据所下载的各待部署文件包进行以下至少一项操作:并行部署,更新镜像。

其中,待部署文件包由构建端通过并行下载若干待部署模块,根据预配置的过滤策略筛选出若干待部署文件,根据各待部署文件的全路径进行冲突检测后打包生成。

第三方面,本发明提供一种构建端,包括:

第一并行下载单元,配置用于并行下载若干待部署模块;

过滤单元,配置用于根据预配置的过滤策略从各待部署模块中筛选出若干待部署文件;

冲突检测单元,配置用于对各待部署文件进行冲突检测;

构建单元,配置用于将各待部署文件打包成待部署文件包,以供部署端并行下载并进行以下至少一项操作:并行部署,更新镜像。

第四方面,本发明还提供一种部署端,包括:

第二并行下载单元,配置用于并行下载若干待部署文件包;

并行部署单元,配置用于根据所下载的各待部署文件包进行并行部署;

镜像更新单元,配置用于根据所下载的各待部署文件包进行更新镜像。

其中,待部署文件包由构建端通过并行下载若干待部署模块,根据预配置的过滤策略筛选出若干待部署文件并进行冲突检测后打包生成。

第五方面,本发明提供一种发布系统,该系统包括若干如以上第三方面所述的构建端,以及,若干如以上第四方面所述的部署端。

第六方面,本发明还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本发明各实施例提供的发布方法。

第七方面,本发明还提供一种存储有计算机程序的计算机可读存储介质,该计算机程序使计算机执行根据本发明各实施例提供的发布方法。

本发明诸多实施例提供的发布方法及系统通过对各待部署模块进行冲突检测,保障了模块化并行下载和并行部署的可行性,从而提供了一种模块化并行部署的发布机制,无需构建、下载和部署全量包,加快了构建和部署的速度,降低了回归测试成本,提升了业务迭代中发布环节的效率,降低了发布的风险;

本发明一些实施例提供的发布方法及系统进一步通过将全路径列表与当前其它发布进程中的全路径列表进行比对以进一步检测冲突风险,保障了多个发布进程并行实施的可行性,进一步提高了发布速度;

本发明一些实施例提供的发布方法及系统进一步通过在并行部署中采用差分部署的方式,进一步减少了部署的数据量和所花费的时间。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1为本发明一实施例提供的一种发布方法的流程图。

图2为图1所示方法的一种优选实施方式中步骤s11的流程图。

图3为图1所示方法的一种优选实施方式中步骤s13的流程图。

图4为图1所示方法的一种优选实施方式中步骤s15的流程图。

图5为图4所示步骤s15的一种优选实施方式的流程图。

图6为本发明一实施例提供的另一种发布方法的流程图。

图7为图6所示方法的一种优选实施方式中步骤s23的流程图。

图8为图7所示步骤s23的一种优选实施方式的流程图。

图9为本发明一实施例提供的一种构建端的结构示意图。

图10为图9所示构建端的一种优选实施方式的结构示意图。

图11为图9所示构建端的一种优选实施方式的结构示意图。

图12为本发明一实施例提供的一种部署端的结构示意图。

图13为图12所示部署端的一种优选实施方式的结构示意图。

图14为图13所示部署端的一种优选实施方式的结构示意图。

图15为本发明一实施例提供的一种设备的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1为本发明一实施例提供的发布方法的流程图。

如图1所示,在本实施例中,本发明提供的发布方法包括:

s11:并行下载若干待部署模块;

s13:根据预配置的过滤策略从各待部署模块中筛选出若干待部署文件;

s15:对各待部署文件进行冲突检测;

s17:将各待部署文件打包成待部署文件包,以供部署端并行下载并进行以下至少一项操作:并行部署,更新镜像。

具体地,在步骤s11中,当各开发团队或维护团队在短时间内分别提交多个待部署模块时,对这些待部署模块进行并行下载,并分别校验所下载的各待部署模块的数据是否正确。

在步骤s13中,可以根据实际需求配置不同的过滤策略,例如对于不同版本的产品可分别采用不同的过滤策略,或对于针对不同用户对象所分别部署的产品可分别采用不同的过滤策略,等。根据预配置的对应于待发布产品的过滤策略从各待部署模块中筛选出若干待部署文件。

在步骤s15中,具体可以根据实际需求配置为根据各待部署文件的全路径、路径、文件名、文件版本号、文件身份码、文件验证码(例如md5等)等任意一项或多项信息进行冲突检测,判断各待部署模块是否同时包括全路径相同的待部署文件,而导致冲突风险。

当检测到冲突风险时,可以配置为提示风险以供人工审核处理,也可以配置为根据文件版本号、文件身份码或文件验证码自动判断文件是否相同以进行自动处理,还可以配置为在自动处理后由人工复核,等。

若全路径相同的各待部署文件为不同文件,则需要回滚处理;若为相同文件,则覆盖后可进入步骤s17。

在步骤s17中,将通过冲突检测的各待部署文件打包,并将打包生成的待部署文件包存入所关联的分布式存储集群,例如nfs或者hdfs等共享式的文件网络存储集群,以供部署端并行下载并校验,以进行并行部署和/或更新镜像,最终完成本次产品发布。

在本实施例中,步骤s17中将待部署文件包存入所关联的分布式存储集群,在更多实施例中,还可根据实际需求配置为将待部署文件包存入所关联的其它类型存储集群,例如集中式的存储集群,或,存储在本地存储设备中,例如sata磁盘或ssd磁盘等。

上述实施例通过对各待部署模块进行冲突检测,保障了模块化并行下载和并行部署的可行性,从而提供了一种模块化并行部署的发布机制,无需构建、下载和部署全量包,加快了构建和部署的速度,降低了回归测试成本,提升了业务迭代中发布环节的效率,降低了发布的风险。

图2为图1所示方法的一种优选实施方式中步骤s11的流程图。

如图2所示,在一优选实施例中,步骤s11包括:

s111:获取各待部署模块的参数以分别生成各待部署模块的数据源地址;

s113:根据各数据源地址并行下载各待部署模块。

具体地,在本实施例中,步骤s111中的参数包括模块类型(例如git或svn等)、模块路径以及版本号。在更多实施例中,该参数还可根据实际需求配置为上述任意一项或多项,乃至于其它本领域常用的模块相关的参数。

图3为图1所示方法的一种优选实施方式中步骤s13的流程图。

如图3所示,在一优选实施例中,步骤s13包括:

s131:获取预配置的白名单和/或黑名单;

s133:根据白名单和/或黑名单从各待部署模块中筛选出若干待部署文件。

具体地,白名单包括若干指定需要部署的文件的信息,以供筛选出指定需要部署的文件;黑名单包括若干指定不需要部署的文件的信息,以供筛除指定不需要部署的文件。

在另一实施例中,上述白名单或黑名单也可配置在本地,并由对应的配置人员获取其配置权限后进行预配置,以供筛选待部署文件。

图4为图1所示方法的一种优选实施方式中步骤s15的流程图。

如图4所示,在一优选实施例中,步骤s15包括:

s151:遍历生成各待部署文件的全路径列表;

s152:比对该全路径列表中的各全路径,判断是否存在全路径相同的待部署文件:

若存在,则执行步骤s153:提示冲突风险以供选择进行覆盖,或,回滚并结束。

在另一些实施例中,步骤s153中还可采用上述自动判断并处理的处理机制,或自动处理后人工复核的处理机制,可实现相同的技术效果。

图5为图4所示步骤s15的一种优选实施方式的流程图。

如图5所示,在一优选实施例中,步骤s15进一步还包括:

s154:将全路径列表与当前其它发布进程中的全路径列表进行比对,判断是否存在全路径相同的待部署文件:

若存在,则执行步骤s155:提示冲突风险以供选择进行覆盖,或,回滚并结束。

与图4所示实施例相似地,步骤s155中同样可采用上述自动判断并处理的处理机制,或自动处理后人工复核的处理机制,可实现相同的技术效果。

上述实施例进一步通过将全路径列表与当前其它发布进程中的全路径列表进行比对以进一步检测冲突风险,保障了多个发布进程并行实施的可行性,进一步提高了发布速度。

在一优选实施例中,上述步骤s17进一步还包括:生成对应于待部署文件包的验证码,以供部署端获取并验证所下载的待部署文件包。

图6为本发明一实施例提供的另一种发布方法的流程图。

如图6所示,在本实施例中,本发明提供的另一种发布方法包括:

s21:并行下载若干待部署文件包;

s23:根据所下载的各待部署文件包进行以下至少一项操作:并行部署,更新镜像;

其中,待部署文件包由构建端通过执行上述图1-5所示的任一发布方法生成。

具体地,在步骤s21中,构建端执行上述图1-5所示的任一发布方法时,步骤s17中可能打包生成一个或多个待部署文件包,同时,可能存在多个构建端在短时间内同时执行上述图1-5所示的任一发布方法,而生成多个待部署文件包,对这些待部署文件包进行并行下载。

在步骤s23中,根据步骤s21所下载的各待部署文件包进行并行部署和/或更新镜像。具体地,可以根据实际需求配置为并行更新镜像或串行更新镜像。例如,当每次部署镜像服务之后,要对其加上版本,并且将其存储用来进行弹性伸缩的扩容用时,即可配置为串行更新镜像。

图7为图6所示方法的一种优选实施方式中步骤s23的流程图。

如图7所示,在一优选实施例中,步骤s23包括:

s233:解压各待部署文件包,与正式生产环境中的文件进行差分对比以筛选出若干差分部署文件;

s235:并行部署各差分部署文件。

本实施例进一步通过在并行部署中采用差分部署的方式,进一步减少了部署的数据量和所花费的时间。

在另一实施例中,也可根据实际需求将并行部署配置为全量部署并覆盖相同文件的部署方式。

图8为图7所示步骤s23的一种优选实施方式的流程图。

如图8所示,在一优选实施例中,步骤s233之前还包括:s231:停止当前运行的对应的服务,屏蔽对应的报警。

步骤s235之后还包括:s237:重新启动对应的服务,解除对对应报警的屏蔽。

图9为本发明一实施例提供的一种构建端的结构示意图。图9所示的构建端可对应执行图1所示的发布方法。

如图9所示,在本实施例中,本发明提供的一种构建端包括第一并行下载单元11、过滤单元13、冲突检测单元15和构建单元17。

其中,第一并行下载单元11配置用于并行下载若干待部署模块。

过滤单元13配置用于根据预配置的过滤策略从各待部署模块中筛选出若干待部署文件。

冲突检测单元15配置用于对各待部署文件进行冲突检测。

构建单元17配置用于将各待部署文件打包成待部署文件包,以供部署端并行下载并进行以下至少一项操作:并行部署,更新镜像。

图9所示构建端的发布原理参见图1所示的方法,此处不再赘述。

图10为图9所示构建端的一种优选实施方式的结构示意图。图10所示的构建端可对应执行图2所示的发布方法。

如图10所示,在一优选实施例中,第一并行下载单元11进一步包括协议转换子单元111和并行下载子单元113。

其中,协议转换子单元111配置用于获取各待部署模块的参数以分别生成各待部署模块的数据源地址。

并行下载子单元113配置用于根据各数据源地址并行下载各待部署模块。

在一优选实施例中,过滤单元13进一步配置用于获取预配置的白名单和/或黑名单,以及,根据白名单和/或黑名单从各待部署模块中筛选出若干待部署文件。具体过滤原理可参见上述图3所示的方法,此处不再赘述。

图11为图9所示构建端的一种优选实施方式的结构示意图。图11所示的构建端可对应执行图4或图5所示的发布方法。

如图11所示,在一优选实施例中,冲突检测单元15包括第一检测子单元151。

具体地,第一检测子单元151配置用于遍历生成各待部署文件的全路径列表,以及,比对全路径列表中的各全路径,判断是否存在全路径相同的待部署文件:若存在,则提示冲突风险以供选择进行覆盖,或,回滚并结束。本实施例中的冲突检测原理可参见图4所示的发布方法。

同样如图11所示,在一优选实施例中,冲突检测单元15还包括第二检测子单元153。

具体地,第二检测子单元153配置用于将该全路径列表与当前其它发布进程中的全路径列表进行比对,判断是否存在全路径相同的待部署文件:若存在,则提示冲突风险以供选择进行覆盖,或,回滚并结束。本实施例中的冲突检测原理可参见图5所示的发布方法。

在一优选实施例中,构建单元17进一步配置用于生成对应于待部署文件包的验证码,以供部署端获取并验证所下载的待部署文件包。

图12为本发明一实施例提供的一种部署端的结构示意图。图12所示的部署端可对应执行图6所示的发布方法。

如图12所示,在本实施例中,本发明提供的一种部署端包括第二并行下载单元21、并行部署单元23和镜像更新单元25。

第二并行下载单元21配置用于并行下载若干待部署文件包。

并行部署单元23配置用于根据所下载的各待部署文件包进行并行部署。

镜像更新单元25配置用于根据所下载的各待部署文件包进行更新镜像。

其中,该待部署文件包由上述图9-11所示的任一构建端生成。

图12所示部署端的发布原理参见图6所示的方法,此处不再赘述。

图13为图12所示部署端的一种优选实施方式的结构示意图。图13所示的部署端可对应执行图7所示的发布方法。

如图13所示,在一优选实施例中,并行部署单元23包括差分比对子单元231和并行部署子单元233。

差分比对子单元231配置用于解压各待部署文件包,与正式生产环境中的文件进行差分对比以筛选出若干差分部署文件。

并行部署子单元233配置用于并行部署各差分部署文件。

图14为图13所示部署端的一种优选实施方式的结构示意图。图14所示的部署端可对应执行图8所示的发布方法。

如图14所示,在一优选实施例中,并行部署单元23进一步还包括部署环境配置子单元235。

具体地,部署环境配置子单元235配置用于在差分对比之前停止当前运行的对应的服务,屏蔽对应的报警,以及在并行部署之后重新启动该对应的服务,解除对该对应的报警的屏蔽。

在一优选实施例中,第二并行下载单元21进一步配置用于获取各待部署文件包的验证码并分别进行验证。

更进一步地,本发明还提供一种发布系统,该系统包括若干上述如图9-11所示的任一构建端,以及,若干如图12-14所示的任一部署端。

具体地,在本实施例中,本发明提供的发布系统还包括一个分布式存储集群,用于存储各构建单元17打包生成的待部署文件包,并提供足够的io和网卡带宽,以供各部署端进行下载。在更多实施例中,也可将该分布式存储集群配置为不同类型的存储集群。

在另一实施例中,根据实际需求,例如针对小规模线上业务部署场景的需求,上述发布系统也可以不包括存储集群,各构建单元17分别将打包生成的待部署文件包存储在构建端本地的存储设备中,以供各部署端进行下载。

图15为本发明一实施例提供的一种设备的结构示意图。

如图15所示,作为另一方面,本申请还提供了一种设备1500,包括一个或多个中央处理单元(cpu)1501,其可以根据存储在只读存储器(rom)1502中的程序或者从存储部分1508加载到随机访问存储器(ram)1503中的程序而执行各种适当的动作和处理。在ram1503中,还存储有设备1500操作所需的各种程序和数据。cpu1501、rom1502以及ram1503通过总线1504彼此相连。输入/输出(i/o)接口1505也连接至总线1504。

以下部件连接至i/o接口1505:包括键盘、鼠标等的输入部分1506;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1507;包括硬盘等的存储部分1508;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1509。通信部分1509经由诸如因特网的网络执行通信处理。驱动器1510也根据需要连接至i/o接口1505。可拆卸介质1511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1510上,以便于从其上读出的计算机程序根据需要被安装入存储部分1508。

特别地,根据本公开的实施例,上述任一实施例描述的发布方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行发布方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1509从网络上被下载和安装,和/或从可拆卸介质1511被安装。

在一优选实施例中,存储部分1508还进一步用于存储执行发布方法时所生成的待部署文件包。

作为又一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例的装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,该程序被一个或者一个以上的处理器用来执行描述于本申请的发布方法。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,各所述单元可以是设置在计算机或移动智能设备中的软件程序,也可以是单独配置的硬件装置。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离本申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

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