一种节点选择方法和装置制造方法及图纸

技术编号:21999669 阅读:98 留言:0更新日期:2019-08-31 05:15
公开了一种节点选择方法和装置,所述方法包括:接收请求消息,所述请求消息用于请求提供用户所需产品的安装包,且请求消息中携带有唯一标识用户所需产品的产品信息;根据所述请求消息中的产品信息,在节点状态表中查找与所述产品信息对应的目标节点,该节点状态表中包括至少一个对应关系,每个对应关系为一个节点与一个产品信息之间的关系,且所述节点状态表中的每个节点的状态为空闲;将所述请求消息发送给所述目标节点,以使所述目标节点为所述用户所需产品构建对应的产品安装包。本方法能够快速地找到能够提供服务的目标节点,并完成作业分发,提高了作业分发效率。

A Node Selection Method and Device

【技术实现步骤摘要】
一种节点选择方法和装置
本申请涉及软件开发领域,尤其是在软件构建和开发过程中提供一种节点选择方法,以便在多种环境组成的资源池中能够快速地找到服务于请求消息的节点,从而提高作业分发的效率。
技术介绍
目前,随着云技术发展和移动应用的流行,开发和运营(Development和Operations的组合,DevOps)已经逐渐替代敏捷开发成为实时的软件开发流程。其中DevOps可以是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(qualityassurance,QA)部门之间的沟通、协作与整合,以便能够按时交付软件产品和提供服务。并且一些软件公司,例如微软、谷歌的云构建(CloudBuild)和亚马逊的代码构建(CodeBuild)等都积极地推崇DevOps,其中在使用DevOps进行软件开发的过程中,一个重要的环节是构建任务,所述构建任务包括系统根据用户需求或开发人员要求构建某一特定环境,比如软件开发工具包、编程语言及种类、依赖等,以便在该特定环境下配置一定的资源,该资源可以具备处理、运算和存储等功能,并且这些功能都可通过预先配置来完成。其中为了方便表示,将该资源也称为一个节点,且该节点用于服务某一特定环境的请求消息,并执行用户请求开发的相关的产品流水线得到该产品的安装包。在云平台系统中全部特定环境下的所有资源组成一个资源池,在该资源池中包括多个节点,这些节点可服务于多种特定环境,比如资源池中存在一些节点专为产品A的环境1提供构建服务,另一些节点专为产品A的环境2提供构建服务,还有一些节点专为产品A的环境3提供构建服务。其中每个节点仅服务于一种特定环境,且为某一种特定环境服务的节点数量是有限的,在这种情况下,当云平台系统在某一时刻接收来到海量的请求消息时,并且这些请求消息需要的特定环境一般会较大程度不同,这将导致在资源池中选择提供服务的节点也各不相同,甚至可能云平台查找的某一节点由于处于忙碌或下线状态而无法立刻提供服务,所以在海量请求中,如何快速高效地查找到每个请求消息所对应的节点,使得这些节点能够及时地为各个请求消息所需的特定环境提供构建服务,是本领域人员亟需解决的技术问题。
技术实现思路
本专利技术实施例提供了一种节点选择方法和装置,用于提高在资源池中查找请求消息对应的节点的效率。第一方面,本申请实施例提供了一种节点选择方法,所述方法包括:接收请求消息,所述请求消息用于请求提供用户所需产品的安装包,且所述请求消息中携带有唯一标识用户所需产品的产品信息;根据所述请求消息中的产品信息,在节点状态表中查找与所述产品信息对应的目标节点,其中所述节点状态表中包括至少一个对应关系,每个所述对应关系为一个节点与一个产品信息之间的关系,且所述节点状态表中的每个节点的状态为空闲;将所述请求消息发送给所述目标节点,以使所述目标节点为所述用户所需产品构建对应的产品安装包。本方面提供的方法,根据请求消息中的产品信息,以及节点状态表中包含的对应关系,能够快速地查找到该产品信息所对应的目标节点,并且该目标节点为空闲,从而将该请求消息发送给目标节点后,目标节点能够快速和有效地执行请求消息的产品构建任务,构建出产品的安装包,本方法提高资源池中目标节点的查找效率。结合第一方面,在第一方面的一种可能的实现中,所述产品信息包括产品名称和所述产品名称对应的版本号,所述根据所述请求消息中的产品信息,在节点状态表中查找与所述产品信息对应的目标节点,包括:在所述节点状态表中查找与所述产品名称和所述版本号相同的产品信息,并作为目标产品信息;根据所述目标产品信息以及所述目标产品信息的对应关系,确定所述目标节点。结合第一方面,在第一方面的另一种可能的实现中,所述接收请求消息之前,还包括:接收用户输入的配置参数,所述配置参数用于配置用户期望构建产品时所需的至少一个构建环境;根据所述配置参数生成至少一个构建环境代码,并运行每个所述构建环境代码得到与每个所述构建环境代码相对应的镜像文件;根据所述镜像文件生成至少一个节点,其中一个节点服务于一个镜像文件所对应的构建环境,且在所述构建环境下产生唯一的产品名称和版本号;根据每个所述节点和所述节点在所述构建环境下产生唯一的产品名称和版本号,建立所述至少一个对应关系;根据所述至少一个对应关系和每个节点的状态生成所述节点状态表。结合第一方面,在第一方面的又一种可能的实现中,第一节点用于在第一环境下构建第一产品的安装包,所述目标节点为一个所述第一节点;所述将所述请求消息发送给所述目标节点之后,还包括:在所述节点状态表中标记所述目标节点的状态为忙碌;检测所述节点状态表中所有空闲状态的第一节点的数量是否小于第一阈值;如果小于所述第一阈值,则配置和增加所述第一节点的数量,使得增加后的第一节点的数量不小于所述第一阈值。另外,还包括:在所述目标节点执行完所述请求消息的构建任务的情况下,标记所述目标节点的状态为空闲,并更新所述节点状态表;如果所述节点状态表中所有空闲状态的第一节点的数量超过第二阈值,则减少所述第一节点的数量,使得减少后的第一节点的数量不超过所述第二阈值。结合第一方面,在第一方面的又一种可能的实现中,在接收的所述请求消息的数量为N的情况下,N为预设时间内获取的请求消息的数量,N≥2且为正整数,所述在节点状态表中查找与所述产品信息对应的目标节点,包括:在所述节点状态表中查找与每个请求消息携带的产品信息向对应的目标节点,得到N个目标节点;所述将所述请求消息发送给所述目标节点,包括:将所述N个请求消息发送给对应的N个目标节点。第二方面,本申请实施例还提供了一种节点状态配置方法,所述方法包括:容器编辑器检测资源池中每个节点的状态,所述状态包括在线和下线,当检测到处于下线状态的节点时,标记该节点,以使得服务器将该节点从节点状态表中删除。第三方面,本申请实施例还提供了一种生成构建环境代码BIC的方法,该方法包括:服务器获取外部环境参数,所述外部环境参数包括:编程语言种类及版本、软件开发工具包SDK及其版本、产品源代码仓库;服务器根据所述外部环境参数生成BIC,以及将所述BIC存储在BIC代码仓库中。可选的,所述编程语言种类及版本包括编程语言运行时(language_runtime)。其中,所述BIC包括产品流水线代码和运行环境代码。进一步地,服务器执行BIC中的运行环境代码可得到该运行环境下的镜像文件,镜像文件用于生成一个或多个节点;服务器执行BIC中的产品流水线代码时,需要先获取产品对应的源代码,根据所述产品对应的源代码在执行所述产品流水线代码后生成该产品的二进制包,所述二进制包可以包括二进制的产品安装包或应用程序包。第四方面,本申请实施例还提供了一种节点确定装置,所述装置包括:该装置包括用于执行上述第一方面以及第一方面的各种实现方式中方法步骤的单元。具体地,该装置包括获取单元和处理单元,此外,还可以包括存储模块等其他模块或单元。第五方面,本申请实施例还提供了一种通信设备,包括处理器和存储器,所述处理器与所述存储器耦合,所述存储器用于存储指令;所述处理器用于调用所述指令使得所述通信设备执行前述第一方面以及第一方面各种实现方式中的节点选择方法。可选的,所述通信设备为服务器。此外,所述通信设本文档来自技高网
...

【技术保护点】
1.一种节点选择方法,其特征在于,所述方法包括:接收请求消息,所述请求消息用于请求提供用户所需产品的安装包,且所述请求消息中携带有唯一标识用户所需产品的产品信息;根据所述请求消息中的产品信息,在节点状态表中查找与所述产品信息对应的目标节点,其中所述节点状态表中包括至少一个对应关系,每个所述对应关系为一个节点与一个产品信息之间的关系,且所述节点状态表中的每个节点的状态为空闲;将所述请求消息发送给所述目标节点,以使所述目标节点为所述用户所需产品构建对应的产品安装包。

【技术特征摘要】
1.一种节点选择方法,其特征在于,所述方法包括:接收请求消息,所述请求消息用于请求提供用户所需产品的安装包,且所述请求消息中携带有唯一标识用户所需产品的产品信息;根据所述请求消息中的产品信息,在节点状态表中查找与所述产品信息对应的目标节点,其中所述节点状态表中包括至少一个对应关系,每个所述对应关系为一个节点与一个产品信息之间的关系,且所述节点状态表中的每个节点的状态为空闲;将所述请求消息发送给所述目标节点,以使所述目标节点为所述用户所需产品构建对应的产品安装包。2.根据权利要求1所述的方法,其特征在于,所述产品信息包括产品名称和所述产品名称对应的版本号,所述根据所述请求消息中的产品信息,在节点状态表中查找与所述产品信息对应的目标节点,包括:在所述节点状态表中查找与所述产品名称和所述版本号相同的产品信息,并作为目标产品信息;根据所述目标产品信息以及所述目标产品信息的对应关系,确定所述目标节点。3.根据权利要求1或2所述的方法,其特征在于,所述接收请求消息之前,还包括:接收用户输入的配置参数,所述配置参数用于配置用户期望构建产品时所需的至少一个构建环境;根据所述配置参数生成至少一个构建环境代码,并运行每个所述构建环境代码得到与每个所述构建环境代码相对应的镜像文件;根据所述镜像文件生成至少一个节点,其中一个节点服务于一个镜像文件所对应的构建环境,且在所述构建环境下产生唯一的产品名称和版本号;根据每个所述节点和所述节点在所述构建环境下产生唯一的产品名称和版本号,建立所述至少一个对应关系;根据所述至少一个对应关系和每个节点的状态生成所述节点状态表。4.根据权利要求1-3任一项所述的方法,其特征在于,第一节点用于在第一环境下构建第一产品的安装包,所述目标节点为一个所述第一节点;所述将所述请求消息发送给所述目标节点之后,还包括:在所述节点状态表中标记所述目标节点的状态为忙碌;检测所述节点状态表中所有空闲状态的第一节点的数量是否小于第一阈值;如果小于所述第一阈值,则配置和增加所述第一节点的数量,使得增加后的第一节点的数量不小于所述第一阈值。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:在所述目标节点执行完所述请求消息的构建任务的情况下,标记所述目标节点的状态为空闲,并更新所述节点状态表;如果所述节点状态表中所有空闲状态的第一节点的数量超过第二阈值,则减少所述第一节点的数量,使得减少后的第一节点的数量不超过所述第二阈值。6.根据权利要求1-5任一项所述的方法,其特征在于,在接收的所述请求消息的数量为N的情况下,N为预设时间内获取的请求消息的数量,N≥2且为正整数,所述在节点状态表中查找与所述产品信息对应的目标节点,包括:在所述节点状态表中查找与每个请求消息携带的产品信息向对应的目标节点,得到N个目标节点;所述将所述请求消息发送给所述目标节点,包括:将所述N个请求消息发送给对应的N个目标节点。7.一种节点选择装置,其特征在于,所述装置包括:接收单元,用于接收请求消息,所述请求消息用于请求提供用户所需产品的安装包,且所述请求消息中携带有唯一标...

【专利技术属性】
技术研发人员:王亚伟陈远峰
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1