CN111338784B - 一种实现代码仓库与计算服务整合的方法及系统 - Google Patents

一种实现代码仓库与计算服务整合的方法及系统 Download PDF

Info

Publication number
CN111338784B
CN111338784B CN202010445874.3A CN202010445874A CN111338784B CN 111338784 B CN111338784 B CN 111338784B CN 202010445874 A CN202010445874 A CN 202010445874A CN 111338784 B CN111338784 B CN 111338784B
Authority
CN
China
Prior art keywords
task
computing
state
user
calculation
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
Application number
CN202010445874.3A
Other languages
English (en)
Other versions
CN111338784A (zh
Inventor
俞扬
秦熔均
沈雷彦
冷俊杰
管延明
李济君
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanqi Xiance Nanjing Technology Co ltd
Original Assignee
Nanqi Xiance Nanjing Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanqi Xiance Nanjing Technology Co ltd filed Critical Nanqi Xiance Nanjing Technology Co ltd
Priority to CN202010445874.3A priority Critical patent/CN111338784B/zh
Priority to PCT/CN2020/096730 priority patent/WO2021237829A1/zh
Publication of CN111338784A publication Critical patent/CN111338784A/zh
Application granted granted Critical
Publication of CN111338784B publication Critical patent/CN111338784B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种实现代码仓库与计算服务整合的方法及系统,内嵌gitea作为代码仓库模块,通过k8s集群的形式管理和提供可拓展的计算资源,使用ray框架支持分布式机器学习,通过ceph提供分布式存储,实现代码仓库、计算资源、结果存储在统一平台管理;通过本发明,用户可直接在代码仓库或计算管理模块发起人工智能计算任务,计算任务使用的代码和计算资源均在发起页面直接配置,无需进行代码迁移。

Description

一种实现代码仓库与计算服务整合的方法及系统
技术领域
本发明涉及一种实现代码仓库与计算服务整合的方法及系统,通过计算平台,可将代码仓库与人工智能计算在同一个系统进行操作实施,属于人工智能技术领域。
背景技术
通常,人工智能算法研究实验主要包含如下过程:
(1)编写测试代码,准备实验数据;(2)准备实验环境,实际进行实验。
因此,研究人员的代码仓库与实验环境是分开准备的。
在代码托管部分,一般采用的方案有在线代码托管平台或者本地管理。主流的在线代码托管服务有github、gitlab等。用户在guthub等代码托管平台创建账号,并新建代码仓库后,即可远程编写代码,并通过https或者ssh将代码改动推送到github对应的分支和版本。实际进行实验时,每次调整代码后都需要迁移到计算平台,存在额外的平台切换流程和成本,这部分不应是实验人员所关注的内容。
计算平台方面,适用于大规模机器学习的软硬件环境搭建的门槛较高,通常需要高性能计算平台与特定软件环境搭配。
目前主流的解决方案为从云服务商租用虚拟主机,自行搭建实验环境,再进行训练。如采用这种方案,一方面,计算资源在租用之后即持续产生成本,另一方面,在开始实验之前,需要在云服务商提供的虚拟主机中安装软件环境,根据不同的网络环境和安装的软件内容,这一准备过程可能长达数个小时,消耗了实验人员较多的时间成本,导致每次实验成本较高,而其中真正产生价值的实验环节占比降低,较为低效。
另一种计算平台的方案是直接购买硬件,从硬件开始搭建计算环境。这种方案一次性投入的硬件成本较高,且需要自行负责运维工作,闲置成本也很突出。对于中小型研究机构和个人研究而言,性价比更低。
发明内容
发明目的:为克服现有技术中人工智能研究中代码与计算平台切换问题,本发明提出了一种新型的将代码托管与计算资源结合到同一个系统使用的方法和系统,减少了无意义的平台切换,以按量付费的形式降低了计算资源的闲置成本。
技术方案:一种实现代码仓库与计算服务整合的方法,内嵌gitea作为代码仓库模块,通过k8s集群的形式管理和提供可拓展的计算资源,使用ray框架支持分布式机器学习,通过ceph提供分布式存储,实现代码仓库、计算资源和结果存储,在统一平台管理;具体包括如下步骤:
用户发起计算任务时,获取用户新建任务信息,校验用户提交的新建任务信息是否有误;如果校验通过,任务创建成功,否则给用户提示错误信息;任务创建成功,查询现有集群资源列表,判断是否有满足所建任务指定的计算资源,如不满足,则将新建任务进入延迟排队状态,等待集群资源充足时将自动重试。如计算资源可满足,分配对应的计算节点;从代码仓库调用与任务相关的代码到计算节点,启动计算节点,并且绑定存储资源给对应计算节点;通过系统内置的分布式计算框架,开始计算任务,实时将任务执行日志和任务执行输出数据保存至存储地址;通过界面展示任务列表,进入任务详情界面,系统在计算管理界面中展示任务列表,展示当前任务的执行状态和统计数据,实现用户对计算任务的监控,同时支持用户对计算任务进行管理操作。
用户对计算任务进行监控和管理时,发送网络请求,反馈计算任务的执行状态和计算资源的占用情况,并通过绘制折线图的方式展示计算资源随时间的占用情况,通过监控界面展示计算任务的执行状态,实现用户的监控功能,用户点击任务的监控链接以后,反馈给用户监控页面,页面通过内嵌监控工具,实时刷新任务运行数据进行展示。
计算任务主要有如下几种执行状态:已创建、等待、构建、运行、暂停、停止,并通过任务详情页面展示给用户;(1)已创建:收到用户新建任务操作后,校验通过,任务创建成功,此时为已创建状态;(2)等待状态:k8s集群在收到分配资源通知后,还未完成资源分配工作时所处的状态;(3)构建状态:k8s集群中资源分配完毕,正在进行容器镜像的构建;(4)运行状态:做完前面所述资源分配和容器构建,实际运行用户任务代码的状态;(5)暂停状态:将计算任务暂停,资源保留不释放,随时可以继续执行的状态;(6)停止状态:提供了任务停止功能,用户触发后,系统对任务的当前结果进行保存,然后停止运行并释放对应的资源,不可恢复运行;(7)结束状态:任务被执行结束后的状态。
通过监控界面实现用户对任务状态的监控管理,提供停止任务、暂停任务、恢复任务的功能。对于运行中任务,接收到用户提交的停止操作后,根据任务目前处于的不同执行状态,进行如下操作:(1)任务处于已创建状态时,将任务状态更改为停止,并中止k8s集群的资源分配工作。(2)任务处于等待状态时,将任务状态更改为停止,并将任务从资源等待队列移除。(3)任务处于构建状态时,将任务状态更改为停止,并通知docker镜像进程停止构建,同时在k8s集群中取消资源分配。(4)任务处于运行状态时,将任务状态更改为停止,同时通知k8s集群,保存用户任务的当前结果到存储地址,然后删除对应的任务节点容器,释放计算资源。
对于运行中任务,接收到用户提交的暂停操作后,根据任务目前处于的不同执行状态,进行如下操作:(1)任务处于已创建状态时,系统直接将任务状态更改为已暂停,并暂停k8s集群的资源分配工作。(2)任务处于等待状态时,将任务状态更改为暂停,并将任务从资源等待队列移除。(3)任务处于构建状态时,将任务状态更改为已暂停,并通知docker镜像进程停止构建。(4)任务处于运行状态时,将任务状态更改为已暂停,同时通知k8s集群,暂停执行用户代码,同时不释放计算资源,准备随时继续执行。
对于已暂停任务,接收到用户恢复操作后,根据任务暂停时的不同执行状态,进行如下操作:(1)任务暂停时处于已创建状态,将任务状态更改为已创建,并继续k8s集群的资源分配工作。(2)任务暂停时处于等待状态,将任务状态更改为等待,并将任务恢复到资源等待队列。(3)任务暂停时处于构建状态,将任务状态更改为构建,并通知docker镜像进程重新构建镜像。(4)任务暂停时处于运行状态,系统将任务状态更改为运行,同时通知k8s集群,恢复执行用户代码。
一种用于实现上述代码仓库与计算服务整合方法的系统,包括代码仓库模块,计算节点构建模块,计算任务监控和管理模块,以及存储模块;
所述代码仓库模块用于存储计算任务执行的代码;
所述计算任务监控和管理模块通过新建任务界面实现用户新建计算任务的交互;用户通过新建任务界面输入新建任务信息,计算任务监控和管理模块获取用户新建任务信息,校验用户提交的新建任务信息是否有误;如果校验通过,计算任务监控和管理模块反馈用户任务创建成功,否则给用户提示错误信息;任务创建成功后,所述计算任务监控和管理模块查询现有集群资源列表,判断是否有满足所建任务指定的计算资源,如不满足,则将新建任务进入延迟排队状态,等待集群资源充足时将自动重试;如计算资源可满足,触发计算节点构建模块,计算节点构建模块通过k8s分配对应的计算节点,从代码仓库调用与任务相关的代码到计算节点,启动计算节点,并且绑定存储资源给对应计算节点作为存储模块,构建计算节点成功;所述计算节点通过系统内置的分布式计算框架,开始执行计算任务;计算节点实时将任务执行日志和任务执行输出数据保存至存储模块;计算任务监控和管理模块实时获取存储模块上的任务执行日志和任务执行输出数据,通过界面形式向用户展示任务列表,用户进入任务详情界面,计算任务监控和管理模块在计算管理界面中展示任务列表,展示当前任务的执行状态和统计数据,实现用户对计算任务的监控,同时支持用户对计算任务进行管理操作。
用户通过计算监控和管理模块对计算任务进行监控和管理时,利用操作界面发送关于任务监控和管理的网络请求,计算监控和管理模块收到用户的网络请求后,将存储在存储模块上的计算任务的执行状态反馈给用户,实现用户的监控功能,用户点击任务的监控链接以后,通过内嵌的监控工具,实时刷新任务运行数据展示给用户。
用户通过计算监控和管理模块对计算任务进行监控和管理时,计算监控和管理模块还通过绘制折线图的方式展示计算资源随时间的占用情况展示给用户。
所述计算监控和管理模块通过监控界面实现用户对任务状态的管理,提供停止任务、暂停任务、恢复任务的功能;对于运行中任务,接收到用户提交的停止操作后,通过获取任务执行状态,进行如下操作:(1)任务处于已创建状态时,将任务状态更改为停止,并通知计算节点构建模块中止k8s集群的资源分配工作;(2)任务处于等待状态时,将任务状态更改为停止,并将任务从资源等待队列移除;(3)任务处于构建状态时,将任务状态更改为停止,并通知计算节点构建模块的docker镜像进程停止构建,同时在k8s集群中取消资源分配。(4)任务处于运行状态时,将任务状态更改为停止,同时通知k8s集群,保存用户任务的当前结果到存储模块,然后销毁对应的任务节点容器,释放计算资源。
对于运行中任务,接收到用户提交的暂停操作后,计算监控和管理模块获取存储模块上任务执行状态信息,根据任务目前处于的不同执行状态,进行如下操作:(1)任务处于已创建状态时,计算监控和管理模块直接将任务状态更改为已暂停,并通知暂停k8s集群的资源分配工作。(2)任务处于等待状态时,将任务状态更改为暂停,并将任务从资源等待队列移除。(3)任务处于构建状态时,将任务状态更改为已暂停,并通知计算节点构建模块docker镜像进程停止构建。(4)任务处于运行状态时,将任务状态更改为已暂停,同时通知k8s集群,暂停执行用户代码,同时不释放计算资源,准备随时继续执行。
对于已暂停任务,计算监控和管理模块接收到用户恢复操作后,计算监控和管理模块获取存储模块上任务执行状态信息,根据任务暂停时的不同执行状态,进行如下操作:(1)任务暂停时处于已创建状态,将任务状态更改为已创建,并通知计算节点构建模块继续k8s集群的资源分配工作;(2)任务暂停时处于等待状态,将任务状态更改为等待,并将任务恢复到资源等待队列;(3)任务暂停时处于构建状态,将任务状态更改为构建,并通知计算节点构建模块的docker镜像进程重新构建镜像;(4)任务暂停时处于运行状态,系统将任务状态更改为运行,同时通知k8s集群,恢复执行用户代码。
计算监控和管理模块将上述状态信息的更改存储到存储模块。
有益效果:与现有技术相比,本发明提供的一种实现代码仓库与计算服务整合的方法及系统,用户可直接在代码仓库或计算管理模块发起人工智能计算任务,计算任务使用的代码和计算资源均在发起页面直接配置 ,无需进行代码迁移。
附图说明
图1是本发明方法流程图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
实现代码仓库与计算服务整合的方法,内嵌gitea作为代码仓库模块,通过k8s集群的形式管理和提供可拓展的计算资源,使用ray框架支持分布式机器学习,通过ceph提供分布式存储,实现代码仓库、计算资源、结果存储在统一平台管理;如图1所示,具体包括如下步骤:
用户发起计算任务,用户提供新建任务信息,包括任务名称、任务描述、代码分支、代码版本(默认最新版本)、任务入口文件和使用的计算资源,通过版本控制系统或https协议获取用户新建任务信息,校验用户提交的新建任务信息是否有误;包括:任务名称是否重名、代码分支是否存在、代码版本是否存在。如果校验通过,任务创建成功,否则给用户提示错误信息;任务创建成功后,查询现有集群资源列表,判断是否有满足所建任务指定的计算资源,如不满足,则将新建任务进入延迟排队状态,等待集群资源充足时将自动重试。如计算资源可满足,通过k8s分配对应的计算节点;从代码仓库调用与任务相关的代码到计算节点,启动计算节点,并且绑定存储资源给对应计算节点;通过计算节点系统内置的分布式计算框架,开始计算任务,实时将任务执行日志和任务执行输出数据保存至存储地址;通过界面形式展示任务列表,进入任务详情界面,系统在计算管理界面中展示任务列表,展示当前任务的执行状态和统计数据,实现用户对计算任务的监控,同时支持用户对计算任务进行管理操作。
用户对计算任务进行监控和管理时,可实时发送网络请求,收到用户的网络请求后,计算节点反馈计算任务的执行状态和计算资源的占用情况,并通过绘制折线图的方式展示计算资源随时间的占用情况,通过监控界面展示计算任务的执行状态,实现用户的监控功能,用户点击任务的监控链接以后,反馈给用户监控页面,页面通过内嵌tensorboard等人工智能计算任务常用的监控工具,实时刷新任务运行数据进行展示。
计算任务主要有如下几种执行状态:已创建、等待、构建、运行、暂停、停止,并通过任务详情页面展示给用户;(1)已创建:收到用户新建任务操作后,校验通过,通知k8s集群开始分配资源,返回给用户任务已创建的消息;(2)等待状态:k8s集群在收到分配资源通知后,还未完成资源分配工作时所处的状态;(3)构建状态:k8s集群中资源分配完毕,正在进行容器镜像的构建;(4)运行状态:做完前面所述资源分配和容器构建,实际运行用户代码的状态;(5)暂停状态:将计算任务暂停,资源保留不释放,随时可以继续执行的状态;(6)停止状态:提供了任务停止功能,用户触发后,系统对任务的当前结果进行保存,然后停止运行并释放所有资源,不可恢复运行;(7)结束状态:任务被执行结束后的状态。
通过监控界面实现用户对任务状态的监控管理,提供停止任务、暂停任务、恢复任务的功能。对于运行中任务,接收到用户提交的停止操作后,根据任务目前处于的不同执行状态,进行如下操作:(1)任务处于已创建状态时,将任务状态更改为停止,并中止k8s集群的资源分配工作。(2)任务处于等待状态时,将任务状态更改为停止,并将任务从资源等待队列移除。(3)任务处于构建状态时,将任务状态更改为停止,并通知docker镜像进程停止构建,同时在k8s集群中取消资源分配。(4)任务处于运行状态时,将任务状态更改为停止,同时通知k8s集群,保存用户任务的当前结果到存储地址,然后销毁对应的任务节点容器,释放计算资源。
对于运行中任务,接收到用户提交的暂停操作后,根据任务目前处于的不同执行状态,进行如下操作:(1)任务处于已创建状态时,系统直接将任务状态更改为已暂停,并暂停k8s集群的资源分配工作。(2)任务处于等待状态时,将任务状态更改为暂停,并将任务从资源等待队列移除。(3)任务处于构建状态时,将任务状态更改为已暂停,并通过消息中间件,通知docker镜像进程停止构建。(4)任务处于运行状态时,将任务状态更改为已暂停,同时通知k8s集群,暂停执行用户代码,同时不释放计算资源,准备随时继续执行。
对于已暂停任务,接收到用户恢复操作后,根据任务暂停时的不同执行状态,进行如下操作:(1)任务暂停时处于已创建状态,将任务状态更改为已创建,并继续k8s集群的资源分配工作。(2)任务暂停时处于等待状态,将任务状态更改为等待,并将任务恢复到资源等待队列。(3)任务暂停时处于构建状态,将任务状态更改为构建,并通过消息中间件,通知docker镜像进程重新构建镜像。(4)任务暂停时处于运行状态,系统将任务状态更改为运行,同时通知k8s集群,恢复执行用户代码。
通过http请求,为用户提供保存在存储地址任务执行日志和任务执行输出数据,并展示在页面上,提供文件下载链接,便于用户进行下载和浏览。
通过运行多个容器作为执行任务的计算节点,并将用户代码从代码仓库导入到容器中,代码用于后期任务执行;为计算节点绑定通过生成虚拟路径得到的对象存储及文件存储资源,用作计算任务的数据输入、监控数据和结果存储的存储地址;在监控进程中注册任务,生成监控链接,开始执行任务;执行完成后将日志和结果保存至存储地址。
实现代码仓库与计算服务整合的系统,包括代码仓库模块,计算节点构建模块,计算任务监控和管理模块,以及存储模块;
计算任务监控和管理模块通过新建任务界面用于用户新建计算任务的交互;用户通过新建任务界面输入任务名称、任务描述、代码分支 、代码版本(默认最新版本)、任务入口文件和使用的计算资源等新建任务信息,计算任务监控和管理模块通过版本控制系统或https协议获取用户新建任务信息,校验用户提交的新建任务信息是否有误;包括:任务名称是否重名、代码分支是否存在、代码版本是否存在。如果校验通过,计算任务监控和管理模块反馈用户任务创建成功,否则给用户提示错误信息;任务创建成功后,计算任务监控和管理模块查询现有集群资源列表,判断是否有满足所建任务指定的计算资源,如不满足,则将新建任务进入延迟排队状态,等待集群资源充足时将自动重试。如计算资源可满足,触发计算节点构建模块,计算节点构建模块通过k8s分配对应的计算节点,从代码仓库调用与任务相关的代码到计算节点,启动计算节点,并且绑定存储资源给对应计算节点,构建计算节点成功;计算节点通过系统内置的分布式计算框架,开始执行计算任务。计算节点实时将任务执行日志和任务执行输出数据保存至存储模块;计算任务监控和管理模块实时获取存储模块上的任务执行日志和任务执行输出数据,通过界面形式向用户展示任务列表,用户进入任务详情界面,计算任务监控和管理模块在计算管理界面中展示任务列表,展示当前任务的执行状态和统计数据,实现用户对计算任务的监控,同时支持用户对计算任务进行管理操作。
用户通过计算监控和管理模块对计算任务进行监控和管理时,用户通过操作界面可实时发送网络请求,计算监控和管理模块收到用户的网络请求后,要求计算节点反馈计算任务的执行状态和计算资源的占用情况,并通过绘制折线图的方式展示计算资源随时间的占用情况,通过监控界面展示计算任务的执行状态,实现用户的监控功能,用户点击任务的监控链接以后,反馈给用户监控页面,页面通过内嵌tensorboard等人工智能计算任务常用的监控工具,实时刷新任务运行数据进行展示。
计算监控和管理模块通过监控界面实现用户对任务状态的管理,提供停止任务、暂停任务、恢复任务的功能。对于运行中任务,接收到用户提交的停止操作后,通过获取任务执行状态,进行如下操作:(1)任务处于已创建状态时,将任务状态更改为停止,并通知计算节点构建模块中止k8s集群的资源分配工作,并将状态信息的更改存储到存储模块。以下状态信息的更改,同样存储到存储模块。(2)任务处于等待状态时,将任务状态更改为停止,并将任务从资源等待队列移除。(3)任务处于构建状态时,将任务状态更改为停止,并通过消息中间件,通知计算节点构建模块的docker镜像进程停止构建,同时在k8s集群中取消资源分配。(4)任务处于运行状态时,将任务状态更改为停止,同时通知k8s集群,保存用户任务的当前结果到存储模块,然后销毁对应的任务节点容器,释放计算资源。
对于运行中任务,接收到用户提交的暂停操作后,计算监控和管理模块根据任务目前处于的不同执行状态,进行如下操作:(1)任务处于已创建状态时,计算监控和管理模块直接将任务状态更改为已暂停,并通知暂停k8s集群的资源分配工作。(2)任务处于等待状态时,将任务状态更改为暂停,并将任务从资源等待队列移除。(3)任务处于构建状态时,将任务状态更改为已暂停,并通过消息中间件,通知计算节点构建模块docker镜像进程停止构建。(4)任务处于运行状态时,将任务状态更改为已暂停,同时通知k8s集群,暂停执行用户代码,同时不释放计算资源,准备随时继续执行。
对于已暂停任务,计算监控和管理模块接收到用户恢复操作后,根据任务暂停时的不同执行状态,进行如下操作:(1)任务暂停时处于已创建状态,将任务状态更改为已创建,并通知继续k8s集群的资源分配工作。(2)任务暂停时处于等待状态,将任务状态更改为等待,并将任务恢复到资源等待队列。(3)任务暂停时处于构建状态,将任务状态更改为构建,并通过消息中间件,通知计算节点构建模块的docker镜像进程重新构建镜像。(4)任务暂停时处于运行状态,系统将任务状态更改为运行,同时通知k8s集群,恢复执行用户代码。
存储模块通过http请求,为用户提供保存在存储地址任务执行日志和任务执行输出数据,并通过计算监控和管理模块展示在页面上,提供文件下载链接,便于用户进行下载和浏览。

Claims (9)

1.一种实现代码仓库与计算服务整合的方法,其特征在于:将代码托管与计算资源结合到同一个系统使用,内嵌gitea作为代码仓库模块,通过k8s集群的形式管理和提供可拓展的计算资源,使用ray框架支持分布式机器学习,通过ceph提供分布式存储,实现代码仓库、计算资源、以及结果存储,在统一平台管理,包括如下步骤:用户发起计算任务时,获取用户新建计算任务信息,校验用户提交的新建计算任务信息是否有误;如果校验通过,任务创建成功,否则给用户提示错误信息;任务创建成功后,查询现有集群资源列表,判断是否有满足所建计算任务指定的计算资源,如不满足,则将新建计算任务进入延迟排队状态,等待集群资源充足时将自动重试;如计算资源能满足执行计算任务,通过k8s分配计算节点给计算任务用于执行计算任务;从代码仓库调用与计算任务相关的代码到计算节点,启动计算节点,并且绑定存储资源给对应计算节点;通过计算节点系统内置的分布式计算框架,开始执行计算任务,实时将任务执行日志和任务执行输出数据保存至存储地址;通过界面展示计算任务列表,进入任务详情界面;在计算管理界面中展示任务列表,实现用户对计算任务的监控,同时支持用户对计算任务进行管理操作;
用户新建计算任务信息包括:任务名称、任务描述、代码分支 、代码版本、任务入口文件和使用的计算资源;新建计算任务时,如计算资源可满足计算任务,通过k8s分配对应的计算节点;通过运行多个容器作为执行计算任务的计算节点,并将用户计算任务代码从代码仓库导入到容器中。
2.根据权利要求1所述的实现代码仓库与计算服务整合的方法,其特征在于:用户对计算任务进行监控和管理时,接收到用户请求后,反馈计算任务的执行状态和计算资源的占用情况,并通过绘制折线图的方式展示计算资源随时间的占用情况,利用监控界面展示计算任务的执行状态,实现用户的监控功能,提供监控链接,用户点击后,通过内嵌监控工具,实时刷新计算任务运行数据进行展示。
3.根据权利要求1所述的实现代码仓库与计算服务整合的方法,其特征在于:展示给用户的计算任务执行状态包括已创建、等待、构建、运行、暂停和停止六种状态;
已创建状态:指收到用户新建任务操作后,校验通过,任务创建成功;
等待状态:利用k8s集群分配资源的过程中,k8s集群收到分配资源通知后,还未完成资源分配工作时所处的状态;
构建状态:k8s集群中资源分配完毕,正在进行容器镜像的构建;
运行状态:做完所述资源分配和容器镜像的构建,运行计算任务代码的状态;
暂停状态:将计算任务暂停,资源保留不释放,随时能继续执行的状态;
停止状态:提供了计算任务停止功能,用户触发后,对计算任务的当前结果进行保存,然后停止运行并释放对应的资源,不可恢复运行;
结束状态:计算任务被执行结束后的状态。
4.根据权利要求3所述的实现代码仓库与计算服务整合的方法,其特征在于:通过监控界面实现用户对任务执行状态的监控管理,提供停止任务、暂停任务、恢复任务的功能;对于执行中计算任务,接收到用户提交的停止任务操作后,根据计算任务目前处于的不同执行状态,进行如下操作:一、计算任务处于已创建状态时,将计算任务状态更改为停止,并中止k8s集群的资源分配工作;二、计算任务处于等待状态时,将计算任务状态更改为停止,并将计算任务从资源等待队列移除;三、计算任务处于构建状态时,将计算任务状态更改为停止,并通知docker镜像进程停止构建,同时在k8s集群中取消资源分配;四、计算任务处于运行状态时,将任务状态更改为停止,同时通知k8s集群,保存用户计算任务的当前结果到存储地址,然后删除对应的任务节点容器,释放计算资源。
5.根据权利要求4所述的实现代码仓库与计算服务整合的方法,其特征在于:对于执行中的计算任务,接收到用户提交的暂停任务操作后,根据计算任务目前处于的不同执行状态,进行如下操作:一、计算任务处于已创建状态时,将任务状态更改为暂停,并暂停k8s集群的资源分配工作;二、计算任务处于等待状态时,将任务状态更改为暂停,并将任务从资源等待队列移除;三、计算任务处于构建状态时,将任务状态更改为暂停,并通知docker镜像进程停止构建;四、计算任务处于运行状态时,将任务状态更改为暂停,同时通知k8s集群,暂停执行用户计算任务代码,同时不释放计算资源,准备随时继续执行。
6.根据权利要求4所述的实现代码仓库与计算服务整合的方法,其特征在于:对于处于暂停状态的计算任务,接收到用户恢复任务操作后,根据计算任务被执行暂停操作时所处的不同执行状态,进行如下操作:一、计算任务被执行暂停操作时处于已创建状态的,将计算任务状态更改为已创建,并继续k8s集群的资源分配工作;二、计算任务被执行暂停操作时处于等待状态的,将计算任务状态更改为等待,并将计算任务恢复到资源等待队列;三、计算任务被执行暂停操作时处于构建状态的,将计算任务状态更改为构建,并通知docker镜像进程重新构建镜像;四、计算任务被执行暂停操作时处于运行状态的,将计算任务状态更改为运行,同时通知k8s集群,恢复执行用户计算任务代码。
7.根据权利要求1所述的实现代码仓库与计算服务整合的方法,其特征在于:用户发起计算任务时,通过版本控制系统或https协议传输到计算环境实现获取用户新建任务信息;通过http请求,为用户提供保存在存储地址的任务执行日志和任务执行输出数据,并展示在页面上,提供文件下载链接,让用户进行下载和浏览。
8.一种代码仓库与计算服务整合的系统,其特征在于:包括代码仓库模块,计算节点构建模块,计算任务监控和管理模块,以及存储模块;
所述代码仓库模块用于存储计算任务执行的代码;
所述计算任务监控和管理模块通过新建任务界面实现用户新建计算任务的交互;用户通过新建任务界面输入新建计算任务信息,计算任务监控和管理模块获取用户新建计算任务信息,校验用户提交的新建计算任务信息是否有误;如果校验通过,计算任务监控和管理模块反馈用户计算任务创建成功,否则给用户提示错误信息;计算任务创建成功后,所述计算任务监控和管理模块查询现有集群资源列表,判断是否有满足所建计算任务指定的计算资源,如不满足,则将新建计算任务进入延迟排队状态,等待集群资源充足时将自动重试;如计算资源可满足,触发计算节点构建模块,计算节点构建模块通过k8s分配对应的计算节点给计算任务用于执行计算任务,从代码仓库调用与计算任务相关的代码到计算节点,启动计算节点,并且绑定存储资源给对应计算节点作为存储模块,构建计算节点成功;所述计算节点通过系统内置的分布式计算框架,开始执行计算任务;计算节点实时将任务执行日志和任务执行输出数据保存至存储模块;计算任务监控和管理模块实时获取存储模块上的任务执行日志和任务执行输出数据,通过界面形式向用户展示任务列表,用户进入任务详情界面,计算任务监控和管理模块在计算管理界面中展示任务列表,展示当前计算任务的执行状态和统计数据,实现用户对计算任务的监控,同时支持用户对计算任务进行管理操作;
所述新建计算任务信息包括:任务名称、任务描述、代码分支 、代码版本、任务入口文件和使用的计算资源;新建计算任务时,如计算资源可满足计算任务,通过k8s分配对应的计算节点;通过运行多个容器作为执行计算任务的计算节点,并将用户计算任务代码从代码仓库导入到容器中。
9.根据权利要求8所述的代码仓库与计算服务整合的系统,其特征在于:用户通过计算监控和管理模块对计算任务进行监控和管理时,利用操作界面发送关于任务监控和管理的网络请求,计算监控和管理模块收到用户的网络请求后,将存储在存储模块上的计算任务的执行状态反馈给用户,实现用户的监控功能,用户点击任务的监控链接以后,通过内嵌的监控工具,实时刷新任务运行数据展示给用户;用户通过计算监控和管理模块对计算任务进行监控和管理时,计算监控和管理模块还通过绘制折线图的方式展示计算资源随时间的占用情况展示给用户;所述计算监控和管理模块通过监控界面实现用户对任务状态的管理,提供停止任务、暂停任务、恢复任务的功能。
CN202010445874.3A 2020-05-25 2020-05-25 一种实现代码仓库与计算服务整合的方法及系统 Active CN111338784B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010445874.3A CN111338784B (zh) 2020-05-25 2020-05-25 一种实现代码仓库与计算服务整合的方法及系统
PCT/CN2020/096730 WO2021237829A1 (zh) 2020-05-25 2020-06-18 一种实现代码仓库与计算服务整合的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010445874.3A CN111338784B (zh) 2020-05-25 2020-05-25 一种实现代码仓库与计算服务整合的方法及系统

Publications (2)

Publication Number Publication Date
CN111338784A CN111338784A (zh) 2020-06-26
CN111338784B true CN111338784B (zh) 2020-12-22

Family

ID=71183019

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010445874.3A Active CN111338784B (zh) 2020-05-25 2020-05-25 一种实现代码仓库与计算服务整合的方法及系统

Country Status (2)

Country Link
CN (1) CN111338784B (zh)
WO (1) WO2021237829A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112035238A (zh) * 2020-09-11 2020-12-04 曙光信息产业(北京)有限公司 任务调度处理方法、装置、集群系统及可读存储介质
CN112700014B (zh) * 2020-11-18 2023-09-29 脸萌有限公司 部署联邦学习应用的方法、装置、系统和电子设备
CN112632113B (zh) * 2020-12-31 2022-02-11 北京九章云极科技有限公司 一种算子管理方法和算子管理系统
CN114253598B (zh) * 2021-12-22 2023-09-05 浪潮卓数大数据产业发展有限公司 一种在线编码系统的代码托管方法及工具
CN114489942B (zh) * 2022-01-19 2024-02-23 西安交通大学 一种面向应用集群的队列任务调度方法及系统
CN114691241B (zh) * 2022-04-19 2024-01-19 中煤航测遥感集团有限公司 任务执行方法、装置、电子设备及存储介质
CN115080254B (zh) * 2022-08-24 2023-09-22 北京向量栈科技有限公司 一种用于调整计算集群中计算任务资源的方法和系统
CN117112157A (zh) * 2023-07-04 2023-11-24 中国人民解放军陆军工程大学 基于clts调度算法的面向任务的通用分布式计算系统
CN117009089B (zh) * 2023-09-28 2023-12-12 南京庆文信息科技有限公司 基于分布式计算与uwb定位的机器人集群监督管理系统
CN117519953B (zh) * 2024-01-08 2024-04-05 北京大学 一种面向服务器无感知计算的分离式内存管理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106529673A (zh) * 2016-11-17 2017-03-22 北京百度网讯科技有限公司 基于人工智能的深度学习网络训练方法及装置
CN107733977A (zh) * 2017-08-31 2018-02-23 北京百度网讯科技有限公司 一种基于Docker的集群管理方法及装置
CN109445802A (zh) * 2018-09-25 2019-03-08 众安信息技术服务有限公司 基于容器的私有化Paas平台及其发布应用的方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9800517B1 (en) * 2013-10-31 2017-10-24 Neil Anderson Secure distributed computing using containers
CN106909451A (zh) * 2017-02-28 2017-06-30 郑州云海信息技术有限公司 一种分布式任务调度系统及方法
CN107229520B (zh) * 2017-04-27 2019-10-18 北京数人科技有限公司 一种数据中心操作系统
CN108268308A (zh) * 2018-01-22 2018-07-10 广州欧赛斯信息科技有限公司 一种基于容器平台的持续集成方法、系统及装置
CN109522025B (zh) * 2018-10-30 2021-07-20 深圳市小赢信息技术有限责任公司 一种基于git的代码发布系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106529673A (zh) * 2016-11-17 2017-03-22 北京百度网讯科技有限公司 基于人工智能的深度学习网络训练方法及装置
CN107733977A (zh) * 2017-08-31 2018-02-23 北京百度网讯科技有限公司 一种基于Docker的集群管理方法及装置
CN109445802A (zh) * 2018-09-25 2019-03-08 众安信息技术服务有限公司 基于容器的私有化Paas平台及其发布应用的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
分布式任务调度平台XXL-JOB;xueli.xue;《https://github.com/xuxueli/xxl-job/blob/v1.7/README.md》;20170517;第1-37页 *
基于Docker的容器集群管理平台的研究与实现;张城城;《中国优秀硕士学位论文全文数据库(信息科技辑)》;20190831(第8期);全文 *

Also Published As

Publication number Publication date
CN111338784A (zh) 2020-06-26
WO2021237829A1 (zh) 2021-12-02

Similar Documents

Publication Publication Date Title
CN111338784B (zh) 一种实现代码仓库与计算服务整合的方法及系统
CN108647083B (zh) 任务执行方法、装置、系统、电子设备及计算机可读介质
US8713163B2 (en) Monitoring cloud-runtime operations
US7523196B2 (en) Session monitoring using shared memory
US7779298B2 (en) Distributed job manager recovery
EP1679602B1 (en) Shared memory based monitoring for application servers
US20160275123A1 (en) Pipeline execution of multiple map-reduce jobs
CN110083455B (zh) 图计算处理方法、装置、介质及电子设备
WO2017059331A1 (en) Workflow service using state transfer
CN108243012B (zh) 在线计费系统ocs中计费应用处理系统、方法及装置
CN102760074A (zh) 高负荷业务流程可扩展性
CN105630589A (zh) 分布式流程调度系统及流程调度、执行方法
US6862732B1 (en) Method and apparatus for event-driven processing of data
CN103825964A (zh) 一种基于云计算PaaS平台的SLS调度装置和方法
US20150106825A1 (en) Durable execution of long running applications
CN107483245A (zh) 一种基于karaf_agent的主动采集实现装置
CN105453035A (zh) 通过在线存储库更新软件组件
CN112637304A (zh) 一种跨云资源处理系统和资源管理方法
CN111193610B (zh) 一种基于物联网的智慧监控数据系统和方法
CN109842500A (zh) 一种调度方法及系统、工作节点及监控节点
CN110011827A (zh) 面向医联体的多用户大数据分析服务系统和方法
US7657590B2 (en) Load balancing system and method
CN107172149A (zh) 大数据即时调度方法
CN113934711B (zh) 一种自动化部署gbase8s集群的方法
CN114356718A (zh) 日志处理方法、介质、系统和计算设备

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
GR01 Patent grant
GR01 Patent grant
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Qin Rongjun

Inventor after: Shen Leiyan

Inventor after: Leng Junjie

Inventor after: Guan Yanming

Inventor after: Li Jijun

Inventor before: Yu Yang

Inventor before: Qin Rongjun

Inventor before: Shen Leiyan

Inventor before: Leng Junjie

Inventor before: Guan Yanming

Inventor before: Li Jijun