CN116301923A - 软件部署方法、装置、电子设备和存储介质 - Google Patents
软件部署方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN116301923A CN116301923A CN202310371479.9A CN202310371479A CN116301923A CN 116301923 A CN116301923 A CN 116301923A CN 202310371479 A CN202310371479 A CN 202310371479A CN 116301923 A CN116301923 A CN 116301923A
- Authority
- CN
- China
- Prior art keywords
- deployment
- information
- deployment package
- deployed
- component
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3604—Analysis of software for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本公开提供了一种软件部署方法、装置、设备、存储介质以及程序产品,涉及计算机技术领域,尤其涉及芯片技术领域。具体实现方案为:软件部署方法包括:响应于接收到的软件部署请求,确定软件的运行环境信息和组件信息;根据运行环境信息,从多个预设异构系统中确定目标异构系统;在目标异构系统中,基于组件信息,生成软件的部署包;以及在确定待部署设备满足部署条件的情况下,在待部署设备上部署部署包。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及芯片技术领域。
背景技术
在目标产品的验证性测试(Proof of Concept,POC)中,会在用户的终端设备中部署目标产品,并完成产品交付。
常见的POC过程是按文档手动执行或为不同的模型分别开发脚本,以生成用于部署在用户终端设备上的目标产品。由于需要手动操作和缺少通用的部署方案,部署效率低下。
发明内容
本公开提供了一种软件部署方法、装置、设备、存储介质以及程序产品。
根据本公开的一方面,提供了一种软件部署方法,包括:响应于接收到的软件部署请求,确定软件的运行环境信息和组件信息;根据运行环境信息,从多个预设异构系统中确定目标异构系统;在目标异构系统中,基于组件信息,生成软件的部署包;以及在确定待部署设备满足部署条件的情况下,在待部署设备上部署部署包。
根据本公开的另一方面,提供了一种软件部署装置,包括:第一确定模块,用于响应于接收到的软件部署请求,确定软件的运行环境信息和组件信息;第二确定模块,用于据运行环境信息,从多个预设异构系统中确定目标异构系统;生成模块,用于在目标异构系统中,基于组件信息,生成软件的部署包;以及部署模块,用于在确定待部署设备满足部署条件的情况下,在待部署设备上部署部署包。
本公开的另一个方面提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开实施例所示的方法。
根据本公开实施例的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开实施例所示的方法。
根据本公开实施例的另一方面,提供了一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现本公开实施例所示方法的步骤。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1示意性示出了根据本公开的实施例的软件部署方法的流程图;
图2示意性示出了根据本公开的实施例的软件部署方法的应用场景;
图3A示意性示出了根据本公开的实施例的生成部署包的示意图;
图3B示意性示出了根据本公开的实施例的预设打包格式的示意图;
图4A示意性示出了根据本公开的实施例的部署部署包的流程图;
图4B示意性示出了根据本公开的实施例的合并部署包的流程图;
图5示意性示出了根据本公开实施例的软件部署装置的框图;
图6示意性示出了根据本公开另一实施例的软件部署装置的框图;以及
图7示意性示出了可以用来实施本公开的实施例的示例电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本公开提供了一种软件部署方法,包括:响应于接收到的软件部署请求,确定软件的运行环境信息和组件信息;根据运行环境信息,从多个预设异构系统中确定目标异构系统;在目标异构系统中,基于组件信息,生成软件的部署包;以及在确定待部署设备满足部署条件的情况下,在待部署设备上部署部署包。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
以下将结合图1对本公开提供的软件部署方法进行描述。
图1示意性示出了根据本公开的实施例的软件部署方法的流程图。
如图1所示,该软件部署方法100包括操作S 110至操作S 1 40。接下来将参考图1来描述根据本公开实施例的软件部署方法。
在操作S110,响应于接收到的软件部署请求,确定软件的运行环境信息和组件信息。
根据本公开的实施例,软件部署请求可以是由客户端产生的。例如,操作人员可以在客户端上通过命令行交互或浏览器交付的方式发送软件部署请求。客户端可以安装在待部署设备上,也可以位于不同于待部署设备的电子设备上。
根据本公开的实施例,软件为POC阶段部署在待部署设备上的目标产品。软件的运行环境信息可以包括待部署设备为软件提供的运行环境,软件的组件信息可以包括目标产品的多种功能模块。
例如,根据待部署设备的中央处理器(Central Processing Unit,CPU)和图形处理器(Graphics Processing Unit,GPU),可以确定软件的运行环境信息。根据目标产品的多种功能模块和待部署设备中用于运行功能模块的驱动,可以确定软件的组件信息。
然后,在操作S 120,根据运行环境信息,从多个预设异构系统中确定目标异构系统。
根据本公开的实施例,根据待部署设备的CPU和GPU信息,可以确定待部署设备的异构系统。多个预设异构系统可以为后端预先提供的多个虚拟异构环境,例如,多个预设异构系统可以支持多种指令集系统的架构(如x8664、arm64和mips等)、多种版本操作系统环境和多种编译基础环境。通过多个虚拟异构环境可以模拟不同待部署设备的异构系统。
根据待部署设备的异构系统可以从多个虚拟异构环境中确定目标异构环境,通过目标异构环境模拟待部署设备的异构系统。然后,在操作S 130,在目标异构系统中,基于组件信息,生成软件的部署包。
根据本公开的实施例,在后端提供的目标异构环境中,基于组件信息,编译软件的多种功能模块,使得多种功能模块与待部署设备的异构系统适配。对多种功能模块进行打包,可以得到软件的部署包,部署包包括与待部署设备的异构系统适配的多种功能模块。
然后,在操作S 140,在确定待部署设备满足部署条件的情况下,在待部署设备上部署部署包。
根据本公开的实施例,在待部署设备上部署部署包之前,可以对待部署设备的运行条件进行检测。在确定待部署设备的运行条件满足部署包所需的运行条件的情况下,认为待部署设备满足部署条件。例如,可以对待部署设备的运行功能和运行性能进行检测,确定待部署设备的多项功能是否可以正常运行,以及确定待部署设备的运行性能是否满足为部署包的运行要求。
根据本公开的实施例,基于与待部署设备相关的多种属性信息,通过异构系统,可以生成与待部署设备的异构系统适配的部署包。利用多种预设异构系统,还可以生成与不同异构系统适配的部署包,提高部署包生成过程的通用性。
以下将结合图2对本公开提供的软件部署方法进行描述。
图2示意性示出了根据本公开的实施例的软件部署方法的应用场景。
如图2所示,应用场景200可以包括操作平台210、异构交付平台220、数据库230、文件系统240和流水线队列250。
根据本公开的实施例,操作平台210可以为前端系统,异构交付平台220、数据库230、文件系统240和流水线队列250可以为后端系统。应用场景200涉及的前端系统和后端系统可以基于客户/服务器(Client/Server,C/S)模式和浏览器/服务器(Browser/Server,B/S)模式实现。
例如,操作平台210可以为客户端,操作人员在操作平台210上进行操作,以产生软件部署请求。操作系统平台210包括第一操作平台211和第二操作平台212。第一操作平台211和第二操作平台212可以为基于不同操作系统运行的操作平台。例如,第一操作平台211可以为基于Windows操作系统运行的操作平台,第二操作平台212可以为基于Linux或MacOS操作系统运行的操作平台。
本公开提供的软件部署方法可以适配基于不同操作系统运行的操作平台,实现跨平台运行。例如,在B/S模式中,可以基于浏览器交互的方式实现跨平台运行。在C/S模式中,可以基于跨平台语言的方式实现跨平台运行。
例如,异构交付平台220包括服务层221、深度学习框架包装层222、软件栈223、操作系统224和异构硬件225。
服务层221可以为操作平台210提供多种服务层接口。例如,查询接口、检索接口、下载接口、更新接口、生成接口和报表接口。深度学习框架包装层222用于处理多种深度学习模型。软件栈223为多种异构系统提供软件栈,以提供部署包在不同异构系统内运行所需的程序或组件集合。操作系统224包括Windows操作系统、Linux操作系统和MacOS操作系统,为软件部署提供跨平台环境。异构硬件225包括多种CPU芯片和多种加速芯片,CPU芯片提供CPU处理系统,加速芯片提供GPU处理系统。
异构交付平台220连接数据库230、文件系统240和流水线队列250。
例如,数据库230可以为关系型数据库,可以记录软件部署信息和软件交付信息。
例如,文件系统240可以存储多种类型文件,例如对于数据量较大的数据信息,可以以文件的形式存储在文件系统240中。
例如,流水线队列250可以与多个预设异构系统连接,用于依次处理多个软件部署包的请求。例如,异构交付平台220可以将多个软件部署请求写入流水线队列250中,流水线队列250可以将多个软件部署请求依次发送给对应的异构系统,并基于对应异构系统依次执行生成部署包、验证部署包和部署部署包的操作。
根据本公开的实施例,在应用场景200中,响应于来自操作平台210的软件部署请求,可以确定软件的运行环境信息和组件信息。
例如,确定软件的运行环境信息和组件信息包括:获取软件部署请求对应至少一个模型表;从至少一个模型表中获取指令集信息、处理器信息、计算芯片信息、操作系统信息、开发工具信息、镜像信息和至少一种模型信息;根据指令集信息、处理器信息、计算芯片信息和操作系统信息,确定运行环境信息;以及根据开发工具信息、镜像信息和至少一种模型信息,确定组件信息。
例如,生成部署包涉及的资源数据可以以JSON格式统一描述。例如,生成部署包涉及的运行环境信息可以包括待部署设备的CPU类型、硬件加速芯片类型、操作系统类型、指令集类型等。生成部署包涉及的组件信息包括任务类型(推理或训练)、机器学习框架、深度学习模型下载、镜像和工具库信息等。生成部署包涉及的属性还可以包括部署包ID、部署包名称和模型名称等。
例如,流水线队列250生成的部署包可以通过部署表和多个模型表统一描述。
例如,部署表可以如表1所示。
表1
| deploy_id | (必选)唯一自增ID,标记一次部署,如100001 |
| deploy_name | (必选)交付名,标记实际项目 |
| start_time | (必选)交付开始时间 |
| end_time | (必选)交付结束时间 |
| position | (必选)交付地点,可选择线上或现场交付地点 |
| engineer_name | (必选)交付工程师 |
| model_list | (必选)模型列表,包括多个model_id |
| Additional | (可选)额外说明信息,如项目变更等 |
如表1所示,部署表可以包括部署名称、时间、地点、交付工程师、以及多个模型列表的名称。
例如,模型表可以如表2所示。
表2
| model_id | (必选)唯一自增ID,标记一个模型,如500001 |
| model_name | (必选)部署名,标记实际部署项目 |
| submit_date | (可选)提交模型日期 |
| update_date | (可选)更新模型日期 |
| architecture | (必选)指令集架构,如X64 |
| cpu | (必选)CPU型号 |
| device | (必选)计算芯片型号 |
| os | (必选)操作系统型号 |
| os_version | (必选)操作系统版本 |
| task_type | (必选)任务类型,包括训练、推理、训推一体 |
| ml_framework | (必选)模型所属的机器学习框架 |
| download_link | (可选)模型下载链接,适合官方开源可下载模型 |
| resouce_link | (可选)模型族相关链接 |
| official_link | (可选)模型来源官网链接 |
| docker_image_link | (必选)docker镜像下载地址 |
| docker_image_version | (必选)docker镜像版本 |
| sdk_link | (必选)SDK下载地址 |
| sdk_version | (必选)SDK版本 |
如表2所示,模型表可以包括适配模型算法运行的系统环境、docker镜像、软件开发工具包(Software Development Kit,SDK)和模型来源等信息。例如,指令集架构和CPU型号可以表示待部署设备的CPU信息,计算芯片型号可以表示待部署设备的GPU信息,操作系统型号和操作系统版本可以表示待部署设备的操作系统信息。任务类型、模型所属的机器学习框架、模型下载链接、模型族相关链接、模型来源官网链接、docker镜像下载地址、docker镜像版本、SDK下载地址和SDK版本可以表示组件信息。
在本公开实施例中,部署包可以包括驱动程序、软件栈、深度学习框架、模型组件、工具库组件和镜像组件等。例如,驱动程序为启动部署包的程序,软件栈为与异构系统适配程序集合,深度学习框架为深度学习模型的运行框架,模型组件为多个项目涉及的多种深度学习模型,工具库组件为第三方库或依赖库,镜像组件为应用容器引擎,可用于开发应用、交付应用和运行应用等。部署包包括的多个组件可以实现目标产品的多种功能模块。
在目标异构系统上,结合驱动程序、软件栈、深度学习框架、第三方依赖库与镜像可以联合编译部署包,部署包可以与异构系统适配。
根据本公开的实施例,在应用场景200中,软件部署方法可以包括根据运行环境信息和组件信息,检索数据库;在确定数据库包括至少一个待确认部署包的情况下,展示至少一个待确认部署包,至少一个待确认部署包与运行环境信息以及组件信息均匹配;以及响应于接收到的第一确认指令,在待部署设备上部署目标部署包,目标部署包为至少一个待确认部署包中与第一确认指令对应的部署包。
例如,利用异构交付平台220中服务层211提供的检索接口,根据待部署设备的运行环境信息和组件信息,检索文件系统240。文件系统240中可以存储由与特定异构系统已适配的部署包。
异构交付平台220在接收到来自操作平台210的软件部署请求时,可以优先利用运行环境信息和组件信息,检索文件系统240中是否已存在与待部署设备适配的部署包。
例如,可以基于模型表涉及的多个属性对文件系统240中存储的部署包进行多维度特征检索。模型表涉及的多个属性描述了部署在待部署设备中的部署包的所有特征。在确定文件系统240包括与模型表涉及的多个属性均匹配的部署包的情况下,可以直接输出检索到的部署包。在确定文件系统240包括的部署包与模型表涉及的多个属性不匹配的情况下,可以生成部署包生成请求,并将部署包生成请求发送给流水线队列250,以基于待部署设备的异构系统生成适配的部署包。
例如,在操作平台210中输入检索属性和属性值,检索属性可以包括模型表的所有属性。例如,输入的检索属性为操作系统,对应的属性值为Windows操作系统。异构交付平台220可以基于检索属性和属性值通过全文模糊匹配,从文件系统240中检索已有部署包。
例如,在操作平台210中向异构交付平台220发送检索属性和属性值后,异构交付平台220对检索属性和属性值进行格式检查。在确定检索属性和属性值的格式正确的情况下,基于检索属性检索文件系统240。在确定文件系统240存在该检索属性的情况下,确定属性值的有效性。在确定属性值有效的情况下,基于该属性值通过全文模糊匹配在文件系统240中检索已有部署包。
在确定从文件系统240中检索到匹配的多个部署包的情况下,可以将多个部署包作为多个待确认部署包反馈给操作平台210。例如,操作平台210可以基于创建时间排序或最后更新时间等信息,对多个待确定部署包进行展示。操作人员可以在操作平台210上输入第一确认指令,第一确认指令可以为操作人员在操作平台210点击目标部署包而产生的指令。异构交付平台220响应于来自操作平台210的第一确认指令,可以输出目标部署包,并在待部署设备上安装部署包。
例如,在检索过程中,在从文件系统240中未检索到与模型表涉及的属性均匹配的部署包的情况下,还可以检索到多个组件,多个组件可以与模型表涉及的多个属性分别匹配。多个组件可以作为待确认组件反馈给操作平台210,操作平台210可以基于创建时间排序或最后更新时间等信息,对多个待确认组件进行展示
例如,在确定数据库包括至少一个待确认组件的情况下,展示至少一个待确认组件,至少一个待确认组件分别与运行环境信息以及组件信息中的至少一个信息匹配;响应于接收到的第二确认指令,通过利用至少一个目标组件,生成软件的部署包,至少一个目标组件为至少一个待确认组件中与第二确认指令对应的至少一个组件。
操作人员可以在操作平台210上输入第二确认指令,第二确认指令可以为操作人员在操作平台210点击目标组件而产生的指令。异构交付平台220响应于来自操作平台210的第二确认指令,利用目标组件,生成软件的部署包。
例如,待确认组件可以包括驱动程序、软件栈、深度学习框架、模型组件、工具库组件和镜像组件等。操作人员可以在操作平台210上选择软件栈、深度学习框架和模型组件,生成第二确定指令。异构交付平台220基于第二确定指令,可以将已选择的软件栈、深度学习框架和模型组件以及部署包生成指令一起发送给流水线队列250,并在目标异构系统中,生成与已选择的软件栈、深度学习框架及模型组件适配的工具库组件和镜像组件等。
根据本公开的实施例,在生成新的部署包之后,还可以在异构交付平台220对新生成的部署包进行验证。例如,运行部署包,利用部署包的深度学习模型对预设数据进行数据计算,得到计算结果。将计算结果与预期结果进行对比,在确定计算结果与预期结果的误差范围小于预设误差范围(例如10%)的情况下,认为部署包通过验证。例如,通过利用异构交付平台220的异构硬件225运行深度学习模型,处理预设数据,可以得到预期结果。
根据本公开的实施例,在生成新的部署包之前,可检索已交付部署包。在确定存在适配的部署包的情况下,可以直接将已有的部署包部署在待部署设备上,节约生成部署包的时间,提高部署效率。在确定存在适配的部分组件的情况下,也可以利用已有的组件生成新的部署包,减少生成部署包的时间,提高部署效率。
以下将结合图3A和3B对本公开提供的生成部署包的过程进行描述。
图3A示意性示出了根据本公开的实施例的生成部署包的示意图。
如图3A所示,生成部署包的过程300a可以包括对生成部署包涉及的资源数据进行抽象和通用化设计,得到软件栈310、深度学习模型320、工具库330、数据集340和代码350,并利用自动适配程序360对软件栈310、深度学习模型320、工具库330、数据集340和代码350进行适配组装,得到部署包。
根据本公开的实施例,在目标异构系统中,基于组件信息,生成软件的部署包包括:在目标异构系统中,编译组件信息,得到多个组件,多个组件包括软件栈、深度学习模型、工具库和数据集;根据软件栈、深度学习模型、工具库和数据集,生成代码,代码用于组装软件栈、深度学习模型、工具库和数据集;以及基于预设打包格式,对代码、软件栈、深度学习模型、工具库和数据集进行打包,得到部署包。
例如,软件栈310可以表征待部署设备的运行环境,例如,软件栈310可以为与Docker镜像、操作系统、CPU指令集、硬件加速芯片相关的软件栈。例如,深度学习模型320与机器学习框架相关。例如,工具库330可以为测试工具库,工具库330可以包括压力测试工具库、基准Benchmark测试工具库、指标采集工具库。例如,数据集340可以包括自然语言处理(Natural Language Processing,NLP)场景的数据集和计算机视觉(Computer Vision,CV)场景的数据集,数据集340为与机器学习相关的数据集。例如,代码350包括描述部署包运行任务的代码。例如,运行任务可以包括推理前后处理、训练的数据加载和模型量化等。
例如,在目标异构系统中,可以编译异构设备软件栈和多种深度学习框架。在确定部署包涉及多种深度学习模型时,编译多种深度学习框架。在目标异构系统中,还可以编写应用层程序和支持目标异构系统的文件编写Makefile文件,配置目标异构系统的工具库和头文件目录等。
例如,利用自动适配程序360,基于软件栈310、深度学习模型320、工具库330、数据集340,自动生成适配的代码350,基于预设打包格式,对软件栈310、深度学习模型320、工具库330、数据集340和代码350进行打包,得到部署包。
为确保生成的部署包具备较好扩展性,可以以预设的打包格式统一打包软件栈310、深度学习模型320、工具库330、数据集340和代码350。图3B示意性示出了根据本公开的实施例的预设打包格式的示意图。
如图3B所示,预设打包格式300b可以包括8个一级目录。一级目录包括data、docker、lib、model、setup.json、setup.sh、script、tools。根据实际的打包需求,还可以在每一个一级目录下设置至少一个二级目录。本公开对每个一级目录下的二级目录的数量不做限定。
setup.json目录下记录由模型表和部署表包括的多个属性,通过查询setup.json目录下的数据可以查看模型表和部署表包括的多个属性。
在启动部署包时,通过setup.sh目录中统一启动入口检查加速卡的驱动是否完整。在确定驱动完整的情况下,可以从lib目录中确定依赖库资源,从tools目录中确定驱动程序drivers、SDK和pip,并安装依赖库、驱动程序drivers、SDK和pip。在安装完成后,利用script目录下的环境检查脚本check_env.sh检查环境变量。在检测到docker镜像的情况下,将图3B所示的目录映射到docker目录下,使通过镜像环境可以看到图3B所示的目录。在确定目录安装完成的情况下,可以利用script目录下的启动脚本run.sh运行pip,利用pip调用model目录下的深度学习模型。在使用深度学习模型时,会调用lib目录下的依赖库或读data目录的数据集。
通过本公开实施例,对与待部署设备的运行环境信息和组件信息匹配的多种组件进行自动适配组装,实现了通用的自动生成部署包的流程,提高部署效率。通过统一打包格式打包部署包,可以满足运行训练和推理任务的部署要求,便于获取相应地数据库。在目录中设置tools,使得部署包具备较好扩展性,为第三方库、SDK、脚本的扩展提供了扩展区域等。此外,统一的打包格式为自动生成部署包提供基础。
以下将结合图4A和4B对本公开提供的在待部署设备上部署部署包的方法进行描述。
图4A示意性示出了根据本公开的实施例的部署部署包的流程图。
如图4A所示,在待部署设备上部署部署包的方法440可以包括操作441至操作S442。接下来将参考图4A来描述根据本公开实施例的待部署设备上部署部署包的方法。
在操作S441,在确定待部署设备支持的指令集和计算芯片均与部署包匹配的情况下,基于部署包在待部署设备上安装驱动程序。
然后,在操作S442,在确定驱动程序运行正常的情况下,在待部署设备上安装部署包。
根据本公开的实施例,在部署部署包之前,检查待部署设备的设备信息,例如待部署设备的L3缓存、显存、频率和功耗等指标,以确定待部署设备的运行状态。
在部署部署包之前,还可以检查待部署设备支持的指令集和待部署设备的计算芯片。通过检查指令集确定待部署设备的CPU信息,通过检查计算芯片确定待部署设备的GPU信息。检查过程包括确定待部署设备的异构系统信息与部署包对应的异构系统是否匹配,以及待部署设备中是否已经正确安装了计算芯片的驱动程序。
在确定待部署设备的异构系统信息与部署包对应的异构系统匹配的情况下,检测待部署设备中是否已经正确安装了计算芯片的驱动程序。在还待部署设备中是未正确安装计算芯片的驱动程序的情况下,可以卸载旧驱动程序,安装新的驱动程序。在正确安装了计算芯片的驱动程序后,还可以检查驱动程序是否可以正确输出计算芯片信息。
在确定驱动程序不能正确输出计算芯片信息,可以重新安装计算芯片的驱动程序。在确定驱动程序可以正确输出计算芯片信息,可以基于部署包再待部署设备中安装软件栈,例如安装推理引擎和高性能计算工具库。
在启动部署包时,可以基于软件栈中的工具运行部署包的深度学习模型,并执行模型训练任务或模型验证任务。
根据本公开的实施例,在待部署设备上部署部署包的方法440还可以包括在确定计算芯片的算力满足运行条件的情况下,运行与部署包对应的运行任务,得到运行结果;以及根据运行结果,确定待部署设备运行软件的性能指标。
例如,在执行模型训练任务或模型验证任务之前,可以测试计算芯片的算力,以确定待处理设备的GPU是否满足执行模型训练任务或模型验证任务的运行条件。在确定待处理设备的GPU满足执行模型训练任务或模型验证任务的运行条件,检查部署包的数据集、模型、推理/训练脚本,并执行模型训练任务或模型验证任务,得到运行结果。
例如,运行结果可以以运行报表的形式生成。运行报表可以发送至前端,以展示待部署设备运行软件的性能指标,使操作人员可以确认待部署设备运行软件的效果。
图4B示意性示出了根据本公开的实施例的合并部署包的流程图。
如图4B所示,合并部署包的过程400包括将多个模型部署包410合并为一个交付部署包420。
根据本公开的实施例,部署包包括多个模型部署包。在确定待部署设备满足部署条件的情况下,在待部署设备上部署部署包包括:确定多个模型部署包中的共用组件;基于共用组件,合并多个模型部署包,得到交付部署包;以及在确定待部署设备满足部署条件的情况下,在待部署设备上部署交付部署包。
例如,在确定部署表记录了多个模型表的情况下,可以分别为每个深度学习模型生成一个模型部署包。例如,对于三个深度学习模型,生成了如图4B所示的模型部署包411、模型部署包412和模型部署包413。
根据模型部署包411、模型部署包412和模型部署包413的目录,可以确定模型部署包411、模型部署包412和模型部署包413包括的数据集data、镜像docker、依赖库lib、模型model、启动程序setup、脚本script和工具tools等信息。
如图4B所示,在模型部署包411中,数据集包括data1,镜像包括docker1,依赖库包括lib1和lib2,模型包括yolov1,启动程序包括setup1,脚本包括env.sh和run.sh,工具包括drivers1和SDK1。在模型部署包412中,数据集包括data2,镜像包括docker1,依赖库包括lib2和lib3,模型包括yolov2,启动程序包括setup2,脚本包括env.sh和run.sh,工具包括drivers2和SDK2。在模型部署包412中,数据集包括data1,镜像包括docker1,依赖库包括lib1和lib3,模型包括yolov3,启动程序包括setup3,脚本包括env.sh和run.sh,工具包括drivers2和SDK2。
模型部署包411和模型部署包412的共用组件包括docker1、lib2、env.sh和run.sh。模型部署包411和模型部署包413的共用组件包括data1、docker1、lib1、env.sh和run.sh。模型部署包412和模型部署包413的共用组件包括docker1、lib3、env.sh、run.sh、drivers2和SDK2。
根据本公开的实施例,对模型部署包411、模型部署包412和模型部署包413之间的共用组件进行合并,得到交付部署包。例如,如图4B所示,在交付部署包420中,数据集包括datal和data2,镜像包括docker1,依赖库包括lib1、lib2和lib3,模型包括yolov1、yolov2和yolov3,启动程序包括setup1、setup2和setup3,脚本包括env.sh和run.sh,工具包括drivers1、drivers2、SDK1和SDK2。
由于模型部署包411、模型部署包412和模型部署包413分别与三个深度学习模型对应,为了确保每个深度学习模型运行正常,在交付部署包420中,将与深度学习模型运行相关的组件打包在同一目录下。例如,在目录中设置一级目录项目project,以表示与每个深度学习模型运行相关的组件。在project目录下,设置有三个二级目录,二级目录包括项目A、项目B和项目C。在每个二级项目下,设置有三个三级目录,三级目录包括model、setup和script。三个二级项目与三个模型部署包中的深度学习模型对应,每个二级目录下的model、setup和script分别为与每个深度学习模型运行相关的组件。
根据本公开的实施例,可以利用信息摘要算法(Message-Digest Algorithm 5,MD5)对多个模型部署包进行对比,确定多个模型部署包的共用组件,并合并共用组件,得到交付部署包。例如,交付部署包可以通过硬拷贝和文件软链接的方式构建。
根据本公开的实施例,在待部署设备上部署交付部署包的过程与图4A示出的实施例类似。为了简明,本公开在此处不再赘述。
根据本公开的实施例,在确定软件的部署过程涉及多个模型部署包时,可以对多个模型部署包的共用组件进行合并,得到POC部署包。通过合并多个模型部署包可以减少部署包的体积,提高部署效率。
以下将结合图5对本公开提供的软件部署装置进行描述。
图5示意性示出了根据本公开实施例的软件部署装置的框图。
如图5所示,该软件部署装置500包括第一确定模块510、第二确定模块520、生成模块530和部署模块540。
根据本公开的实施例,第一确定模块510,用于响应于接收到的软件部署请求,确定软件的运行环境信息和组件信息。
根据本公开的实施例,第二确定模块520,用于根据运行环境信息,从多个预设异构系统中确定目标异构系统。
根据本公开的实施例,生成模块530,用于在目标异构系统中,基于组件信息,生成软件的部署包。
根据本公开的实施例,部署模块540,用于在确定待部署设备满足部署条件的情况下,在待部署设备上部署部署包。
根据本公开的实施例,第一确定模块510还用于获取软件部署请求对应至少一个模型表;从至少一个模型表中获取指令集信息、处理器信息、计算芯片信息、操作系统信息、开发工具信息、镜像信息和至少一种模型信息;根据指令集信息、处理器信息、计算芯片信息和操作系统信息,确定运行环境信息;以及根据开发工具信息、镜像信息和至少一种模型信息,确定组件信息。
根据本公开的实施例,生成模块530还用于在目标异构系统中,编译组件信息,得到多个组件,多个组件包括软件栈、深度学习模型、工具库和数据集;通过组装软件栈、深度学习模型、工具库和数据集,生成代码;以及基于预设打包格式,对代码进行打包,得到部署包。
根据本公开的实施例,部署模块540还用于在确定待部署设备支持的指令集和计算芯片均与部署包匹配的情况下,基于部署包在待部署设备上安装驱动程序;以及在确定驱动程序运行正常的情况下,在待部署设备上安装部署包。
根据本公开的实施例,部署模块540还用于在确定计算芯片的算力满足运行条件的情况下,运行与部署包对应的运行任务,得到运行结果;以及根据运行结果,确定待部署设备运行软件的性能指标。
根据本公开的实施例,部署模块540还用于确定多个模型部署包中的共用组件;基于共用组件,合并多个模型部署包,得到交付部署包;以及在确定待部署设备满足部署条件的情况下,在待部署设备上部署交付部署包。
以下将结合图6对本公开提供的软件部署装置进行描述。
图6示意性示出了根据本公开另一实施例的软件部署装置的框图。
如图6所示,该软件部署装置600包括第一确定模块610、第二确定模块620、生成模块630、部署模块640、检索模块650和展示模块660。
根据本公开的实施例,第一确定模块610、第二确定模块620、生成模块630和部署模块640分别与图5所述的第一确定模块510、第二确定模块520、生成模块530和部署模块540类似。为了简明,本公开在此处不再赘述。
根据本公开的实施例,检索模块650用于根据运行环境信息和组件信息,检索数据库。展示模块660用于在确定数据库包括至少一个待确认部署包的情况下,展示至少一个待确认部署包,至少一个待确认部署包与运行环境信息以及组件信息均匹配。
根据本公开的实施例,部署模块640响应于接收到的第一确认指令,在待部署设备上部署目标部署包,目标部署包为至少一个待确认部署包中与第一确认指令对应的部署包。
根据本公开的实施例,展示模块660在确定数据库包括至少一个待确认组件的情况下,展示至少一个待确认组件,至少一个待确认组件分别与运行环境信息以及组件信息中的至少一个信息匹配。生成模块630还用于响应于接收到的第二确认指令,通过利用至少一个目标组件,生成软件的部署包,至少一个目标组件为至少一个待确认组件中与第二确认指令对应的至少一个组件。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图7示意性示出了可以用来实施本公开的实施例的示例电子设备700的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如软件部署方法。例如,在一些实施例中,软件部署方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的软件部署方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行软件部署方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务(″Virtual Private Server",或简称″VPS″)中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (17)
1.一种软件部署方法,包括:
响应于接收到的软件部署请求,确定所述软件的运行环境信息和组件信息;
根据所述运行环境信息,从多个预设异构系统中确定目标异构系统;
在所述目标异构系统中,基于所述组件信息,生成所述软件的部署包;以及
在确定待部署设备满足部署条件的情况下,在所述待部署设备上部署所述部署包。
2.根据权利要求1所述的方法,其中,所述在所述目标异构系统中,基于所述组件信息,生成所述软件的部署包包括:
在所述目标异构系统中,编译所述组件信息,得到多个组件,所述多个组件包括软件栈、深度学习模型、工具库和数据集;
根据所述软件栈、所述深度学习模型、所述工具库和所述数据集,生成代码,所述代码用于组装所述软件栈、所述深度学习模型、所述工具库和所述数据集;以及
基于预设打包格式,对所述代码、所述软件栈、所述深度学习模型、所述工具库和所述数据集进行打包,得到所述部署包。
3.根据权利要求1所述的方法,其中,所述在确定待部署设备满足部署条件的情况下,在所述待部署设备上部署所述部署包包括:
在确定所述待部署设备支持的指令集和计算芯片均与所述部署包匹配的情况下,基于所述部署包在所述待部署设备上安装驱动程序;以及
在确定所述驱动程序运行正常的情况下,在所述待部署设备上安装所述部署包。
4.根据权利要求3所述的方法,其中,所述在确定待部署设备满足部署条件的情况下,在所述待部署设备上部署所述部署包包括:
在确定所述计算芯片的算力满足运行条件的情况下,运行与所述部署包对应的运行任务,得到运行结果;以及
根据所述运行结果,确定所述待部署设备运行所述软件的性能指标。
5.根据权利要求1所述的方法,其中,所述部署包包括多个模型部署包;在确定待部署设备满足部署条件的情况下,在所述待部署设备上部署所述部署包包括:
确定所述多个模型部署包中的共用组件;
基于所述共用组件,合并所述多个模型部署包,得到交付部署包;以及
在确定待部署设备满足部署条件的情况下,在所述待部署设备上部署所述交付部署包。
6.根据权利要求1所述的方法,还包括:
根据所述运行环境信息和所述组件信息,检索数据库;
在确定所述数据库包括至少一个待确认部署包的情况下,展示所述至少一个待确认部署包,所述至少一个待确认部署包与所述运行环境信息以及所述组件信息均匹配;以及
响应于接收到的第一确认指令,在所述待部署设备上部署目标部署包,所述目标部署包为所述至少一个待确认部署包中与所述第一确认指令对应的部署包。
7.根据权利要求6所述的方法,还包括:
在确定所述数据库包括至少一个待确认组件的情况下,展示所述至少一个待确认组件,所述至少一个待确认组件分别与所述运行环境信息以及所述组件信息中的至少一个信息匹配;以及
响应于接收到的第二确认指令,通过利用至少一个目标组件,生成所述软件的部署包,所述至少一个目标组件为所述至少一个待确认组件中与所述第二确认指令对应的至少一个组件。
8.根据权利要求1所述的方法,其中,所述确定所述软件的运行环境信息和组件信息包括:
获取所述软件部署请求对应至少一个模型表;
从所述至少一个模型表中获取指令集信息、处理器信息、计算芯片信息、操作系统信息、开发工具信息、镜像信息和至少一种模型信息;
根据所述指令集信息、所述处理器信息、所述计算芯片信息和所述操作系统信息,确定所述运行环境信息;以及
根据所述开发工具信息、所述镜像信息和所述至少一种模型信息,确定所述组件信息。
9.一种软件部署装置,包括:
第一确定模块,用于响应于接收到的软件部署请求,确定所述软件的运行环境信息和组件信息;
第二确定模块,用于据所述运行环境信息,从多个预设异构系统中确定目标异构系统;
生成模块,用于在所述目标异构系统中,基于所述组件信息,生成所述软件的部署包;以及
部署模块,用于在确定待部署设备满足部署条件的情况下,在所述待部署设备上部署所述部署包。
10.根据权利要求9所述的装置,其中,所述生成模块还用于:
在所述目标异构系统中,编译所述组件信息,得到多个组件,所述多个组件包括软件栈、深度学习模型、工具库和数据集;
通过组装所述软件栈、所述深度学习模型、所述工具库和所述数据集,生成代码;以及
基于预设打包格式,对所述代码进行打包,得到所述部署包。
11.根据权利要求9所述的装置,其中,所述部署模块还用于:
在确定所述待部署设备支持的指令集和计算芯片均与所述部署包匹配的情况下,基于所述部署包在所述待部署设备上安装驱动程序;以及
在确定所述驱动程序运行正常的情况下,在所述待部署设备上安装所述部署包。
12.根据权利要求9所述的装置,其中,所述部署模块还用于:
确定所述多个模型部署包中的共用组件;
基于所述共用组件,合并所述多个模型部署包,得到交付部署包;以及
在确定待部署设备满足部署条件的情况下,在所述待部署设备上部署所述交付部署包。
13.根据权利要求9所述的装置,还包括:
检索模块,用于根据所述运行环境信息和所述组件信息,检索数据库;以及
展示模块,用于在确定所述数据库包括至少一个待确认部署包的情况下,展示所述至少一个待确认部署包,所述至少一个待确认部署包与所述运行环境信息以及所述组件信息均匹配;
其中,部署模块响应于接收到的第一确认指令,在所述待部署设备上部署目标部署包,所述目标部署包为所述至少一个待确认部署包中与所述第一确认指令对应的部署包。
14.根据权利要求13所述的装置,其中,
所述展示模块还用于在确定所述数据库包括至少一个待确认组件的情况下,展示所述至少一个待确认组件,所述至少一个待确认组件分别与所述运行环境信息以及所述组件信息中的至少一个信息匹配;以及
所述生成模块还用于响应于接收到的第二确认指令,通过利用至少一个目标组件,生成所述软件的部署包,所述至少一个目标组件为所述至少一个待确认组件中与所述第二确认指令对应的至少一个组件。
15.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1—8中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1—8中任一项所述的方法。
17.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1—8中任一项所述方法的步骤。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310371479.9A CN116301923A (zh) | 2023-04-07 | 2023-04-07 | 软件部署方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310371479.9A CN116301923A (zh) | 2023-04-07 | 2023-04-07 | 软件部署方法、装置、电子设备和存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN116301923A true CN116301923A (zh) | 2023-06-23 |
Family
ID=86794169
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202310371479.9A Pending CN116301923A (zh) | 2023-04-07 | 2023-04-07 | 软件部署方法、装置、电子设备和存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN116301923A (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN117667125A (zh) * | 2023-12-19 | 2024-03-08 | 中国人寿保险股份有限公司 | 中间件联合部署方法、装置、设备、介质和产品 |
-
2023
- 2023-04-07 CN CN202310371479.9A patent/CN116301923A/zh active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN117667125A (zh) * | 2023-12-19 | 2024-03-08 | 中国人寿保险股份有限公司 | 中间件联合部署方法、装置、设备、介质和产品 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10318412B1 (en) | Systems, methods, and apparatus for dynamic software generation and testing | |
| US11263111B2 (en) | Validating software functionality | |
| US11409644B2 (en) | Validation of mobile device workflows | |
| US10565077B2 (en) | Using cognitive technologies to identify and resolve issues in a distributed infrastructure | |
| CN110245089B (zh) | 压力测试方法、装置、设备及计算机可读存储介质 | |
| CN111722839B (zh) | 一种代码生成方法、装置、电子设备及存储介质 | |
| US20230132033A1 (en) | Automatically generating, revising, and/or executing troubleshooting guide(s) | |
| CN116107589B (zh) | 软件代码的自动编译方法、装置、设备及存储介质 | |
| CN113760769B (zh) | 测试用例处理方法、装置、电子设备以及存储介质 | |
| US20220398239A1 (en) | Intelligent support bundle collection | |
| CN115033816A (zh) | 基于规则引擎的业务处理方法、装置、计算机设备及介质 | |
| CN115328891A (zh) | 数据迁移方法、装置、存储介质及电子设备 | |
| CN109710535B (zh) | 用于语音对话平台的服务校验方法及系统 | |
| CN118885463A (zh) | 数据库适配兼容的方法及装置、电子设备和存储介质 | |
| CN116301923A (zh) | 软件部署方法、装置、电子设备和存储介质 | |
| CN114721952A (zh) | 多套测试环境同步部署方法、装置、设备及存储介质 | |
| CN117435503A (zh) | 测试工具的生成方法、测试方法、装置、设备及介质 | |
| CN112507011A (zh) | 一种程序自动化数据库模型建立的方法 | |
| WO2025102729A1 (zh) | 算法服务的部署方法、装置、电子设备与可读存储介质 | |
| WO2023151397A1 (zh) | 应用程序部署方法、装置、设备及介质 | |
| CN116627785A (zh) | 旁路测试方法、装置、电子设备及可读存储介质 | |
| CN116301916A (zh) | 服务部署方法、装置、电子设备及存储介质 | |
| CN115840748A (zh) | 数据处理方法、系统及相关设备 | |
| CN115292178A (zh) | 测试数据搜索方法、装置、存储介质以及终端 | |
| CN115617661A (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 | ||
| CB02 | Change of applicant information |
Country or region after: China Address after: 100085 Beijing City Haidian District Shangdi Information Road No. 19 Building 1 Third Floor 321 Applicant after: Kunlun Xing (Beijing) Science and Technology Co., Ltd. Address before: CW District, 4th floor, building 1, No. 10, Shangdi 10th Street, Haidian District, Beijing 100101 Applicant before: Kunlun core (Beijing) Technology Co.,Ltd. Country or region before: China |