CN117950646B - 软件开发方法、装置、计算机设备、存储介质及程序产品 - Google Patents

软件开发方法、装置、计算机设备、存储介质及程序产品 Download PDF

Info

Publication number
CN117950646B
CN117950646B CN202410347857.4A CN202410347857A CN117950646B CN 117950646 B CN117950646 B CN 117950646B CN 202410347857 A CN202410347857 A CN 202410347857A CN 117950646 B CN117950646 B CN 117950646B
Authority
CN
China
Prior art keywords
software
target
container
update
original
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
CN202410347857.4A
Other languages
English (en)
Other versions
CN117950646A (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.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent 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 Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202410347857.4A priority Critical patent/CN117950646B/zh
Publication of CN117950646A publication Critical patent/CN117950646A/zh
Application granted granted Critical
Publication of CN117950646B publication Critical patent/CN117950646B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明涉及软件开发技术领域,具体涉及软件开发方法、装置、计算机设备、存储介质及程序产品。获取完成目标软件开发任务所需的至少一个目标软件;基于各目标软件,在AI开发平台创建目标镜像;基于目标镜像,创建目标软件开发任务对应的目标容器组;目标容器组中包括原始初始化容器和原始开发环境容器;在目标容器组中,调用目标容器组中的各目标软件完成目标软件开发任务。从而保证了目标镜像中不存在用户不需要的软件,避免了用户不需要的软件占用计算机硬件资源。因此,实现了根据用户需求进行目标软件开发,减少了不需要的软件的运行,从而节省硬件资源,保证了目标软件的正常开发。

Description

软件开发方法、装置、计算机设备、存储介质及程序产品
技术领域
本发明涉及软件开发技术领域,具体涉及软件开发方法、装置、计算机设备、存储介质及程序产品。
背景技术
算法开发人员在使用AI开发平台开发软件时,通常会先创建一个原始开发环境容器用来编写和调试代码。在启动原始开发环境容器时,需要使用镜像。因此,AI开发平台会内置多个用于启动原始开发环境容器的预置镜像,每个预置镜像内预置了对应的AI开发的工具,比如Tensorflow、PyTorch等,同时也内置了其他软件。例如Jupyter软件,其中Jupyter软件是AI算法开发人员常用的一个软件,该软件提供了比较好的可视化与交互式开发体验。
当前技术中,原始开发环境容器在启动时,预置镜像内预置的各个软件也同时启动。但是,开发人员并不需要预置镜像内的所有软件。因此,部分软件的运行浪费了计算机的硬件资源,进而可能影响软件的开发。
因此,如何根据用户需求进行软件开发,从而节省硬件资源,保证软件的正常开发,成为了亟待解决的问题。
发明内容
有鉴于此,本发明提供了一种软件开发方法、装置、计算机设备、存储介质及程序产品,以解决如何根据用户需求进行软件开发,从而节省硬件资源,保证软件的正常开发的问题。
第一方面,本发明提供了一种软件开发方法,方法包括:
获取完成目标软件开发任务所需的至少一个目标软件;
基于各目标软件,在AI开发平台创建目标镜像;目标镜像中包括软件仓库,软件仓库中包括各目标软件对应的目标软件安装包;
基于目标镜像,创建目标软件开发任务对应的目标容器组;目标容器组中包括原始初始化容器和原始开发环境容器;
在目标容器组中,调用目标容器组中的各目标软件完成目标软件开发任务。
本申请实施例提供的软件开发方法,获取完成目标软件开发任务所需的至少一个目标软件;基于各目标软件,在AI开发平台创建目标镜像,保证了创建的目标镜像的准确性,且使得目标镜像中包括各目标软件。基于目标镜像,创建目标软件开发任务对应的目标容器组,从而保证了创建的目标容器中安装了各目标软件。在目标容器组中,调用目标容器组中的各目标软件完成目标软件开发任务,保证了目标软件开发任务的正常完成。上述方法,基于用户所需的各目标软件创建目标镜像,从而保证了目标镜像中不存在用户不需要的软件,避免了用户不需要的软件占用计算机硬件资源。因此,实现了根据用户需求进行目标软件开发,减少了不需要的软件的运行,从而节省硬件资源,保证了目标软件的正常开发。
在一种可选的实施方式中,目标容器组中包括原始初始化容器和原始开发环境容器;基于目标镜像,创建目标软件开发任务对应的目标容器组,包括:
创建第一初始容器组;
基于目标镜像,在第一初始容器组中创建原始初始化容器和原始开发环境容器,原始初始化容器中包括软件仓库;
在原始开发环境容器中安装各目标软件;
基于原始初始化容器和原始开发环境容器,生成目标容器组。
本申请实施例提供的软件开发方法,创建第一初始容器组,基于目标镜像,在第一初始容器组中创建原始初始化容器和原始开发环境容器,保证了创建得到的原始初始化容器和原始开发环境容器的准确性,且保证了创建的原始初始化容器中包括软件仓库,进而可以保证在原始开发环境容器中安装目标软件。然后,在原始开发环境容器中安装各目标软件,基于原始初始化容器和原始开发环境容器,生成目标容器组,从而保证了生成的目标容器组的准确性,且使得可以在原始开发环境容器中正常调用目标软件,解决了自定义镜像通常无法使用目标软件的问题,进而可以保证基于目标容器组完成目标软件开发任务。
在一种可选的实施方式中,在原始开发环境容器中安装各目标软件,包括:
启动原始初始化容器,以使软件仓库处于可访问状态;
基于启动后的原始初始化容器,在原始开发环境容器中安装各目标软件。
本申请实施例提供的软件开发方法,启动原始初始化容器,以使软件仓库处于可访问状态,从而保证可以从软件仓库中下载各目标软件对应的目标软件安装包。基于启动后的原始初始化容器,在原始开发环境容器中安装各目标软件,从而使得可以在原始开发环境容器中调用各目标软件,进而基于各目标软件完成目标软件开发任务。
在一种可选的实施方式中,基于启动后的原始初始化容器,在原始开发环境容器中安装各目标软件,包括:
启动原始开发环境容器,从原始初始化容器对应的软件仓库中下载各目标软件对应的目标软件安装包;
在原始开发环境容器中安装各目标软件安装包,以在完成目标软件开发任务时调用目标软件。
本申请实施例提供的软件开发方法,启动原始开发环境容器,从原始初始化容器对应的软件仓库中下载各目标软件对应的目标软件安装包,保证了下载得到的各目标软件对应的目标软件安装包的准确性。在原始开发环境容器中安装各目标软件安装包,以在完成目标软件开发任务时调用目标软件,保证了可以在原始开发环境容器中调用各目标软件,进而基于各目标软件完成目标软件开发任务。
在一种可选的实施方式中,基于原始初始化容器和原始开发环境容器,生成目标容器组之后,方法还包括:
控制原始开发环境容器向原始初始化容器发送软件安装成功消息;
原始初始化容器接收到软件安装成功消息后,控制原始初始化容器处于退出运行状态。
本申请实施例提供的软件开发方法,控制原始开发环境容器向原始初始化容器发送软件安装成功消息;原始初始化容器接收到软件安装成功消息后,控制原始初始化容器处于退出运行状态,实现了在原始初始化容器完成工作后,退出运行状态,释放了原始初始化容器运行时占用的资源,节约了运行资源。
在一种可选的实施方式中,方法还包括:
对原始初始化容器的工作状态进行监测;
当监测到原始初始化容器为退出运行状态时,销毁原始初始化容器。
本申请实施例提供的软件开发方法,对原始初始化容器的工作状态进行监测;当监测到原始初始化容器为退出运行状态时,销毁原始初始化容器,从而减少了原始初始化容器占用的资源,进而可以加快目标软件开发任务的完成。
在一种可选的实施方式中,获取完成目标软件开发任务所需的至少一个目标软件之后,方法还包括:
获取各目标软件对应的目标版本;
对应的,基于各目标软件,在AI开发平台创建目标镜像,包括:
基于各目标软件对应的目标版本,在AI开发平台创建目标镜像,目标镜像中包括软件仓库,软件仓库中包括各目标软件对应的各个版本的目标软件安装包;
对应的,基于目标镜像,创建目标软件开发任务对应的目标容器组,包括:
创建第一初始容器组;
基于目标镜像,在第一初始容器组中创建原始初始化容器和原始开发环境容器,原始初始化容器中包括软件仓库;
启动原始初始化容器,以使软件仓库处于可访问状态;
启动原始开发环境容器,从原始初始化容器对应的软件仓库中下载各目标软件对应的目标版本的目标软件安装包;软件仓库中包括各目标软件对应的各个版本的目标软件安装包;
在原始开发环境容器中安装各目标软件安装包,以在完成目标软件开发任务时调用目标软件。
本申请实施例提供的软件开发方法,获取各目标软件对应的目标版本。基于各目标软件对应的目标版本,在AI开发平台创建目标镜像。保证了创建的目标镜像中包括目标版本的目标软件。然后,创建第一初始容器组;基于目标镜像,在第一初始容器组中创建原始初始化容器和原始开发环境容器;启动原始初始化容器,以使软件仓库处于可访问状态;启动原始开发环境容器,从原始初始化容器对应的软件仓库中下载各目标软件对应的目标版本的目标软件安装包,从而保证了下载得到的目标软件安装包的版本是用户需要的目标软件对应的目标版本。在原始开发环境容器中安装各目标软件安装包,以在完成目标软件开发任务时调用目标软件。从而实现了用户可以根据需要选择目标软件的各个版本,进而提高了该方法的普适性和利用率。解决了现有技术中,一个固定版本目标软件并不一定能满足所有用户的需求,不同版本之间的功能会有或大或小的差异,某些算法开发人员可能希望使用特定版本的目标软件的问题。
在一种可选的实施方式中,方法还包括:
接收用户输入的目标软件更新指令,目标软件更新指令用于指示对至少一个目标软件进行更新;
获取各目标软件对应的更新软件安装包;
基于更新软件安装包,更新各目标软件。
本申请实施例提供的软件开发方法,接收用户输入的目标软件更新指令,目标软件更新指令用于指示对至少一个目标软件进行更新;获取各目标软件对应的更新软件安装包;基于更新软件安装包,更新各目标软件,实现了根据用户指令对目标软件进行更新。
在一种可选的实施方式中,基于更新软件安装包,更新各目标软件,包括:
将各更新软件安装包添加至软件仓库,得到更新软件仓库;
基于更新软件仓库,更新目标容器组,以更新目标容器组中的各目标软件。
本申请实施例提供的软件开发方法,将各更新软件安装包添加至软件仓库,得到更新软件仓库,保证了得到的更新软件仓库中包括各目标软件对应的更新软件安装包。基于更新软件仓库,更新目标容器组,以更新目标容器组中的各目标软件,从而实现了对目标软件的更新。
在一种可选的实施方式中,基于更新软件仓库,更新目标容器组,包括:
基于更新软件仓库,创建更新镜像;
基于更新镜像,在目标容器组中创建更新初始化容器和更新开发环境容器;更新初始化容器中包括更新软件仓库;
基于更新初始化容器和更新开发环境容器,更新目标容器组。
本申请实施例提供的软件开发方法,基于更新软件仓库,创建更新镜像,保证了得到的更新镜像中包括更新软件安装包。基于更新镜像,在目标容器组中创建更新初始化容器和更新开发环境容器,保证了创建的更新初始化容器和更新开发环境容器的准确性,基于更新初始化容器和更新开发环境容器,更新目标容器组。从而使得更新后的目标容器组中安装的目标软件为已更新后的目标软件。上述方法,在对目标软件进行更新过程中只是将各更新软件安装包添加至更新软件仓库中,然后基于更新软件仓库创建更新镜像,然后,基于更新镜像,在目标容器组中创建更新初始化容器和更新开发环境容器,从而不需要根据各更新软件安装包更新各个预置镜像。因此,不需要耗费大量精力来对所有预置镜像进行重新生成。解决了现有技术中,由于各更新软件安装包较大,根据各更新软件安装包更新各个预置镜像,导致占用资源较多的问题。
在一种可选的实施方式中,基于更新初始化容器和更新开发环境容器,更新目标容器组,包括:
启动更新初始化容器,以使更新软件仓库处于可访问状态;
启动更新开发环境容器,从更新初始化容器对应的更新软件仓库中下载各目标软件对应的更新软件安装包;
在更新开发环境容器中安装各更新软件安装包,以更新目标容器组中的各目标软件,实现更新目标容器。
本申请实施例提供的软件开发方法,启动更新初始化容器,以使更新软件仓库处于可访问状态;启动更新开发环境容器,从更新初始化容器对应的更新软件仓库中下载各目标软件对应的更新软件安装包,保证了下载得到的更新软件安装包的准确性。在更新开发环境容器中安装各更新软件安装包,以更新目标容器组中的各目标软件,从而实现了对目标软件的更新。上述方法,在对目标软件进行更新过程中,在更新开发环境容器中安装各更新软件安装包,实现了只是对原始开发环境容器进行更新,不需要耗费大量精力来对所有预置镜像进行重新生成。解决了现有技术中,因为每个预置镜像的体积是巨大的,通常一个用于AI算法的预置镜像在20GB以上。对所有预置镜像进行重新生成,过程会更加繁琐。
第二方面,本发明提供了一种软件开发装置,装置包括:
获取模块,用于获取完成目标软件开发任务所需的至少一个目标软件;
第一创建模块,用于基于各目标软件,在AI开发平台创建目标镜像;目标镜像中包括软件仓库,软件仓库中包括各目标软件对应的目标软件安装包;
第二创建模块,用于基于目标镜像,创建目标软件开发任务对应的目标容器组;目标容器组中包括原始初始化容器和原始开发环境容器;
完成模块,用于在目标容器组中,调用目标容器组中的各目标软件完成目标软件开发任务。
本申请实施例提供的软件开发装置,获取完成目标软件开发任务所需的至少一个目标软件;基于各目标软件,在AI开发平台创建目标镜像,保证了创建的目标镜像的准确性,且使得目标镜像中包括各目标软件。基于目标镜像,创建目标软件开发任务对应的目标容器组,从而保证了创建的目标容器中安装了各目标软件。在目标容器组中,调用目标容器组中的各目标软件完成目标软件开发任务,保证了目标软件开发任务的正常完成。上述装置,基于用户所需的各目标软件创建目标镜像,从而保证了目标镜像中不存在用户不需要的软件,避免了用户不需要的软件占用计算机硬件资源。因此,实现了根据用户需求进行目标软件开发,减少了不需要的软件的运行,从而节省硬件资源,保证了目标软件的正常开发。
第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的软件开发方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的软件开发方法。
第五方面,本发明提供了一种计算机程序产品,包括计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的软件开发方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的预置镜像和自定义镜像在创建开发环境时的区别的示意图;
图2是根据本发明实施例的软件开发方法的流程示意图;
图3是根据本发明实施例的另一软件开发方法的流程示意图;
图4是根据本发明实施例的又一软件开发方法的流程示意图;
图5是根据本发明实施例的再一软件开发方法的流程示意图;
图6是根据本发明实施例的软件开发方法的框架示意图;
图7是根据本发明实施例的软件开发方法的步骤时序图;
图8是根据本发明实施例的软件开发装置的结构框图;
图9是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
算法开发人员在使用AI开发平台开发软件时,通常会先创建一个原始开发环境容器用来编写和调试代码。在启动原始开发环境容器时,需要使用镜像。因此,AI开发平台会内置多个用于启动原始开发环境容器的预置镜像,每个预置镜像内预置了对应的AI开发的工具,比如Tensorflow、PyTorch等,同时也内置了其他软件。例如Jupyter软件,其中Jupyter软件是AI算法开发人员常用的一个软件,该软件提供了比较好的可视化与交互式开发体验。原始开发环境容器在启动时,预置的Jupyter软件也同时启动,算法开发人员可通过WEB浏览器访问Jupyter的界面。因此,在AI开发平台的开发环境服务中,集成Jupyter软件对使用该系统的算法开发人员来说,极大的提高开发体验和开发效率。
在相关的技术方案下,原始开发环境容器在启动时,预置镜像内预置的各个软件也同时启动。但是,开发人员并不需要预置镜像内的所有软件。因此,部分软件的运行浪费了计算机的硬件资源,进而可能影响软件的开发。例如,算法开发人员如果使用预置镜像来创建开发环境,每次都会启动Jupyter软件。然而,并非所有的算法开发人员都熟练使用Jupyter,对于那些不使用Jupyter软件的人员来说,白白浪费了运行Jupyter软件所需的计算机硬件资源。现有方案下,并不能实现根据算法开发人员的需求,由用户自主决定是否启动Jupyter软件。
同时,并非所有算法开发人员都使用AI开发平台预置镜像来创建开发环境。预置镜像所包含的工具是固定的且有限的,当系统内预置镜像不能满足算法开发人员的需要时,他们通常会使用自定义的镜像来创建开发环境。在这种情况下,由于镜像是由用户自己提供的,对于AI开发平台来说这是不透明的。AI开发平台无法知道镜像内是否包含了Jupyter软件,是否需要启动Jupyter,同时也无法对Jupyter软件做一些安全方面的配置。
针对预置镜像和自定义镜像在创建开发环境时的区别,参考图1。现有方案下,AI开发平台的每个预置镜像内直接包含了Jupyter软件,这需要提前对预置镜像做一系列处理。在预置镜像内加入Jupyter软件后,Jupyter软件的版本便固定了。当Jupyter软件需要升级或进行一些安全修复时,我们需要重新把所有的预置镜像做一遍处理,然后替换旧的预置镜像。在每个预置镜像内置入Jupyter软件是非常耗时且繁琐的过程,因为每个预置镜像的体积是巨大的,通常一个用于AI算法的镜像在20GB以上。如果这个操作需要在客户现场完成,那整个过程会加繁琐。并且,一个固定版本Jupyter软件并不一定能满足所有用户的需求,不同版本之间的功能会有或大或小的差异,某些算法开发人员可能希望使用特定版本的Jupyter软件。
综上,现有技术方案的缺点主要有以下几点:
1、创建开发环境时,无法灵活的由用户控制是否需要启动相关软件,例如Jupyter软件。
2、不同的算法开发人员无法使用不同版本的相关软件,例如Jupyter软件。
3、AI开发平台预置镜像和用户自定义镜像有区别,自定义镜像通常无法使用Jupyter软件。
4、当Jupyter软件需要升级或是进行安全更新时,需要耗费大量精力来对所有镜像进行重新生成。
基于上述内容,根据用户需求进行软件开发,从而节省硬件资源,保证软件的正常开发,成为了亟待解决的问题。
基于上述内容,本申请实施例提供了一种软件开发。获取完成目标软件开发任务所需的至少一个目标软件;基于各目标软件,在AI开发平台创建目标镜像;基于目标镜像,创建目标软件开发任务对应的目标容器组;在目标容器组中,调用目标容器组中的各目标软件完成目标软件开发任务,实现了基于用户需求进行软件开发,从而节省硬件资源,保证软件的正常开发。
需要说明的是,本申请实施例提供的软件开发的方法,其执行主体可以是软件开发的装置,该软件开发的装置可以通过软件、硬件或者软硬件结合的方式实现成为计算机设备的部分或者全部,其中,该计算机设备可以是服务器或者终端,其中,本申请实施例中的服务器可以为一台服务器,也可以为由多台服务器组成的服务器集群,本申请实施例中的终端可以是智能手机、个人电脑、平板电脑、可穿戴设备以及智能机器人等其他智能硬件设备。下述方法实施例中,均以执行主体是计算机设备为例来进行说明。
根据本发明实施例,提供了一种软件开发方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种软件开发方法,可用于上述的计算机设备,图2是根据本发明实施例的软件开发方法的流程图,如图2所示,该流程包括如下步骤:
步骤S101,获取完成目标软件开发任务所需的至少一个目标软件。
具体地,计算机设备可以接收用户基于输入组件输入的完成目标软件开发任务所需的至少一个目标软件,还可以接收其他设备发送的完成目标软件开发任务所需的至少一个目标软件,本申请实施例对计算机设备获取完成目标软件开发任务所需的至少一个目标软件的方式不做具体限定。
示例性的,目标软件可以是Jupyter软件,也可以是其他软件,本申请实施例对目标软件不做具体限定。
步骤S102,基于各目标软件,在AI开发平台创建目标镜像。
其中,目标镜像中包括软件仓库,软件仓库中包括各目标软件对应的目标软件安装包。示例性的,当开发环境为 Python开发环境时,软件仓库可以是pip软件源,pip是Python的官方包管理工具,它用于安装和管理Python包。
具体地,计算机设备可以根据各目标软件,在目标镜像中创建软件仓库,并在软件仓库中添加其他依赖项,如运行时环境、库文件等。这些依赖项应该是目标软件所需的。然后,在目标镜像中进行配置和设置,包括操作系统、网络设置、环境变量等。这些配置可以与目标软件的要求相匹配,以确保目标镜像能够正确运行。完成目标镜像的配置和设置后,计算机设备可以根据目标镜像的配置和设置,构建包含目标软件和依赖项的镜像文件。
步骤S103,基于目标镜像,创建目标软件开发任务对应的目标容器组。
具体地,在创建完成目标镜像之后,计算机设备可以根据实际需求,在创建目标容器组中创建原始初始化容器和原始开发环境容器,从而根据原始初始化容器和原始开发环境容器,生成目标容器组。
关于该步骤将在下文进行详细介绍。
步骤S104,在目标容器组中,调用目标容器组中的各目标软件完成目标软件开发任务。
具体地,在目标容器组创建完成后,计算机设备可以调用目标容器组中的各目标软件完成目标软件开发任务。
本申请实施例提供的软件开发方法,获取完成目标软件开发任务所需的至少一个目标软件;基于各目标软件,在AI开发平台创建目标镜像,保证了创建的目标镜像的准确性,且使得目标镜像中包括各目标软件。基于目标镜像,创建目标软件开发任务对应的目标容器组,从而保证了创建的目标容器中安装了各目标软件。在目标容器组中,调用目标容器组中的各目标软件完成目标软件开发任务,保证了目标软件开发任务的正常完成。上述方法,基于用户所需的各目标软件创建目标镜像,从而保证了目标镜像中不存在用户不需要的软件,避免了用户不需要的软件占用计算机硬件资源。因此,实现了根据用户需求进行目标软件开发,减少了不需要的软件的运行,从而节省硬件资源,保证了目标软件的正常开发。
在本实施例中提供了一种软件开发方法,可用于上述的计算机设备,图3是根据本发明实施例的软件开发方法的流程图,如图3所示,该流程包括如下步骤:
步骤S201,获取完成目标软件开发任务所需的至少一个目标软件。
关于该步骤请参见图2对步骤S101的介绍,在此不进行赘述。
步骤S202,基于各目标软件,在AI开发平台创建目标镜像。
其中,目标镜像中包括软件仓库,软件仓库中包括各目标软件对应的目标软件安装包。
关于该步骤请参见图2对步骤S102的介绍,在此不进行赘述。
步骤S203,基于目标镜像,创建目标软件开发任务对应的目标容器组。
具体地,目标容器组中包括原始初始化容器和原始开发环境容器;上述步骤S203,可以包括如下步骤:
步骤S2031,创建第一初始容器组。
具体地,计算机设备可以在容器编排平台中创建一个新的容器组,作为第一初始容器组。
步骤S2032,基于目标镜像,在第一初始容器组中创建原始初始化容器和原始开发环境容器。
其中,原始初始化容器中包括软件仓库。
具体地,计算机设备可以使用目标镜像在第一初始容器组中创建原始初始化容器和原始开发环境容器。
其中,原始初始化容器中包括软件仓库以及其他初始化操作。原始开发环境容器将作为开发环境,供安装和运行目标软件。
需要说明的是,原始开发环境容器可以是一个也可以是多个,原始开发环境容器可以是根据实际需求进行创建的。
步骤S2033,在原始开发环境容器中安装各目标软件。
在本申请一种可选的实施方式中,上述步骤S2033,可以包括如下步骤:
步骤a1,启动原始初始化容器,以使软件仓库处于可访问状态。
具体地,计算机设备可以启动原始初始化容器,以使软件仓库处于可访问状态。
步骤a2,基于启动后的原始初始化容器,在原始开发环境容器中安装各目标软件。
在本申请一种可选的实施方式中,上述步骤a2,可以包括如下步骤:
步骤a21,启动原始开发环境容器,从原始初始化容器对应的软件仓库中下载各目标软件对应的目标软件安装包。
具体地,计算机设备可以启动原始开发环境容器,利用预设软件工具从原始初始化容器对应的软件仓库中下载各目标软件对应的目标软件安装包。
示例性的,当开发环境为Python开发环境时,软件仓库可以是pip软件源,pip是Python的官方包管理工具,它用于安装和管理Python包。预设软件工具可以是pip工具。
步骤a22,在原始开发环境容器中安装各目标软件安装包,以在完成目标软件开发任务时调用目标软件。
具体地,在下载各目标软件安装包之后,计算机设备可以在原始开发环境容器中安装各目标软件安装包,从而使得在完成目标软件开发任务时可以调用目标软件。
需要说明的是,原始开发环境容器可以是一个也可以是多个,当原始开发环境容器为多个时,各目标软件可以安装在不同的原始开发环境容器中。
步骤S2034,基于原始初始化容器和原始开发环境容器,生成目标容器组。
在创建原始初始化容器和原始开发环境容器之后,计算机设备基于原始初始化容器和原始开发环境容器,生成目标容器组。
在本申请一种可选的实施方式中,步骤S2024“基于原始初始化容器和原始开发环境容器,生成目标容器组”之后还可以包括如下步骤:
步骤S2035,控制原始开发环境容器向原始初始化容器发送软件安装成功消息。
具体地,在原始开发环境容器中安装各目标软件安装包之后,计算机设备可以控制原始开发环境容器向原始初始化容器发送软件安装成功消息。
步骤S2036,原始初始化容器接收到软件安装成功消息后,控制原始初始化容器处于退出运行状态。
具体地,原始初始化容器接收到软件安装成功消息后,计算机设备确定原始初始化容器完成任务,因此控制原始初始化容器处于退出运行状态,从而可以节省原始初始化容器运行所占用的资源。
步骤S2037,对原始初始化容器的工作状态进行监测。
具体地,计算机设备可以基于与原始初始化容器之间的通信连接,对原始初始化容器的工作状态进行监测。
步骤S2038,当监测到原始初始化容器为退出运行状态时,销毁原始初始化容器。
具体地,当计算机设备监测到原始初始化容器为退出运行状态时,销毁原始初始化容器。
步骤S204,在目标容器组中,调用目标容器组中的各目标软件完成目标软件开发任务。
关于该步骤请参见图2对步骤S104的介绍,在此不进行赘述。
本申请实施例提供的软件开发方法,创建第一初始容器组,基于目标镜像,在第一初始容器组中创建原始初始化容器和原始开发环境容器,保证了创建得到的原始初始化容器和原始开发环境容器的准确性,且保证了创建的原始初始化容器中包括软件仓库,进而可以保证在原始开发环境容器中安装目标软件。然后,启动原始初始化容器,以使软件仓库处于可访问状态,从而保证可以从软件仓库中下载各目标软件对应的目标软件安装包。然后,启动原始开发环境容器,从原始初始化容器对应的软件仓库中下载各目标软件对应的目标软件安装包,保证了下载得到的各目标软件对应的目标软件安装包的准确性。在原始开发环境容器中安装各目标软件安装包,以在完成目标软件开发任务时调用目标软件,保证了可以在原始开发环境容器中调用各目标软件,进而基于各目标软件完成目标软件开发任务。基于原始初始化容器和原始开发环境容器,生成目标容器组,从而保证了生成的目标容器组的准确性,且使得可以在原始开发环境容器中正常调用目标软件,解决了自定义镜像通常无法使用目标软件的问题,进而可以保证基于目标容器组完成目标软件开发任务。
此外,基于原始初始化容器和原始开发环境容器,生成目标容器组之后,控制原始开发环境容器向原始初始化容器发送软件安装成功消息;原始初始化容器接收到软件安装成功消息后,控制原始初始化容器处于退出运行状态,实现了在原始初始化容器完成工作后,退出运行状态,释放了原始初始化容器运行时占用的资源,节约了运行资源。对原始初始化容器的工作状态进行监测;当监测到原始初始化容器为退出运行状态时,销毁原始初始化容器,从而减少了原始初始化容器占用的资源,进而可以加快目标软件开发任务的完成。
在本实施例中提供了一种软件开发方法,可用于上述的计算机设备,图4是根据本发明实施例的软件开发方法的流程图,如图4所示,该流程包括如下步骤:
步骤S301,获取完成目标软件开发任务所需的至少一个目标软件。
关于该步骤请参见上述图3中的步骤S201,在此不进行赘述。
步骤S302,基于各目标软件,在AI开发平台创建目标镜像。
其中,目标镜像中包括软件仓库,软件仓库中包括各目标软件对应的目标软件安装包。
关于该步骤请参见上述图3中的步骤S202,在此不进行赘述。
步骤S303,基于目标镜像,创建目标软件开发任务对应的目标容器组。
关于该步骤请参见上述图3中的步骤S203,在此不进行赘述。
步骤S304,在目标容器组中,调用目标容器组中的各目标软件完成目标软件开发任务。
关于该步骤请参见上述图3中的步骤S204,在此不进行赘述。
步骤S305,接收用户输入的目标软件更新指令。
其中,目标软件更新指令用于指示对至少一个目标软件进行更新。
具体地,计算机设备可以接收用户基于输入组件传输的目标软件更新指令。
步骤S306,获取各目标软件对应的更新软件安装包。
具体地,计算机设备可以接收用户输入的各目标软件对应的更新软件安装包,也可以接收其他设备发送的各目标软件对应的更新软件安装包,还可以在存储空间中查询各目标软件对应的更新软件安装包。本申请实施例对计算机设备获取各目标软件对应的更新软件安装包的方式不做具体限定。
步骤S307,基于更新软件安装包,更新各目标软件。
具体地,上述步骤S307,可以包括如下步骤:
步骤S3071,将各更新软件安装包添加至软件仓库,得到更新软件仓库。
具体地,计算机设备可以将各更新软件安装包添加至软件仓库,得到更新软件仓库。
步骤S3072,基于更新软件仓库,更新目标容器组,以更新目标容器组中的各目标软件。
在本申请一种可选的实施方式中,上述步骤S3072,还可以包括如下步骤:
步骤b1,基于更新软件仓库,创建更新镜像。
具体地,计算机设备可以根据更新软件仓库,创建更新镜像。其中,创建更新镜像的过程可以参考上述实施方式中创建目标镜像的过程,在此不进行赘述。
步骤b2,基于更新镜像,在目标容器组中创建更新初始化容器和更新开发环境容器。
其中,更新初始化容器中包括更新软件仓库。
具体地,计算机设备可以基于更新镜像,在目标容器组中创建更新初始化容器和更新开发环境容器。
其中,需要说明的是,原始开发环境容器可以是一个也可以是多个。
在一种可选的实施方式中,当原始开发环境容器为多个时,各目标软件可以安装在不同的原始开发环境容器中。计算机设备可以首先对目标软件更新指令进行读取,确定目标软件更新指令中包括的至少一个目标软件,得到至少一个待更新目标软件。然后,计算机设备根据各待更新目标软件,在多个原始开发环境容器中确定各待更新目标软件对应的待更新原始开发环境容器,然后,根据更新镜像,在目标容器组中创建更新初始化容器和待更新原始开发环境容器对应的更新开发环境容器。
示例性的,假设目标软件分别为1、2、3、4、5,待更新目标软件分别为1和2,原始开发环境容器为4个,分别为A、B、C、D,且已知1安装在A中,2安装在C中。则计算机设备首先根据待更新目标软件1和2,确定待更新原始开发环境容器A和C。然后,计算机设备根据更新镜像,在目标容器组中创建更新初始化容器和待更新原始开发环境容器A对应的更新开发环境容器A1和待更新原始开发环境容器B对应的更新开发环境容器B1
步骤b3,基于更新初始化容器和更新开发环境容器,更新目标容器组。
在本申请一种可选的实施方式中,上述步骤b3,可以包括如下步骤
步骤b31,启动更新初始化容器,以使更新软件仓库处于可访问状态。
具体地,计算机设备启动更新初始化容器,以使更新软件仓库处于可访问状态。
步骤b32,启动更新开发环境容器,从更新初始化容器对应的更新软件仓库中下载各目标软件对应的更新软件安装包。
具体地,计算机设备启动更新开发环境容器,从更新初始化容器对应的更新软件仓库中下载各目标软件对应的更新软件安装包。
步骤b33,在更新开发环境容器中安装各更新软件安装包,以更新目标容器组中的各目标软件,实现更新目标容器。
具体地,计算机设备在更新开发环境容器中安装各更新软件安装包,以更新目标容器组中的各目标软件,实现更新目标容器。
本申请实施例提供的软件开发方法,接收用户输入的目标软件更新指令,目标软件更新指令用于指示对至少一个目标软件进行更新;获取各目标软件对应的更新软件安装包。将各更新软件安装包添加至软件仓库,得到更新软件仓库,保证了得到的更新软件仓库中包括各目标软件对应的更新软件安装包。基于更新软件仓库,创建更新镜像,保证了得到的更新镜像中包括更新软件安装包。
然后,基于更新镜像,在目标容器组中创建更新初始化容器和更新开发环境容器,保证了创建的更新初始化容器和更新开发环境容器的准确性,启动更新初始化容器,以使更新软件仓库处于可访问状态;启动更新开发环境容器,从更新初始化容器对应的更新软件仓库中下载各目标软件对应的更新软件安装包,保证了下载得到的更新软件安装包的准确性。在更新开发环境容器中安装各更新软件安装包,以更新目标容器组中的各目标软件,从而实现了对目标软件的更新。
上述方法,在对目标软件进行更新过程中只是将各更新软件安装包添加至更新软件仓库中,然后基于更新软件仓库创建更新镜像,然后,基于更新镜像,在目标容器组中创建更新初始化容器和更新开发环境容器,从而不需要根据各更新软件安装包更新各个预置镜像。因此,不需要耗费大量精力来对所有预置镜像进行重新生成。解决了现有技术中,由于各更新软件安装包较大,根据各更新软件安装包更新各个预置镜像,导致占用资源较多的问题。此外,在对目标软件进行更新过程中,在更新开发环境容器中安装各更新软件安装包,实现了只是对原始开发环境容器进行更新,不需要耗费大量精力来对所有预置镜像进行重新生成。解决了现有技术中,因为每个预置镜像的体积是巨大的,通常一个用于AI算法的预置镜像在20GB以上。对所有预置镜像进行重新生成,过程会更加繁琐。
在本实施例中提供了一种软件开发方法,可用于上述的计算机设备,图5是根据本发明实施例的软件开发方法的流程图,如图5所示,该流程包括如下步骤:
步骤S401,获取完成目标软件开发任务所需的至少一个目标软件。
关于该步骤请参见图4对步骤S301的介绍,在此不进行赘述。
步骤S402,获取各目标软件对应的目标版本。
具体地,计算机设备可以接收用户基于输入组件输入的各目标软件对应的目标版本,还可以接收其他设备发送的各目标软件对应的目标版本,本申请实施例对计算机设备获取各目标软件对应的目标版本的方式不做具体限定。
步骤S403,基于各所述目标软件对应的目标版本,在AI开发平台创建目标镜像。
所述目标镜像中包括所述软件仓库,所述软件仓库中包括各所述目标软件对应的各个版本的所述目标软件安装包。
其中,目标镜像中包括软件仓库,软件仓库中包括各目标软件对应的各个版本的目标软件安装包。
具体地,计算机设备可以根据各目标软件对应的各个版本,在目标镜像中创建软件仓库,并在软件仓库中添加其他依赖项,如运行时环境、库文件等。这些依赖项应该是目标软件所需的。然后,在目标镜像中进行配置和设置,包括操作系统、网络设置、环境变量等。这些配置可以与目标软件的要求相匹配,以确保目标镜像能够正确运行。完成目标镜像的配置和设置后,计算机设备可以根据目标镜像的配置和设置,构建包含目标软件和依赖项的镜像文件。
步骤S404,创建第一初始容器组。
具体地,计算机设备可以在容器编排平台中创建一个新的容器组,作为第一初始容器组。
步骤S405,基于目标镜像,在第一初始容器组中创建原始初始化容器和原始开发环境容器。
其中,所述原始初始化容器中包括所述软件仓库。
具体地,计算机设备可以使用目标镜像在第一初始容器组中创建原始初始化容器和原始开发环境容器。
其中,原始初始化容器中包括软件仓库以及其他初始化操作。原始开发环境容器将作为开发环境,供安装和运行目标软件。
需要说明的是,原始开发环境容器可以是一个也可以是多个,原始开发环境容器可以是根据实际需求进行创建的。
步骤S406,启动原始初始化容器,以使软件仓库处于可访问状态。
具体地,计算机设备可以启动原始初始化容器,以使软件仓库处于可访问状态。
步骤S407,启动原始开发环境容器,从原始初始化容器对应的软件仓库中下载各目标软件对应的目标版本的目标软件安装包。
其中,软件仓库中包括各目标软件对应的各个版本的目标软件安装包。
具体地,计算机设备可以启动原始开发环境容器,利用预设软件工具从原始初始化容器对应的软件仓库中下载各目标软件对应的目标版本的目标软件安装包。
示例性的,当开发环境为Python开发环境时,软件仓库可以是pip软件源,pip是Python的官方包管理工具,它用于安装和管理Python包。预设软件工具可以是pip工具。
步骤S408,在原始开发环境容器中安装各目标软件安装包,以在完成目标软件开发任务时调用目标软件。
具体地,在下载完各目标软件对应的目标版本的目标软件安装包之后,计算机设备可以在原始开发环境容器中安装各目标软件对应的目标版本的目标软件安装包,从而使得在完成目标软件开发任务时可以调用目标版本的目标软件。
步骤S409,在目标容器组中,调用目标容器组中的各目标软件完成目标软件开发任务。
具体地,关于该步骤请参见图4对步骤S204的介绍,在此不进行赘述。
本申请实施例提供的软件开发方法,获取各目标软件对应的目标版本。基于各目标软件对应的目标版本,在AI开发平台创建目标镜像。保证了创建的目标镜像中包括目标版本的目标软件。然后,创建第一初始容器组;基于目标镜像,在第一初始容器组中创建原始初始化容器和原始开发环境容器;启动原始初始化容器,以使软件仓库处于可访问状态;启动原始开发环境容器,从原始初始化容器对应的软件仓库中下载各目标软件对应的目标版本的目标软件安装包,从而保证了下载得到的目标软件安装包的版本是用户需要的目标软件对应的目标版本。在原始开发环境容器中安装各目标软件安装包,以在完成目标软件开发任务时调用目标软件。从而实现了用户可以根据需要选择目标软件的各个版本,进而提高了该方法的普适性和利用率。解决了现有技术中,一个固定版本目标软件并不一定能满足所有用户的需求,不同版本之间的功能会有或大或小的差异,某些算法开发人员可能希望使用特定版本的目标软件的问题。
示例性的,为了更好地介绍本申请实施例介绍的软件开发方法,本申请实施例提供了一种实施方式。如图6所示,为该软件开发方法的框架图,图7为该软件开发方法的步骤时序图。具体地:
S1、计算机设备可以创建一个用于启动初始化容器的镜像,该镜像包含了一个软件仓库,并且软件仓库内含有各个版本完整的目标软件。
S2、用户使用AI开发平台创建开发环境,并输入指令,该指令中包括用户选择是否使用目标软件,以及使用哪个版本的目标软件。
S3、计算机设备基于AI开发平台在接收到步骤(2)的指令后,判断是否需要执行与目标软件相关的步骤。当需要执行与目标软件相关的步骤时,执行步骤S4。
S4、计算机设备基于AI开发平台将步骤(2)的指令进行重新封装,将启动初始化容器以及在开发环境容器内安装启动目标软件的动作加入到指令中,并将指令发送给底层K8s。
S5、计算机设备基于K8s接收步骤(4)的指令后,创建一个容器组,并在该容器组内创建初始化容器和开发环境容器。依据K8s的规则,初始化容器会先于开发环境容器启动。
S6、计算机设备启动初始化容器,初始化容器启动成功后,其内部的pip源处于可访问状态。
S7、计算机设备启动开发环境容器启动,使用pip工具从初始化容器中的pip源下载对应版本的完整目标软件。目标软件下载成功后,计算机设备控制计算机设备启动向初始化容器发送下载成功的指令。
S8、初始化容器接收到步骤S7的指令后,计算机设备控制初始化容器执行退出,并在初始化容器退出后销毁初始化容器。此后初始化容器将不再存在,释放出计算机硬件资源。
S9、计算机设备启动开发环境容器,同时启动目标软件。
S10、计算机设备可以通过AI开发平台界面访问目标软件。
在本实施例中还提供了一种软件开发装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种软件开发装置,如图8所示,包括:
获取模块501,用于获取完成目标软件开发任务所需的至少一个目标软件;
第一创建模块502,用于基于各目标软件,在AI开发平台创建目标镜像;目标镜像中包括软件仓库,软件仓库中包括各目标软件对应的目标软件安装包;
第二创建模块503,用于基于目标镜像,创建目标软件开发任务对应的目标容器组;目标容器组中包括原始初始化容器和原始开发环境容器;
完成模块504,用于在目标容器组中,调用目标容器组中的各目标软件完成目标软件开发任务。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的软件开发装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述图8所示的软件开发装置。
请参阅图9,图9是本发明可选实施例提供的一种计算机设备的结构示意图,如图9所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括输入装置30和输出装置40。处理器10、存储器20、输入装置30和输出装置20可以通过总线或者其他方式连接,图9中以通过总线连接为例。
输入装置30可接收输入的数字或字符信息,以及产生与该计算机设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等。输出装置40可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。上述显示设备包括但不限于液晶显示器,发光二极管,显示器和等离子体显示器。在一些可选的实施方式中,显示设备可以是触摸屏。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (11)

1.一种软件开发方法,其特征在于,所述方法包括:
获取完成目标软件开发任务所需的至少一个目标软件;
基于各所述目标软件,在AI开发平台创建目标镜像;所述目标镜像中包括软件仓库,所述软件仓库中包括各所述目标软件对应的目标软件安装包;
基于所述目标镜像,创建所述目标软件开发任务对应的目标容器组;其中,所述目标容器组中包括原始初始化容器和原始开发环境容器;所述基于所述目标镜像,创建所述目标软件开发任务对应的目标容器组,包括:创建第一初始容器组;基于所述目标镜像,在所述第一初始容器组中创建所述原始初始化容器和所述原始开发环境容器,所述原始初始化容器中包括所述软件仓库;在所述原始开发环境容器中安装各所述目标软件;基于所述原始初始化容器和所述原始开发环境容器,生成所述目标容器组;
在所述目标容器组中,调用所述目标容器组中的各所述目标软件完成所述目标软件开发任务;
接收用户输入的目标软件更新指令,所述目标软件更新指令用于指示对至少一个所述目标软件进行更新;
获取各所述目标软件对应的更新软件安装包;
基于所述更新软件安装包,更新各所述目标软件;
其中,所述基于所述更新软件安装包,更新各所述目标软件,包括:
将各所述更新软件安装包添加至所述软件仓库,得到更新软件仓库;
基于所述更新软件仓库,更新所述目标容器组,以更新所述目标容器组中的各所述目标软件;
其中,所述基于所述更新软件仓库,更新所述目标容器组,包括:
基于所述更新软件仓库,创建更新镜像;
基于所述更新镜像,在所述目标容器组中创建更新初始化容器和更新开发环境容器;所述更新初始化容器中包括所述更新软件仓库;
基于所述更新初始化容器和更新开发环境容器,更新所述目标容器组。
2.根据权利要求1所述的方法,其特征在于,所述在所述原始开发环境容器中安装各所述目标软件,包括:
启动所述原始初始化容器,以使所述软件仓库处于可访问状态;
基于启动后的所述原始初始化容器,在所述原始开发环境容器中安装各所述目标软件。
3.根据权利要求2所述的方法,其特征在于,所述基于启动后的所述原始初始化容器,在所述原始开发环境容器中安装各所述目标软件,包括:
启动所述原始开发环境容器,从所述原始初始化容器对应的所述软件仓库中下载各所述目标软件对应的所述目标软件安装包;
在所述原始开发环境容器中安装各所述目标软件安装包,以在完成目标软件开发任务时调用所述目标软件。
4.根据权利要求3所述的方法,其特征在于,所述基于所述原始初始化容器和所述原始开发环境容器,生成所述目标容器组之后,所述方法还包括:
控制所述原始开发环境容器向所述原始初始化容器发送软件安装成功消息;
所述原始初始化容器接收到所述软件安装成功消息后,控制所述原始初始化容器处于退出运行状态。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
对所述原始初始化容器的工作状态进行监测;
当监测到所述原始初始化容器为退出运行状态时,销毁所述原始初始化容器。
6.根据权利要求5所述的方法,其特征在于,所述获取完成目标软件开发任务所需的至少一个目标软件之后,所述方法还包括:
获取各所述目标软件对应的目标版本;
对应的,基于各所述目标软件,在AI开发平台创建目标镜像,包括:
基于各所述目标软件对应的目标版本,在AI开发平台创建目标镜像,所述目标镜像中包括所述软件仓库,所述软件仓库中包括各所述目标软件对应的各个版本的所述目标软件安装包;
对应的,基于所述目标镜像,创建所述目标软件开发任务对应的目标容器组,包括:
创建所述第一初始容器组;
基于所述目标镜像,在所述第一初始容器组中创建所述原始初始化容器和所述原始开发环境容器,所述原始初始化容器中包括所述软件仓库;
启动所述原始初始化容器,以使所述软件仓库处于可访问状态;
启动所述原始开发环境容器,从所述原始初始化容器对应的所述软件仓库中下载各所述目标软件对应的所述目标版本的目标软件安装包;所述软件仓库中包括各所述目标软件对应的各个版本的所述目标软件安装包;
在所述原始开发环境容器中安装各所述目标软件安装包,以在完成目标软件开发任务时调用所述目标软件。
7.根据权利要求1所述的方法,其特征在于,所述基于所述更新初始化容器和更新开发环境容器,更新所述目标容器组,包括:
启动所述更新初始化容器,以使所述更新软件仓库处于可访问状态;
启动所述更新开发环境容器,从所述更新初始化容器对应的所述更新软件仓库中下载各所述目标软件对应的所述更新软件安装包;
在所述更新开发环境容器中安装各所述更新软件安装包,以更新所述目标容器组中的各所述目标软件,实现更新所述目标容器。
8.一种软件开发装置,其特征在于,所述装置包括:
获取模块,用于获取完成目标软件开发任务所需的至少一个目标软件;
第一创建模块,用于基于各所述目标软件,在AI开发平台创建目标镜像;所述目标镜像中包括软件仓库,所述软件仓库中包括各所述目标软件对应的目标软件安装包;
第二创建模块,用于基于所述目标镜像,创建所述目标软件开发任务对应的目标容器组;其中,所述目标容器组中包括原始初始化容器和原始开发环境容器;所述基于所述目标镜像,创建所述目标软件开发任务对应的目标容器组,包括:创建第一初始容器组;基于所述目标镜像,在所述第一初始容器组中创建所述原始初始化容器和所述原始开发环境容器,所述原始初始化容器中包括所述软件仓库;在所述原始开发环境容器中安装各所述目标软件;基于所述原始初始化容器和所述原始开发环境容器,生成所述目标容器组;
完成模块,用于在所述目标容器组中,调用所述目标容器组中的各所述目标软件完成所述目标软件开发任务;接收用户输入的目标软件更新指令,所述目标软件更新指令用于指示对至少一个所述目标软件进行更新;获取各所述目标软件对应的更新软件安装包;基于所述更新软件安装包,更新各所述目标软件;其中,所述基于所述更新软件安装包,更新各所述目标软件,包括:将各所述更新软件安装包添加至所述软件仓库,得到更新软件仓库;基于所述更新软件仓库,更新所述目标容器组,以更新所述目标容器组中的各所述目标软件;
其中,所述基于所述更新软件仓库,更新所述目标容器组,包括:基于所述更新软件仓库,创建更新镜像;基于所述更新镜像,在所述目标容器组中创建更新初始化容器和更新开发环境容器;所述更新初始化容器中包括所述更新软件仓库;基于所述更新初始化容器和更新开发环境容器,更新所述目标容器组。
9.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至7中任一项所述的软件开发方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的软件开发方法。
11.一种计算机程序产品,其特征在于,包括计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的软件开发方法。
CN202410347857.4A 2024-03-26 2024-03-26 软件开发方法、装置、计算机设备、存储介质及程序产品 Active CN117950646B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410347857.4A CN117950646B (zh) 2024-03-26 2024-03-26 软件开发方法、装置、计算机设备、存储介质及程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410347857.4A CN117950646B (zh) 2024-03-26 2024-03-26 软件开发方法、装置、计算机设备、存储介质及程序产品

Publications (2)

Publication Number Publication Date
CN117950646A CN117950646A (zh) 2024-04-30
CN117950646B true CN117950646B (zh) 2024-06-07

Family

ID=90803338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410347857.4A Active CN117950646B (zh) 2024-03-26 2024-03-26 软件开发方法、装置、计算机设备、存储介质及程序产品

Country Status (1)

Country Link
CN (1) CN117950646B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112650478A (zh) * 2021-01-04 2021-04-13 中车青岛四方车辆研究所有限公司 一种嵌入式软件开发平台动态构建方法、系统及设备
CN117149220A (zh) * 2022-05-23 2023-12-01 广州视臻信息科技有限公司 资源更新方法、电子设备及系统
CN117311784A (zh) * 2023-09-12 2023-12-29 武汉光庭信息技术股份有限公司 Ai算法容器可视化制作方法、系统、介质及设备
CN117555563A (zh) * 2023-11-28 2024-02-13 广州鼎甲计算机科技有限公司 平台镜像的构建方法、装置、计算机设备和储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10216509B2 (en) * 2016-03-18 2019-02-26 TUPL, Inc. Continuous and automatic application development and deployment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112650478A (zh) * 2021-01-04 2021-04-13 中车青岛四方车辆研究所有限公司 一种嵌入式软件开发平台动态构建方法、系统及设备
CN117149220A (zh) * 2022-05-23 2023-12-01 广州视臻信息科技有限公司 资源更新方法、电子设备及系统
CN117311784A (zh) * 2023-09-12 2023-12-29 武汉光庭信息技术股份有限公司 Ai算法容器可视化制作方法、系统、介质及设备
CN117555563A (zh) * 2023-11-28 2024-02-13 广州鼎甲计算机科技有限公司 平台镜像的构建方法、装置、计算机设备和储介质

Also Published As

Publication number Publication date
CN117950646A (zh) 2024-04-30

Similar Documents

Publication Publication Date Title
US10768994B2 (en) Method and system for modeling and analyzing computing resource requirements of software applications in a shared and distributed computing environment
US10191733B2 (en) Software change process orchestration in a runtime environment
CN108733553B (zh) 基于docker的测试装置的配置方法、装置和系统
CN111580926A (zh) 模型发布方法、模型部署方法、装置、设备及存储介质
CN111596928B (zh) 一种应用控制方法、装置及电子设备
CN104699503A (zh) 一种替换安卓系统中函数的执行逻辑的方法及装置
CN115061717A (zh) 应用管理方法、应用订阅方法及相关设备
CN109634659A (zh) 一种对bmc进行控制的方法、装置、设备以及存储介质
US9329897B2 (en) Use of dynamic profiles for creating and using a distributed computing environment
CN117075930B (zh) 一种计算框架管理系统
CN108958873B (zh) 状态栏沉浸式效果的配置方法、装置、介质和计算机设备
CN117950646B (zh) 软件开发方法、装置、计算机设备、存储介质及程序产品
CN106775608B (zh) 独立系统进程的实现方法和装置
CN115729679A (zh) 任务处理方法及装置、计算机可读存储介质、电子设备
CN115509531A (zh) 基于前端技术的微前端实现方法、装置、终端及存储介质
CN115202712A (zh) 应用管理方法、应用订阅方法及相关设备
KR20070061098A (ko) 임베디드 리눅스 커널 및 응용 프로그램의 통합 설정을위한 웹 기반의 개발환경 제공 시스템 및 방법
KR20070060448A (ko) 2단계 부트로더를 이용한 시스템 업그레이드 장치 및 방법
CN113821219A (zh) 一种实现应用程序容器化的方法及系统
CN112764729A (zh) 应用软件开发方法、装置、计算机设备及可读存储介质
WO2001093021A2 (en) A virtual system configurator for client systems
US20240004673A1 (en) Processing method and processing device
CN111813431B (zh) 一种软件升级方法、智能电视及存储介质
CN111832735B (zh) 基于模板来执行机器学习过程的方法和系统
US20240168732A1 (en) Method for generating driver package, method for deploying driver, electronic device, and computer readable storage medium

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