CN110941446B - 基于多环境离线任务的版本发布方法及装置 - Google Patents
基于多环境离线任务的版本发布方法及装置 Download PDFInfo
- Publication number
- CN110941446B CN110941446B CN201911076524.8A CN201911076524A CN110941446B CN 110941446 B CN110941446 B CN 110941446B CN 201911076524 A CN201911076524 A CN 201911076524A CN 110941446 B CN110941446 B CN 110941446B
- Authority
- CN
- China
- Prior art keywords
- task
- environment
- task flow
- flow
- version number
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开一种基于多环境离线任务的版本发布方法及装置,能够在降低任务流跨环境发布的成本的同时提升任务流跨环境发布的效率。该方法包括:在开发环境中新建任务流并创建多个任务子节点,同时获取任务子节点间的依赖关系;从目标环境中获取任务流参考版本,当新建任务流中的任务子节点和/或依赖关系相较于任务流参考版本出现变更时,更新新建任务流的版本号后提交;获取新版本号任务流对应的任务元数据信息,同时将任务元数据信息发布至目标环境中,以及获取新版本号任务流对应的任务节点文件资源,并在任务节点文件资源出现变更时触发文件异步传载服务将任务节点文件资源发布至目标环境中,实现新版本号任务流在目标环境中的发布。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种基于多环境离线任务的版本发布方法及装置。
背景技术
离线计算(Offine calculation)是指在计算任务开始前就已获取所有的待计算数据且数据量不会发生变化,并在解决一个问题后能够立即得出计算结果的一种计算模式,离线计算通常用于对大量数据进行复杂的批量运算,具有计算量大、计算速度快以及能够快速查询批量计算结果等优势。随着信息技术的迅猛发展和应用,行业应用系统的规模迅速扩大,其产生的数据疯狂暴增,传统的计算技术和信息系统的处理能力已经不能满足,为了解决这一现状,基于大数据处理的离线计算技术与相关的离线计算平台开始蓬勃发展。
在DT(数据处理技术)时代,大数据处理技术需要解决系统的可伸缩性与复杂性,大数据平台中每天承载着成千上万的ETL任务调度,这些任务的形态各种各样,单一环境中的任务已经不能够解决多重环境的业务需要,这将导致用户需在不同环境中重复的进行离线任务的开发、测试、发布和运维工作,容易造成了机器资源和人力资源的浪费,最终导致离线任务的开发成本过高且效率较低。
发明内容
本发明的目的在于提供一种基于多环境离线任务的版本发布方法及装置,能够在降低任务流跨环境发布的成本的同时提升任务流跨环境发布的效率,并且可以节约各环境机器资源降低成本。
为了实现上述目的,本发明的一方面提供一种基于多环境离线任务的版本发布方法,包括:
在开发环境中新建任务流并创建多个任务子节点,同时获取所述任务子节点间的依赖关系,所述任务子节点包括任务元数据信息和任务节点文件资源;
将所述任务元数据信息上传至开发环境中的数据库中保存,以及将所述任务节点文件资源上传至开发环境中的分布式文件系统中保存;
从目标环境中获取任务流参考版本,当所述新建任务流中的任务子节点和/或依赖关系相较于所述任务流参考版本出现变更时,更新所述新建任务流的版本号后提交;
从开发环境中的数据库中获取新版本号任务流对应的任务元数据信息,同时将所述任务元数据信息发布至目标环境中,以及从开发环境中的分布式文件系统中获取新版本号任务流对应的任务节点文件资源,并在所述任务节点文件资源相较于所述任务流参考版本出现变更时触发文件异步传载服务将所述任务节点文件资源发布至目标环境中,实现新版本号任务流在目标环境中的发布。
优选地,在从目标环境中获取任务流参考版本之前还包括:
通过发布模块对目标环境中与所述新建任务流对应的数据源进行存在性检测,若检测不通过则向用户反馈风险提示信息和/或修改提示信息,若检测通过则从目标环境中获取任务流参考版本,启动对所述新建任务流的变更计算操作。
较佳地,从目标环境中获取任务流参考版本,当所述新建任务流中的任务子节点和/或依赖关系相较于所述任务流参考版本出现变更时,更新所述新建任务流的版本号后提交的方法包括:
基于开发环境中的所述新建任务流获取当前版本对应的任务事件列表,以及基于目标环境中的参考版本任务流获取参考版本对应的任务事件列表,其中,所述参考版本任务流为目标环境中已发布的最新版本号任务流;
比对当前版本对应的任务事件列表与参考版本对应的任务事件列表,当所述新建任务流中任务子节点和/或依赖关系出现变更时将变更信息记录至变更列表,同时更新所述新建任务流的版本号;
将新版本号任务流的变更信息存入历史表,并将删除的任务子节点在历史表给予标记;
将新版本号任务流的任务子节点信息和/或事件信息全部复制到全量记录表记录,以及将新版本号任务流变更的任务子节点信息和/或事件信息增量复制到增量记录表;
开发模块提交新版本号任务流至发布模块,同时将新版本号任务流的版本更新状态通知给发布模块。
进一步地,在步骤从开发环境中的数据库中获取新版本号任务流对应的任务元数据信息,同时将所述任务元数据信息发布至目标环境之前还包括:
判断当前发布的新版本号任务流与任务流参考版本的版本号是否连续,若是则直接采取增量模式发布,若否则采取先合并后增量的模式发布。
优选地,从开发环境中的分布式文件系统中获取新版本号任务流对应的任务节点文件资源,并在所述任务节点文件资源相较于所述任务流参考版本出现变更时触发文件异步传载服务将所述任务节点文件资源发布至目标环境的方法包括:
接收待发布的新版本号任务流,从数据库中获取对应的任务元数据信息并将其发布至目标环境中;
当任务元数据信息在目标环境中发布成功,此时需从分布式文件系统中获取对应的任务节点文件资源,并在任务节点文件资源相较于任务流参考版本是变更时触发文件异步传载服务将任务节点文件资源发布至目标环境中;
当任务元数据信息在目标环境中发布未成功,此时可通过运行日志向用户反馈问题所在并提示用户实施重试操作;
新版本号任务流在目标环境中跨环境成功发布后,发布单元通过实时消费消息变更新版本号任务流的发布状态。
优选地,新版本号任务流在目标环境中成功发布后还包括:
提示用户升级并运行目标环境中已发布的新版本号任务流,以替换目标环境中旧版本号任务流的运行。
优选地,在步骤实现在目标环境中发布新版本号任务流之后还包括:
通过运行模块调度执行新版本号任务流并展示运行结果,同时在发布模块中向用户展示新版本号任务流的全量元数据信息及各任务子节点间的依赖关系,使用户能够选择对应版本号的任务流执行回滚编辑操作。
示例性地,所述目标环境包括测试环境、准生产环境、生产环境中的一种或多种。
示例性地,所述任务元数据信息包括任务基本信息、任务名称、任务描述、任务频率、任务实例、任务优先级、任务生效时间、任务类型、任务配置信息、事件信息、任务依赖信息、任务参数信息、任务数据源信息、文件依赖信息中的一种或多种,所述节点文件资源包括任务依赖的sql文件、任务运行的Jar包或zip文件、任务配置的xml文件中的一种或多种。
与现有技术相比,本发明提供的基于多环境离线任务的版本发布方法具有以下有益效果:
本发明提供的基于多环境离线任务的版本发布方法中,创建或编辑任务流信息构建多个任务子节点的任务元数据信息,同时生成多任务子节点间的依赖关系,并对应添加每个任务子节点的任务节点文件资源,之后将构建的任务元数据信息及依赖关系保存入数据库,以及将任务节点文件资源保存入分布式文件系统,通过从目标环境中抽取任务流参考版本并与新建任务流比对校验,如果新建任务流的任务子节点和/或依赖关系发生变更,则对该新建任务流赋予一新版本号,并执行新版本号任务流向目标环境提交的操作,提交后对应的是新版本号任务流从源环境到目标环境的发布操作,具体步骤为:首先从数据库中获取新版本号任务流对应的任务元数据信息,并将上述任务元数据信息从源环境发布至目标环境,任务元数据信息在目标环境中发布完成之后,需进一步校验新版本号任务流对应的任务节点文件资源相较于目标环境中的任务流参考版本是否发生变更,并在变更时触发文件异步传载服务将上述任务节点文件资源发布于目标环境中,最终实现新版本号任务流在目标环境中的发布。
可见,本发明可以实现任务流的跨环境发布,在减少不同环境中任务流的开发、测试、发布和运维等操作的同时,还节约了上述操作在不同环境中的机器资源消耗,具有提升任务流跨环境发布效率和降低任务流跨环境发布成本的技术效果。
本发明的另一方面提供一种基于多环境离线任务的版本发布装置,应用有上述技术方案提到的基于多环境离线任务的版本发布方法,该装置包括:
开发单元,用于在开发环境中新建任务流并创建多个任务子节点,同时获取所述任务子节点间的依赖关系,所述任务子节点包括任务元数据信息和任务节点文件资源;
上传单元,用于将所述任务元数据信息上传至开发环境中的数据库中保存,以及将所述任务节点文件资源上传至开发环境中的分布式文件系统中保存;
比较单元,用于从目标环境中获取任务流参考版本,当所述新建任务流中的任务子节点和/或依赖关系相较于所述任务流参考版本出现变更时,更新所述新建任务流的版本号后提交;
发布单元,用于从开发环境中的数据库中获取新版本号任务流对应的任务元数据信息,同时将所述元数据信息发布至目标环境中,以及从开发环境中的分布式文件系统中获取新版本号任务流对应的任务节点文件资源,并在所述任务节点文件资源相较于所述任务流参考版本出现变更时触发文件异步传载服务将所述任务节点文件资源发布至目标环境中,实现在目标环境中发布新版本号任务流;
运行单元,用于发起任务调度请求执行任务流的版本发布任务。
优选地,所述开发单元还能够提供可拖曳操作的可视化画布展示,同时在开发过程中引入排它锁功能以确保任务流在各环境开发的一致性。
与现有技术相比,本发明提供的基于多环境离线任务的版本发布装置的有益效果与上述技术方案提供的基于多环境离线任务的版本发布方法的有益效果相同,在此不做赘述。
本发明的第三方面提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述基于多环境离线任务的版本发布方法的步骤。
与现有技术相比,本发明提供的计算机可读存储介质的有益效果与上述技术方案提供的基于多环境离线任务的版本发布方法的有益效果相同,在此不做赘述。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为实施例中基于多环境离线任务的版本发布方法的流程示意图;
图2为实施例中任务流的发布流程示意图;
图3为实施例中基于多环境离线任务的版本发布方法的功能框架图;
图4为实施例中一种任务流发布的应用场景示例图;
图5为实施例中另一种任务流发布的应用场景示例图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本发明保护的范围。
实施例一
请参阅图1至图3,本实施例提供一种基于多环境离线任务的版本发布方法,包括:
在开发环境中新建任务流并创建多个任务子节点,同时获取任务子节点间的依赖关系,任务子节点包括任务元数据信息和任务节点文件资源;将任务元数据信息上传至开发环境中的数据库中保存,以及将任务节点文件资源上传至开发环境中的分布式文件系统中保存;从目标环境中获取任务流参考版本,当新建任务流中的任务子节点和/或依赖关系相较于任务流参考版本出现变更时,更新新建任务流的版本号后提交;从开发环境中的数据库中获取新版本号任务流对应的任务元数据信息,同时将任务元数据信息发布至目标环境中,以及从开发环境中的分布式文件系统中获取新版本号任务流对应的任务节点文件资源,并在任务节点文件资源相较于任务流参考版本出现变更时触发文件异步传载服务将任务节点文件资源发布至目标环境中,实现新版本号任务流在目标环境中的发布。
本实施例提供的基于多环境离线任务的版本发布方法中,创建或编辑任务流信息构建多个任务子节点的任务元数据信息,同时生成多任务子节点间的依赖关系,并对应添加每个任务子节点的任务节点文件资源,之后将构建的任务元数据信息及依赖关系保存入数据库,以及将任务节点文件资源保存入分布式文件系统,通过从目标环境中抽取任务流参考版本并与新建任务流比对校验,如果新建任务流的任务子节点和/或依赖关系发生变更,则对该新建任务流赋予一新版本号,并执行新版本号任务流向目标环境提交的操作,提交后对应的是新版本号任务流从源环境到目标环境的发布操作,具体步骤为:首先从数据库中获取新版本号任务流对应的任务元数据信息,并将上述任务元数据信息从源环境发布至目标环境,任务元数据信息在目标环境中发布完成之后,需进一步校验新版本号任务流对应的任务节点文件资源相较于目标环境中的任务流参考版本是否发生变更,并在变更时触发文件异步传载服务将上述任务节点文件资源发布于目标环境中,最终实现新版本号任务流在目标环境中的发布。
可见,本实施例可以实现任务流的跨环境发布,在减少不同环境中任务流的开发、测试、发布和运维等操作的同时,还节约了上述操作在不同环境中的机器资源消耗,具有提升任务流跨环境发布效率和降低任务流跨环境发布成本的技术效果。可见,本实施例可以实现新建任务流的跨环境发布,在减少不同环境中任务流的开发、测试、发布和运维等操作的同时,还节约了上述操作在不同环境中的机器资源消耗,具有提升任务流跨环境发布效率和降低任务流跨环境发布成本的技术效果。
此外,通过上述实施例可以轻松的将新建任务流发布到不同的环境上运行,文件异步传载服务的应用可对节点文件资源的幂等性进行校验,实时反馈任务节点文件资源的迁移状态。同时可对发布的各个环节进行控制,并提供了较佳地监控手段。
需要说明的是,上述实施例中文件异步传载服务是通过文件服务异步装置来实现的,该文件服务异步装置能够为不同环境的资源文件提供文件异步传载服务,其实现原理是通过代理服务器打通各个底层集群环境,发布模块通过HTTP或者RPC的方式向文件服务异步装置发出服务请求,通过消息中间件Kaffka进行消息消费,接收该任务流的资源文件向目标环境传输成功或者传输失败的异步信息并置换任务流的发布状态,使发布模块及时的对该任务流的发布状态进行跟踪变更,进而方便进行其他操作。通过异步传载服务的应用,可对不同的底层环境进行屏蔽,用户无需过多关心发布环境的差异,仅将重心放在离线任务的开发上即可。
为了便于理解现对文件服务异步装置进行详细介绍:引入线程池的概念实现高并发场景的应用,通过设置corePoolSize参数,小于corePoolSize时创建新线程来执行任务,等于或大于corePoolSize是将任务加入BlockingQueue来执行,如果创建新线程数超出maximumPoolSize该任务将被拒绝,该文件服务异步装置支持动态增加线程,当系统存在大量待处理的任务流时,可通过设置corePoolSize maximumPoolSize参数实现迸发处理,当单个任务流中存在大量任务时可开启全负荷模式,给单个任务流开设子线程并分配剩余线程处理上述的单个任务流。文件服务异步装置的功能还包括:从开发环境发布节点文件资源到目标环境,可检测出目标环境中的节点文件资源是否存在,配置开关是否覆盖或者略过,发布成功后返回文件的大小并将成功后的状态信息推到kaffa供发布中心进行消费;文件服务异步装置的功能还包括反向拷贝功能,针对系统初始部署的场景,若该任务流在生产环境(目标环境)之前存在,此时用户只需要将任务流导出然后导入到开发环境(源环境),涉及节点文件资源发布的时候会去获取对应的节点文件资源,然后将它复制到开发环境,给用户无感知的使用体验。
示例性地,上述任务元数据信息包括任务基本信息、任务名称、任务描述、任务频率、任务实例、任务优先级、任务生效时间、任务类型、任务配置信息、事件信息、任务依赖信息、任务参数信息、任务数据源信息、文件依赖信息中的一种或多种,节点文件资源包括任务依赖的sql文件、任务运行的Jar包或zip文件、任务配置的xml文件中的一种或多种。目标环境包括测试环境、准生产环境、生产环境中的一种或多种。
上述实施例中,在从目标环境中获取任务流参考版本之前还包括:通过发布模块对目标环境中与新建任务流对应的数据源进行存在性检测,若检测不通过则向用户反馈风险提示信息和/或修改提示信息,若检测通过则从目标环境中获取任务流参考版本,启动对新建任务流的变更计算操作。
上述实施例中,从目标环境中获取任务流参考版本,当新建任务流中的任务子节点和/或依赖关系相较于任务流参考版本出现变更时,更新新建任务流的版本号后提交的方法包括:
基于开发环境中的新建任务流获取当前版本对应的任务事件列表,以及基于目标环境中的参考版本任务流获取参考版本对应的任务事件列表,其中,参考版本任务流为目标环境中已发布的最新版本号任务流;比对当前版本对应的任务事件列表与参考版本对应的任务事件列表,当新建任务流中任务子节点和/或依赖关系出现变更时将变更信息记录至变更列表,同时更新新建任务流的版本号;将新版本号任务流的变更信息存入历史表,并将删除的任务子节点在历史表给予标记;将新版本号任务流的任务子节点信息和/或事件信息全部复制到全量记录表记录,以及将新版本号任务流变更的任务子节点信息和/或事件信息增量复制到增量记录表;开发模块提交新版本号任务流至发布模块,同时将新版本号任务流的版本更新状态通知给发布模块。
具体实施时,在目标环境中的数据源存在性检测通过后,此时需启动对新建任务流的变更计算操作,其过程如下:通过提取开发环境中新建任务流对应的任务事件列表,以及提取目标环境中参考版本任务流对应的任务事件列表,由于任务事件列表中存储有任务子节点信息及节点间的依赖关系信息,在比较上述两个任务事件列表后可以得出新建任务流相较于参考版本任务流是否发生变更,并在比对结果发生变更时重新赋予新建任务流一个新的版本号,同时将新版本号任务流的变更信息存入历史表,之后将开发环境中相对于旧版本任务流中删除的任务子节点进行标记,标记的目的是为了方便用户能够选择对应版本号的任务流执行回滚编辑操作,同时基于被删除任务子节点的jobid修改历史表,以更新历史表中最新版本信息,接下来将新版本号任务流在画布内的任务子节点信息和/或事件信息全部复制到全量记录表记录,以及将新版本号任务流变更的任务子节点信息和/或事件信息增量复制到增量记录表,同时写入任务流节点至变更列表,之后开发模块在将新版本号任务流提交至发布模块,提交完成后开发模块通知发布模块,同时将发布的基本任务流信息、开发环境信息和目标环境信息传送至发布模块。
上述实施例中,从开发环境中的分布式文件系统中获取新版本号任务流对应的任务节点文件资源,并在任务节点文件资源相较于任务流参考版本出现变更时触发文件异步传载服务将任务节点文件资源发布至目标环境的方法包括:
接收待发布的新版本号任务流,从数据库中获取对应的任务元数据信息并将其发布至目标环境中;当任务元数据信息在目标环境中发布成功,此时需从分布式文件系统中获取对应的任务节点文件资源,并在任务节点文件资源相较于任务流参考版本是变更时触发文件异步传载服务将任务节点文件资源发布至目标环境中;当任务元数据信息在目标环境中发布未成功,此时可通过运行日志向用户反馈问题所在并提示用户实施重试操作;新版本号任务流在目标环境中跨环境成功发布后,发布模块通过实时消费消息变更新版本号任务流的发布状态。
具体实施时,接收待发布的新版本号任务流,将新版本号任务流的状态标记为待发布,接收用户在发布模块操作的发布指令,将开发环境中对应的任务元数据信息发布到目标环境,发布完毕后触发文件异步传载服务,需要说明的是,如果目标环境中没有相关子任务的依赖资源或者任务节点文件资源未发生变更则该文件异步传载服务不启动,若任务元数据信息发布出现问题,此时可以通过运行日志给用户展示问题原因,并提示用户再次点击操作发布指令重新进行发布,直至任务元数据信息发布成功,对于文件异步传载服务,可支持多任务流资源并发请求服务,能够生成唯一标识主键标识文件资源与任务流幂等性以供校验,当发布模块提交服务请求时文件异步服务开始工作,期间可不间断接收新的发布请求,通过线程池技术实现异步并发服务,当单个任务流资源跨环境发布成功后,通过kaffka将消息通知给发布模块,发布模块通过实时消费消息,变更任务流对应状态。另外,任务流发布的过程中,若新版本号任务流的任务元数据信息属于首次发布则基于全量记录表进行发布,若新版本号任务流的任务元数据信息属于非首次提交则基于增量记录表对进行增量发布。
上述实施例中,新版本号任务流在目标环境中成功发布后还包括:
提示用户升级并运行目标环境中已发布的新版本号任务流,以替换目标环境中旧版本号任务流的运行。
上述实施例中,在步骤实现在目标环境中发布新版本号任务流之后还包括:
通过运行模块调度执行新版本号任务流并展示运行结果,同时在发布模块中向用户展示新版本号任务流的全量元数据信息及各任务子节点间的依赖关系,使用户能够选择对应版本号的任务流执行回滚编辑操作。例如,根据历史表中的标记对往期版本号的任务流执行回滚编辑操作。
上述实施例中,在步骤从开发环境中的数据库中获取新版本号任务流对应的任务元数据信息,同时将任务元数据信息发布至目标环境之前还包括:
判断当前发布的新版本号任务流与任务流参考版本的版本号是否连续,若是则直接采取增量模式发布,若否则采取先合并后增量的模式发布。
具体实施时,如果新版本任务流(新建任务流)的版本号与任务流参考的版本号连续则采取增量模式发布,也即仅将增加的任务子节点基于依赖关系在目标环境中发布,如果本次发布任务流的版本号与任务流参考的版本号不连续则采取先合并后增量的模式发布,其中先合并后增量的模式是指若任务流开发的版本具有n个,但仅将第1个版本发到了生产环境,第2个版本至第n-1个版本均未发到生产环境,此时若想将第n个版本发到生产环境,需要找到第2个到第n个版本的任务流与生产环境中最新的任务流参考版本的变更记录,比对合并后得出最终的发布结果,依据最终发布结果将相关的任务子节点发布至目标环境。
为了便于理解,现对上述实施例中的先合并后增量的发布模式做示例性说明:
如果最新的生产版本任务流为V1.1,而此时开发环境的版本已经开发到任务流V1.4了,此时就会涉及合并版本的增量概念;其中,
V1.0版本,共包含3个任务子节点A、B、C,且依赖关系为A→B,A→C,将V1.0版本从开发环境发布到测试环境,然后再发布到生产环境;
发现需求变更又开发V1.1版本,包含3个任务子节点A、B、C,且依赖关系为A→B,A→C,其中修改了任务子节点A的配置信息,从开发环境发布到测试环境,然后增量发布到生产环境,此时选用增量模式发布,故只需发布变动的任务子节点A即可;
期间又开发一次V1.2版本,包含2个任务子节点A和B,且依赖关系为A→B,删除了其中的任务子节点C及其依赖,此时仅将其从开发环境发布到测试环境;
V1.3版本,包含3个任务子节点A、B、D,且依赖关系为A→B→D,其中D节点为本次新增,此时仅将其从开发环境发布到测试环境;
最后又开发一次V1.4版本,包含3个任务子节点A、B、D,且依赖关系为A→B→D,其中任务子节点A再次做了修改,然后从开发环境发布到测试环境,最后发到生产环境;
此时生产版本V1.1至生产版本V1.4期间经历了三次版本调整,其中,V1.2版本删除了任务子节点C,V1.3版本新增了任务子节点D,V1.4版本修改了任务子节点A,最终得到的合并版本V1.4是修改的任务子节点A、不变的任务子节点B,删除了任务子节点C,新增了任务子节点D,假设如果不使用先合并后增量的模式,开发人员就不知道V1.1版本-V1.4版本之间发生的变更,这时如果只单纯的将任务子节点A、B、D发布到生产环境中可能呈现的发布结果包括任务子节点A、B、C、D,而不是最终准确的发布结果包括任务子节点A、B、D。
图4示出了本实施例中的一种任务流发布的应用场景示例图,下面对该场景进行相应的说明:
在开发环境(源环境)开发任务流S,包含子任务节点A、B、C,V1.0版本只将他发布到灰度环境,此时选生产环境(目标环境)的版本作为任务流参考版本,从图可见任务流参考版本为空,本次发布采用全量发布模式;V1.1版本包含子任务节点A、C、D将他发布到生产环境,此时依然选生产环境的版本作为任务流参考版本,从图可见任务流参考版本仍为空,本次发布到灰度环境采用全量发布模式,发布到生产环境也采用全量发布模式。
图5示出了本实施例的另一中任务流发布的应用场景示例图,下面对该场景进行相应的说明:
在开发环境开发任务流S,包含子任务节点A、B、C;V1.0版本将其发布到灰度环境和生产环境,此时选生产环境的版本作为任务流参考版本,从图可见任务流参考版本为空,本次发布采用全量发布模式;V1.1版本新增子任务节点D,将子任务节点A、B、C、D发布到灰度环境,此时依然选生产环境的版本作为任务流参考版本,从图可见任务流参考版本为V1.0,包含子任务节点A、B、C,本次发布到灰度环境采用增量发布模式,此时只需要将增加的任务子节点D的相关信息发布即可,其他子任务节点未改动不做发布;V1.2版本,新增子任务节点E,包含了子任务节点A、B、C、D、E,将其发布到灰度环境并选生产环境的版本作为任务流参考版本,从图可见任务流参考版本仍为V1.0,包含子任务节点A、B、C,本次发布到灰度环境采用了增量发布模式,只需要将增加的任务子节点D和任务子节点E的相关信息发布到生产环境即可。
上述两种场景仅为示例性说明,任务流参考版本的选择也可以为开发环境或灰度环境中的各个版本,本实施对此不做限制。
示例性地,发布模块中的任务流状态还可分为:待发布、待升级、发布失败、发布终止、发布成功;待发布:从开发模块提交任务流元数据信息进入发布模块时触发;待升级:已经成功将任务流元数据信息发布到对应目标环境,将新发布的版本替换旧版本运行;发布失败:发布过程中出现异常或者发布周期已到触发状态;发布终止:用户可以在终止发布流程,此时可以去开发模块进行再次开发,然后提交到发布模块进行再次发布;发布成功:用户成功将新版本号任务流元数据信息跟依赖资源发布到目标环境。此外,上述发布状态仅做示例性说明,不做具体限制,开发人员可根据业务需求进行相应的状态流转和扩展,在此不做赘述。
上述开发模块还可用于离线资源的上传以及离线任务流可视化画布展示,通过页面点击或拖拽编辑实现参数的自定义配置;同时支持多人协同开发功能,在开发时引入排他锁的概念,当前开发人员进行任务开发时主动获取开发锁,其他用户不能再对该任务流进行开发,必须等开发人员主动释放任务锁,其他开发人员方可进行开发,通过排他锁的设置可以保证任务流在各个环境中开发的一致性,且排他锁能够对所有开发人员可见,每个开发人员可以看到当前任务流被谁锁定,用户可以对占用者进行沟通解锁,进而保证任务流开发的实效性。
实施例二
本实施例提供一种基于多环境离线任务的版本发布装置,包括:
开发单元,用于基于新建任务流创建多个任务子节点,同时获取所述任务子节点间的依赖关系,所述任务子节点包括元数据信息和节点文件资源;
上传单元,用于将所述元数据信息上传数据库中保存,以及将所述节点文件资源上传分布式文件系统中保存;
比较单元,用于从目标环境中获取任务流参考版本,当所述新建任务流中的任务子节点和/或依赖关系相较于所述任务流参考版本出现变更时,更新所述新建任务流的版本号;
发布单元,用于从数据库中获取新版本号任务流对应的元数据信息同时将所述元数据信息发布至目标环境中,以及从分布式文件系统中获取最新版本号任务流对应的节点文件资源,并在所述节点文件资源相较于所述任务流参考版本出现变更时通过异步传载服务将所述节点文件资源发布到目标环境中,实现在目标环境中发布新版本号任务流;
运行单元,用于发起任务调度请求执行任务流的版本发布任务。
优选地,所述开发单元还能够提供可拖曳操作的可视化画布展示,同时在开发过程中引入排它锁功能以确保任务流在各环境开发的一致性。
与现有技术相比,本实施例提供的基于多环境离线任务的版本发布装置的有益效果与上述实施例提供的基于多环境离线任务的版本发布方法的有益效果相同,在此不做赘述。
实施例三
本实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述基于多环境离线任务的版本发布方法的步骤。
与现有技术相比,本实施例提供的计算机可读存储介质的有益效果与上述技术方案提供的基于多环境离线任务的版本发布方法的有益效果相同,在此不做赘述。
本领域普通技术人员可以理解,实现上述发明方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,上述程序可以存储于计算机可读取存储介质中,该程序在执行时,包括上述实施例方法的各步骤,上述的存储介质可以是:ROM/RAM、磁碟、光盘、存储卡等。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种基于多环境离线任务的版本发布方法,其特征在于,包括:
在开发环境中新建任务流并创建多个任务子节点,同时获取所述任务子节点间的依赖关系,所述任务子节点包括任务元数据信息和任务节点文件资源;
将所述任务元数据信息上传至开发环境中的数据库中保存,以及将所述任务节点文件资源上传至开发环境中的分布式文件系统中保存;
从目标环境中获取任务流参考版本,当所述新建任务流中的任务子节点和/或依赖关系相较于所述任务流参考版本出现变更时,更新所述新建任务流的版本号后提交;
从开发环境中的数据库中获取新版本号任务流对应的任务元数据信息,同时将所述任务元数据信息发布至目标环境中,以及从开发环境中的分布式文件系统中获取新版本号任务流对应的任务节点文件资源,并在所述任务节点文件资源相较于所述任务流参考版本出现变更时触发文件异步传载服务将所述任务节点文件资源发布至目标环境中,实现新版本号任务流在目标环境中的发布;
所述任务元数据信息包括任务基本信息、任务名称、任务描述、任务频率、任务实例、任务优先级、任务生效时间、任务类型、任务配置信息、事件信息、任务依赖信息、任务参数信息、任务数据源信息、文件依赖信息中的一种或多种,所述任务节点文件资源包括任务依赖的sql文件、任务运行的Jar包或zip文件、任务配置的xml文件中的一种或多种,所述目标环境包括测试环境、准生产环境、生产环境中的一种或多种。
2.根据权利要求1所述的方法,其特征在于,在从目标环境中获取任务流参考版本之前还包括:
通过发布模块对目标环境中与所述新建任务流对应的数据源进行存在性检测,若检测不通过则向用户反馈风险提示信息和/或修改提示信息,若检测通过则从目标环境中获取任务流参考版本,启动对所述新建任务流的变更计算操作。
3.根据权利要求1或2所述的方法,其特征在于,从目标环境中获取任务流参考版本,当所述新建任务流中的任务子节点和/或依赖关系相较于所述任务流参考版本出现变更时,更新所述新建任务流的版本号后提交的方法包括:
基于开发环境中的所述新建任务流获取当前版本对应的任务事件列表,以及基于目标环境中的参考版本任务流获取参考版本对应的任务事件列表,其中,所述参考版本任务流为目标环境中已发布的最新版本号任务流;
比对当前版本对应的任务事件列表与参考版本对应的任务事件列表,当所述新建任务流中任务子节点和/或依赖关系出现变更时将变更信息记录至变更列表,同时更新所述新建任务流的版本号;
将新版本号任务流的变更信息存入历史表,并将删除的任务子节点在历史表给予标记;
将新版本号任务流的任务子节点信息和/或事件信息全部复制到全量记录表记录,以及将新版本号任务流变更的任务子节点信息和/或事件信息增量复制到增量记录表;
开发模块提交新版本号任务流至发布模块,同时将新版本号任务流的版本更新状态通知给发布模块。
4.根据权利要求3所述的方法,其特征在于,在步骤从开发环境中的数据库中获取新版本号任务流对应的任务元数据信息,同时将所述任务元数据信息发布至目标环境之前还包括:
判断当前发布的新版本号任务流与任务流参考版本的版本号是否连续,若是则直接采取增量模式发布,若否则采取先合并后增量的模式发布。
5.根据权利要求3所述的方法,其特征在于,从开发环境中的分布式文件系统中获取新版本号任务流对应的任务节点文件资源,并在所述任务节点文件资源相较于所述任务流参考版本出现变更时触发文件异步传载服务将所述任务节点文件资源发布至目标环境的方法包括:
接收待发布的新版本号任务流,从数据库中获取对应的任务元数据信息并将其发布至目标环境中;
当任务元数据信息在目标环境中发布成功,此时需从分布式文件系统中获取对应的任务节点文件资源,并在任务节点文件资源相较于任务流参考版本变更时触发文件异步传载服务将任务节点文件资源发布至目标环境中;
当任务元数据信息在目标环境中发布未成功,此时可通过运行日志向用户反馈问题所在并提示用户实施重试操作;
新版本号任务流在目标环境中跨环境成功发布后,发布模块通过实时消费消息变更新版本号任务流的发布状态。
6.根据权利要求5所述的方法,其特征在于,新版本号任务流在目标环境中成功发布之后还包括:
提示用户升级并运行目标环境中已发布的新版本号任务流,以替换目标环境中旧版本号任务流的运行。
7.根据权利要求5所述的方法,其特征在于,在步骤实现在目标环境中发布新版本号任务流之后还包括:
通过运行模块调度执行新版本号任务流并展示运行结果,同时在发布模块中向用户展示新版本号任务流的全量元数据信息及各任务子节点间的依赖关系,使用户能够选择对应版本号的任务流执行回滚编辑操作。
8.根据权利要求1所述的方法,其特征在于,所述目标环境包括测试环境、准生产环境、生产环境中的一种或多种。
9.一种基于多环境离线任务的版本发布装置,其特征在于,包括:
开发单元,用于在开发环境中新建任务流并创建多个任务子节点,同时获取所述任务子节点间的依赖关系,所述任务子节点包括任务元数据信息和任务节点文件资源;
上传单元,用于将所述任务元数据信息上传至开发环境中的数据库中保存,以及将所述任务节点文件资源上传至开发环境中的分布式文件系统中保存;
比较单元,用于从目标环境中获取任务流参考版本,当所述新建任务流中的任务子节点和/或依赖关系相较于所述任务流参考版本出现变更时,更新所述新建任务流的版本号后提交;
发布单元,用于从开发环境中的数据库中获取新版本号任务流对应的任务元数据信息,同时将所述任务元数据信息发布至目标环境中,以及从开发环境中的分布式文件系统中获取新版本号任务流对应的任务节点文件资源,并在所述任务节点文件资源相较于所述任务流参考版本出现变更时触发文件异步传载服务将所述任务节点文件资源发布至目标环境中,实现在目标环境中发布新版本号任务流;
运行单元,用于发起任务调度请求执行任务流的版本发布任务;
所述任务元数据信息包括任务基本信息、任务名称、任务描述、任务频率、任务实例、任务优先级、任务生效时间、任务类型、任务配置信息、事件信息、任务依赖信息、任务参数信息、任务数据源信息、文件依赖信息中的一种或多种,所述任务节点文件资源包括任务依赖的sql文件、任务运行的Jar包或zip文件、任务配置的xml文件中的一种或多种,所述目标环境包括测试环境、准生产环境、生产环境中的一种或多种。
10.根据权利要求9所述的装置,其特征在于,所述开发单元还能够提供可拖曳操作的可视化画布展示,同时在开发过程中引入排它锁功能以确保任务流在各环境开发的一致性。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911076524.8A CN110941446B (zh) | 2019-11-06 | 2019-11-06 | 基于多环境离线任务的版本发布方法及装置 |
PCT/CN2020/105994 WO2021088437A1 (zh) | 2019-11-06 | 2020-07-30 | 基于多环境离线任务的版本发布方法及装置 |
CA3159788A CA3159788A1 (en) | 2019-11-06 | 2020-07-30 | Version releasing method and device based on multi-environment offline task |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911076524.8A CN110941446B (zh) | 2019-11-06 | 2019-11-06 | 基于多环境离线任务的版本发布方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110941446A CN110941446A (zh) | 2020-03-31 |
CN110941446B true CN110941446B (zh) | 2021-06-18 |
Family
ID=69906639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911076524.8A Active CN110941446B (zh) | 2019-11-06 | 2019-11-06 | 基于多环境离线任务的版本发布方法及装置 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN110941446B (zh) |
CA (1) | CA3159788A1 (zh) |
WO (1) | WO2021088437A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110941446B (zh) * | 2019-11-06 | 2021-06-18 | 深圳市云网万店科技有限公司 | 基于多环境离线任务的版本发布方法及装置 |
CN113296687A (zh) * | 2020-06-10 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、计算设备和介质 |
CN111752920A (zh) * | 2020-06-22 | 2020-10-09 | 杭州数澜科技有限公司 | 用于管理元数据的方法、系统及存储介质 |
CN111694592A (zh) * | 2020-06-24 | 2020-09-22 | 深圳壹账通智能科技有限公司 | 项目版本发布的管理方法以及系统 |
CN112445600A (zh) * | 2020-12-15 | 2021-03-05 | 北京首汽智行科技有限公司 | 一种离线数据处理任务发布方法及系统 |
CN114764561A (zh) * | 2021-01-13 | 2022-07-19 | 北京金山云网络技术有限公司 | 作业开发方法、装置、电子设备及存储介质 |
CN112988190B (zh) * | 2021-03-12 | 2023-09-05 | 北京奇艺世纪科技有限公司 | 应用上线方法、装置、计算机设备和存储介质 |
CN112883045B (zh) * | 2021-03-31 | 2024-05-17 | 中国工商银行股份有限公司 | 数据库事务拆分执行方法及装置 |
CN113238735A (zh) * | 2021-05-27 | 2021-08-10 | 欧冶云商股份有限公司 | 一种可定义流水的项目交付任务创建方法、平台及系统 |
CN113504929A (zh) * | 2021-07-27 | 2021-10-15 | 平安普惠企业管理有限公司 | 业务发布方法、装置、设备及存储介质 |
CN113760830B (zh) * | 2021-09-22 | 2024-01-30 | 国网信息通信产业集团有限公司 | 一种分布式文件存储可编辑系统和方法 |
CN114138434B (zh) * | 2021-11-19 | 2024-01-12 | 苏州浪潮智能科技有限公司 | 一种大数据任务调度系统 |
CN116719557B (zh) * | 2023-08-09 | 2023-11-24 | 山东浪潮数字商业科技有限公司 | 基于Rancher的应用自动化发布方法、系统及工具 |
CN117032784B (zh) * | 2023-08-17 | 2024-04-05 | 摩尔线程智能科技(北京)有限责任公司 | 一种gpu驱动发布系统、电子设备和存储介质 |
CN117591132B (zh) * | 2024-01-12 | 2024-04-26 | 杭州谐云科技有限公司 | 一种服务的发布方法和发布系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108897548A (zh) * | 2018-06-29 | 2018-11-27 | 北京金山数字娱乐科技有限公司 | 程序包生产部署方法、装置、系统、电子设备及存储介质 |
CN109144562A (zh) * | 2018-04-19 | 2019-01-04 | 南京新贝金服科技有限公司 | 一种基于zookeeper的智能代码发布告警方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281906A (zh) * | 2013-07-11 | 2015-01-14 | 江苏达科信息科技有限公司 | 一种业务流程中的流程引擎实现方法及其流程引擎系统 |
CN103473076B (zh) * | 2013-09-25 | 2016-11-23 | 中国联合网络通信集团有限公司 | 一种代码版本的发布方法及系统 |
US9058425B2 (en) * | 2013-11-13 | 2015-06-16 | Bank Of America Corporation | Software metrics assessment system |
CN103745319B (zh) * | 2014-01-09 | 2017-01-04 | 北京大学 | 一种基于多状态科学工作流的数据世系追溯系统和方法 |
US10102012B2 (en) * | 2014-11-12 | 2018-10-16 | Record360 Inc. | Dynamically configurable workflow in a mobile environment |
CN106202123B (zh) * | 2015-05-07 | 2019-07-05 | 阿里巴巴集团控股有限公司 | 灰度发布的方法及设备 |
CN107463362B (zh) * | 2016-06-03 | 2021-08-03 | 北京京东尚科信息技术有限公司 | 基于多个Jenkins的持续部署的方法和系统 |
US10686908B2 (en) * | 2016-11-18 | 2020-06-16 | Sap Se | Embedded database as a microservice for distributed container cloud platform |
CN108170448B (zh) * | 2017-12-26 | 2020-06-09 | 车智互联(北京)科技有限公司 | 一种自动化高效进行软件更新版本发布的系统 |
CN109739539B (zh) * | 2018-12-27 | 2021-10-19 | 深圳前海微众银行股份有限公司 | 跨环境的应用发布方法、装置、设备及存储介质 |
CN110113377A (zh) * | 2019-04-01 | 2019-08-09 | 苏宁易购集团股份有限公司 | 适用于混合模式应用的发布升级的方法及装置、智能设备 |
CN110069334B (zh) * | 2019-05-05 | 2020-08-04 | 重庆天蓬网络有限公司 | 一种基于包管理的分布式数据作业调度的方法和系统 |
CN110069335A (zh) * | 2019-05-07 | 2019-07-30 | 江苏满运软件科技有限公司 | 任务处理系统、方法、计算机设备和存储介质 |
CN110941446B (zh) * | 2019-11-06 | 2021-06-18 | 深圳市云网万店科技有限公司 | 基于多环境离线任务的版本发布方法及装置 |
-
2019
- 2019-11-06 CN CN201911076524.8A patent/CN110941446B/zh active Active
-
2020
- 2020-07-30 CA CA3159788A patent/CA3159788A1/en active Pending
- 2020-07-30 WO PCT/CN2020/105994 patent/WO2021088437A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109144562A (zh) * | 2018-04-19 | 2019-01-04 | 南京新贝金服科技有限公司 | 一种基于zookeeper的智能代码发布告警方法 |
CN108897548A (zh) * | 2018-06-29 | 2018-11-27 | 北京金山数字娱乐科技有限公司 | 程序包生产部署方法、装置、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CA3159788A1 (en) | 2021-05-14 |
WO2021088437A1 (zh) | 2021-05-14 |
CN110941446A (zh) | 2020-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110941446B (zh) | 基于多环境离线任务的版本发布方法及装置 | |
CN110741350B (zh) | 用于分布式计算系统的备份和还原架构 | |
US9342364B2 (en) | Workflow managed composite applications | |
US11334465B2 (en) | Long running workflows for robotic process automation | |
JP5982366B2 (ja) | プライベート・クラウド・コンピューティングためのシステムおよび方法 | |
CN112668386A (zh) | 使用机器人过程自动化用于文档处理的长时间运行工作流 | |
US11182217B2 (en) | Multilayered resource scheduling | |
CN103632219A (zh) | 用于重新分配用于检查数据质量的作业的方法和系统 | |
CN110908793A (zh) | 长时任务执行方法、装置、设备及可读存储介质 | |
Tan et al. | BPEL4JOB: A fault-handling design for job flow management | |
CN112219190A (zh) | 用于实时环境的动态计算资源指派和可扩展计算环境生成 | |
CN114006815A (zh) | 云平台节点的自动化部署方法、装置、节点及存储介质 | |
US11809897B2 (en) | Chained triggering of builds in continuous integration environments | |
EP2988469B1 (en) | A method and apparatus for updating a user interface of one program unit in response to an interaction with a user interface of another program unit | |
Wannipurage et al. | Implementing a flexible, fault tolerant job management system for science gateways | |
CN112114954A (zh) | 软件系统的作业调度配置方法及装置 | |
Heinis et al. | Publishing persistent grid computations as WS resources | |
KR102621742B1 (ko) | 노코드 기반 자동화 서비스 플랫폼을 이용한 자동화서비스 시스템과 그 방법 및 컴퓨터 프로그램 | |
Dasgupta et al. | Design of a Fault-tolerant Job-flow Manager for Grid Environments Using Standard Technologies, Job-flow Patterns, and a Transparent Proxy. | |
US20230289234A1 (en) | Computing environment pooling | |
Agrawal | Kubernetes Deep Dive | |
Badic | Architecture and Prototypical Implementation for a Reactive and Distributed Conversion Server/Author Sanel Badic, BSc. | |
KR20230172244A (ko) | 로보틱 프로세스 자동화 시스템 | |
CN115827331A (zh) | 一种处理方法 | |
JP2024523764A (ja) | ウェブベースのロボティックプロセスオートメーションデザイナシステムならびに仮想マシン、セッション、およびコンテナのための自動化 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210512 Address after: 518002 unit 3510-130, Luohu business center, 2028 Shennan East Road, Chengdong community, Dongmen street, Luohu District, Shenzhen City, Guangdong Province Applicant after: Shenzhen yunwangwandian Technology Co.,Ltd. Address before: No.1-1 Suning Avenue, Xuzhuang Software Park, Xuanwu District, Nanjing, Jiangsu Province, 210000 Applicant before: Suning Cloud Computing Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |