CN115562690B - 基于Docker容器的算法服务处理方法、装置及介质 - Google Patents

基于Docker容器的算法服务处理方法、装置及介质 Download PDF

Info

Publication number
CN115562690B
CN115562690B CN202211545773.9A CN202211545773A CN115562690B CN 115562690 B CN115562690 B CN 115562690B CN 202211545773 A CN202211545773 A CN 202211545773A CN 115562690 B CN115562690 B CN 115562690B
Authority
CN
China
Prior art keywords
algorithm
target
docker
service
mirror image
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
CN202211545773.9A
Other languages
English (en)
Other versions
CN115562690A (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.)
Advanced Institute of Information Technology AIIT of Peking University
Hangzhou Weiming Information Technology Co Ltd
Original Assignee
Advanced Institute of Information Technology AIIT of Peking University
Hangzhou Weiming Information 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 Advanced Institute of Information Technology AIIT of Peking University, Hangzhou Weiming Information Technology Co Ltd filed Critical Advanced Institute of Information Technology AIIT of Peking University
Priority to CN202211545773.9A priority Critical patent/CN115562690B/zh
Publication of CN115562690A publication Critical patent/CN115562690A/zh
Application granted granted Critical
Publication of CN115562690B publication Critical patent/CN115562690B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请涉及计算机技术与服务处理技术领域,更为具体来说,本申请涉及基于Docker容器的算法服务处理方法、装置及介质。所述方法包括:从客户端获取用户提交的目标算法的程序代码;确定所述目标算法的程序代码的入口函数和依赖包;将确定出的入口函数和依赖包与所述目标算法绑定,并将绑定结果存储至算法服务处理系统的数据库;基于所述绑定结果及预设规则生成镜像构建文件,并利用所述镜像构建文件创建目标Docker镜像;通过所述目标Docker镜像启动算法服务的Docker容器,并利用所述Docker容器对外部提供所述目标算法的处理功能。通过本申请,对于算法服务的多种目标操作,例如发布、更新和删除等等,能够简化用户操作步骤和提升效率。

Description

基于Docker容器的算法服务处理方法、装置及介质
技术领域
本申请涉及计算机技术与服务处理技术领域,更为具体来说,本申请涉及基于Docker容器的算法服务处理方法、装置及介质。
背景技术
随着计算机技术的发展,算法开发与算法服务化部署的应用非常广泛。由于算法开发与算法服务化部署所需的技术背景有很大的区别,算法开发人员并不一定掌握算法服务化部署所需的技术,例如python算法。将算法部署成高可用的算法服务需要大量的服务端开发技术背景,掌握这些技术需要耗费大量的时间。算法开发人员即使拥有算法服务化部署所需的服务端开发能力,每次发布和更新算法服务,均需重复编写大量与服务发布相关的代码,然而这难以避免地会出现一些错误,从而影响算法服务化部署的处理效率。
发明内容
基于上述技术问题,本发明旨在通过将目标算法的程序代码生成目标Docker镜像,通过目标Docker镜像启动算法服务的Docker容器,并利用所述Docker容器对外部提供所述目标算法的处理功能,以解决大量人为编码易导致错误的问题。
本发明第一方面提供了一种基于Docker容器的算法服务处理方法,应用于算法服务处理系统,所述方法包括:
通过客户端获取用户提交的目标算法的程序代码;
确定所述目标算法的程序代码的入口函数和依赖包;
将确定出的入口函数和依赖包与所述目标算法绑定,并将绑定结果存储至算法服务处理系统的数据库;
基于所述绑定结果及预设规则生成镜像构建文件,并利用所述镜像构建文件创建目标Docker镜像;
通过所述目标Docker镜像启动算法服务处理系统的Docker容器,并利用所述Docker容器对外部提供所述目标算法的处理功能。
在本发明的一些实施例中,所述算法服务处理系统包括表现层、业务层和持久层,所述业务层包括Docker容器,其中,所述Docker容器的数量随用户需求调整;所述目标服务处理包括服务发布、服务更新、服务删除。
在本发明的一些实施例中,所述服务更新的步骤包括:
用户通过客户端更新目标算法文件;
基于与所述目标算法文件对应版本的Docker镜像和更新后的目标算法文件,通过预设规则生成镜像构建文件,并利用所述镜像构建文件创建目标Docker镜像;
通过所述目标Docker镜像启动更新后的算法服务的Docker容器,并利用所述Docker容器对外部提供所述目标算法的处理功能;
关闭与所述目标算法文件对应版本的Docker容器。
在本发明的一些实施例中,所述服务删除的步骤包括:
接收目标服务删除请求;
清空与欲删除的目标服务对应的Docker容器;
清除与欲删除的目标服务对应的Docker镜像以及构建所述Docker镜像所使用的文件。
在本发明的一些实施例中,所述确定所述目标算法的程序代码的入口函数和依赖包,包括:
从所述目标算法的所有函数中解析出第一入口函数和第一依赖包;
将第一入口函数和第一依赖包发送至客户端让用户进行审核,若通过审核,将第一入口函数和第一依赖包作为所述目标算法的程序代码的入口函数和依赖包;
若未通过审核,发送第二入口函数和第二依赖包至服务端,并将第二入口函数和第二依赖包作为所述目标算法的程序代码的入口函数和依赖包。
在本发明的一些实施例中,基于所述绑定结果及预设规则生成镜像构建文件,并利用所述镜像构建文件创建目标Docker镜像,包括:
根据所述绑定结果获取创建镜像构建文件所需的基础代码与依赖包;
创建目录,并将所述基础代码与依赖包以及预设转化代码拷贝至所述目录下;
在所述目录下,根据预设规则生成镜像构建文件,并利用所述镜像构建文件创建目标Docker镜像,其中,所述预设规则包括作用于所述基础代码与依赖包以及预设转化代码的规则。
在本发明的一些实施例中,所述目标算法为Python算法。
本发明第二方面提供了一种基于Docker容器的算法服务处理装置,所述装置包括:
获取模块,被配置为获取用户提交的目标算法的程序代码;
确定模块,被配置为确定所述目标算法的程序代码的入口函数和依赖包;
绑定模块,被配置为将确定出的入口函数和依赖包与所述目标算法绑定,并将绑定结果存储至算法服务处理系统的数据库;
镜像模块,被配置为基于所述绑定结果及预设规则生成镜像构建文件,并利用所述镜像构建文件创建目标Docker镜像;
处理模块,被配置为通过所述目标Docker镜像启动算法服务处理系统的Docker容器,并利用所述Docker容器对所述目标算法进行目标服务处理。
本发明第三方面提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行本发明各实施例中所述的基于Docker容器的算法服务处理方法。
本发明第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明各实施例中所述的基于Docker容器的算法服务处理方法。
本申请实施例中提供的技术方案,至少具有如下技术效果或优点:
本申请先获取客户端提交的目标算法的程序代码,确定所述目标算法的程序代码的入口函数和依赖包,将确定出的入口函数和依赖包与所述目标算法绑定,并将绑定结果存储至算法服务处理系统的数据库,基于所述绑定结果及预设规则生成镜像构建文件,并利用所述镜像构建文件创建目标Docker镜像,通过所述目标Docker镜像启动算法服务的Docker容器,并利用所述Docker容器对外部提供所述目标算法的处理功能,能快速地对算法服务进行多种目标操作,如发布、更新、删除等等,简单快捷,减少了服务测试、发布、部署等产生认为错误的发生率,从而提升了服务处理的效率,也减少了算法服务处理对人工操作的依赖。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
通过阅读下文优选实施方式的详细描述,各种其它的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本申请一示例性实施例中的基于Docker容器的算法服务处理方法步骤示意图;
图2示出了本申请一示例性实施例中的算法服务处理系统结构示意图;
图3示出了本申请一示例性实施例中的目标服务处理包含内容示意图;
图4示出了本申请一示例性实施例中的Docker容器的算法服务处理装置结构示意图;
图5示出了本申请一示例性实施例所提供的一种计算机设备的结构示意图。
具体实施方式
以下,将参照附图来描述本申请的实施例。但是应该理解的是,这些描述只是示例性的,而并非要限制本申请的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本申请的概念。对于本领域技术人员来说显而易见的是,本申请可以无需一个或多个这些细节而得以实施。在其它的例子中,为了避免与本申请发生混淆,对于本领域公知的一些技术特征未进行描述。
应予以注意的是,这里所使用的术语仅是为了描述具体实施例,而非意图限制根据本申请的示例性实施例。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式。此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或附加一个或多个其它特征、整体、步骤、操作、元件、组件和/或它们的组合。
现在,将参照附图更详细地描述根据本申请的示例性实施例。然而,这些示例性实施例可以多种不同的形式来实施,并且不应当被解释为只限于这里所阐述的实施例。附图并非是按比例绘制的,其中为了清楚表达的目的,可能放大了某些细节,并且可能省略了某些细节。图中所示出的各种区域、层的形状以及它们之间的相对大小、位置关系仅是示例性的,实际中可能由于制造公差或技术限制而有所偏差,并且本领域技术人员根据实际所需可以另外设计具有不同形状、大小、相对位置的区域/层。
下面结合说明书附图1-附图5给出几个实施例来描述根据本申请的示例性实施方式。需要注意的是,下述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。相反,本申请的实施方式可以应用于适用的任何场景。
随着计算机技术的发展,算法开发与算法部署的应用非常广泛,例如python算法。将算法部署成高可用的算法服务需要大量的服务端开发技术背景,掌握这些技术需要耗费大量的时间。算法开发人员即使拥有算法部署所需的服务端开发能力,每次发布和更新算法服务,均需重复编写大量与服务发布相关的代码,然而这难以避免地会出现一些错误,从而影响算法服务的处理效率。
在本申请一些示例性实施例中,提供了一种基于Docker容器的算法服务处理方法,应用于算法服务处理系统,如图1所示,所述方法包括:
S1、获取客户端提交的目标算法的程序代码;
S2、确定所述目标算法的程序代码的入口函数和依赖包;
S3、将确定出的入口函数和依赖包与所述目标算法绑定,并将绑定结果存储至算法服务处理系统的数据库;
S4、基于所述绑定结果及预设规则生成镜像构建文件,并利用所述镜像构建文件创建目标Docker镜像;
S5、通过所述目标Docker镜像启动算法服务的Docker容器,并利用所述Docker容器对外部提供所述目标算法的处理功能。
在具体实施时,S1中获取前端提交的目标算法的程序代码,是用户即开发人员将编好的程序代码(含脚本代码)从客户端提交。图2示意出了算法服务处理系统的结构,如图2所示,包括表现层、业务层和持久层,所述业务层包括Docker容器,表现层包括客户端服务,开发人员上传原始的程序代码时就工作在表现层。业务层和持久层属于服务端,业务层用于具体的算法管理服务,即包括对算法服务的各种处理操作,及被发布的算法服务,业务层包含有多个Docker容器,其中,所述Docker容器的数量随用户需求调整。持久层包含数据库服务和文件存储系统。算法服务处理系统基于浏览器和服务器架构模式搭建,用户通过浏览器打开的网页界面登录系统进行操作。系统基于Docker容器技术构建,支持单机和集群部署多种部署方式。除了被发布的算法服务是以Docker容器方式发布,客户端服务、算法管理服务和数据库服务均可以基于Docker容器进行发布,也可以通过传统的方式进行发布。系统的账号根据权限不同分为两种类型,分别为管理员和开发者。管理员具备开通账号和锁定账号的能力,能够给算法重新分配开发者,但开发者不具备上述能力。开发者具备管理自己上传的算法的权限,管理员同时也拥有开发者所具备所有权限。
在一种优选的实现方式中,获取前端提交的目标算法的程序代码之前还接收算法的相关信息,例如名称、归类、介绍、参数说明和使用方法等。不仅如此,用户上传算法脚本代码文件,也可以提交算法脚本的代码仓库地址,系统再根据这个代码仓库地址去获取到相应的代码。这里上述目标算法优选为Python算法。
进一步地,系统接收到目标算法的程序代码后,会解析所述目标算法的程序代码并确定出所述目标算法的程序代码的入口函数和依赖包,系统解析结果不一定百分百正确,需用户审核确认,如果有误,会更正。其中,确定出所述目标算法的程序代码的入口函数和依赖包时,首先根据代码里的函数相互依赖关系,获取代码中逻辑上处于最上层的函数作为预判的入口函数,然后根据引入的依赖包和依赖包库内最新的依赖包版本号预判依赖包信息。换言之,从目标算法的所有函数中解析出第一入口函数和第一依赖包;将第一入口函数和第一依赖包发送至客户端进行审核,若通过审核,将第一入口函数和第一依赖包作为目标算法的程序代码的入口函数和依赖包;若未通过审核,发送第二入口函数和第二依赖包至服务端,并将第二入口函数和第二依赖包作为目标算法的程序代码的入口函数和依赖包。将确定出的入口函数和依赖包与所述目标算法绑定,并将绑定结果存储至算法服务处理系统的数据库,其中,数据库位于持久层内。
在一种具体的实现方式中,基于绑定结果及预设规则生成镜像构建文件,并利用所述镜像构建文件创建目标Docker镜像,包括:根据所述绑定结果获取创建镜像构建文件Dockerfile所需的基础代码与依赖包;创建目录,并将所述基础代码与依赖包以及预设转化代码拷贝至所述目录下;在所述目录下,根据预设规则生成镜像构建文件,并利用所述镜像构建文件创建目标Docker镜像,其中,所述预设规则包括作用于所述基础代码与依赖包以及预设转化代码的规则。例如,要发布python算法服务,系统获取创建镜像构建文件Dockerfile所需的基础代码与依赖包,镜像的本质是文件和代码的集合,是一个包含程序运行必要依赖环境和代码的只读文件,因此具体操作时需要引入尽可能包含所有依赖包的基础镜像,拷贝基础代码,再安装其它依赖包,并为python算法生成一个目录,用于构建算法服务镜像,然后系统将python算法脚本代码拷贝到生成的目录内,系统在该目录内添加将算法脚本转化成算法服务的代码,最后在目录内根据预设的规则生成算法服务构建文件Dockerfile。系统根据Dockerfile生成python算法服务的Docker镜像,绑定算法服务的启动入口,最后通过算法服务的Docker镜像启动Docker容器来提供算法服务的发布。需要说明的是,上述预设规则本身就是一种代码,其体现的是代码执行规则。这里系统能自动检测算法依赖包信息和自动化添加服务端代码的功能,可以降低发布算法服务的门槛,简化发布算法服务的步骤。
在本申请的一些实施例中,算法服务处理系统包括表现层、业务层和持久层,所述业务层包括Docker容器,其中,所述Docker容器的数量随用户需求调整;如图3所示,所述目标服务处理包括服务发布、服务更新、服务删除等等。在利用所述Docker容器对所述目标算法进行目标服务发布后,所述业务层生成与发布的目标服务对应的调用接口,其中,所述调用接口可通过预设编程语言或通过HTTP请求调用,以调用发布的目标服务。
作为可变换的实施方式,调用算法服务可以通过算法服务处理系统访问算法服务Docker容器或通过直接访问算法服务Docker容器。前者的请求会先发送到算法服务处理系统,然后由算法服务处理系统转发到算法服务的Docker容器;后者的请求会直接发送到算法服务Docker容器。算法服务处理系统还可以根据预设的规则,通过监控算法服务的访问频率和各个算法服务Docker容器的资源使用情况,自动扩增或者缩减算法服务Docker容器的数量。系统也可以开放给用户自己调整容器数量的权限,用户能根据自己的需求调整Docker容器的数量,能实现python算法服务快速发布与部署,也便于算法服务在不同应用场景下的处理操作。
在一种优选的实施方式中,服务更新的步骤包括:用户通过客户端更新目标算法文件;基于与所述目标算法文件对应版本的Docker镜像和更新后的目标算法文件,通过预设规则生成镜像构建文件,并利用所述镜像构建文件创建目标Docker镜像;通过所述目标Docker镜像启动更新后的算法服务的Docker容器,并利用所述Docker容器对外部提供所述目标算法的处理功能;关闭与所述目标算法文件对应版本的Docker容器。这里用户通过客户端更新目标算法文件,表示用户通过客户端新增、更改和删除算法文件(即代码),所述目标算法文件对应版本的Docker镜像中的“版本”可以看作旧版本,而更新后的版本看作新版本。
在本申请的一些实施例中,所述目标服务处理还包括目标服务删除;所述目标服务删除的具体步骤包括:接收目标服务删除请求;清空与欲删除的目标服务对应的Docker容器;清除与欲删除的目标服务对应的Docker镜像以及构建所述Docker镜像所使用的文件。
本申请先获取前端提交的目标算法的程序代码,确定所述目标算法的程序代码的入口函数和依赖包,将确定出的入口函数和依赖包与所述目标算法绑定,并将绑定结果存储至算法服务处理系统的数据库,基于所述绑定结果及预设规则生成镜像构建文件,并利用所述镜像构建文件创建目标Docker镜像,通过所述目标Docker镜像启动算法服务处理系统的Docker容器,并利用所述Docker容器对外部提供所述目标算法的处理功能,能快速地进行多种目标操作,如发布、更新、删除等等,简单快捷,减少了服务测试、发布、部署等产生认为错误的发生率,从而提升了服务处理的效率,也减少了算法服务处理对人工操作的依赖。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
在本申请一些示例性实施例中,还提供了一种基于Docker容器的算法服务处理装置,执行本申请各实施例中所述的基于Docker容器的算法服务处理方法,如图4所示,所述装置包括:
获取模块401,被配置为获取用户提交的目标算法的程序代码;
确定模块402,被配置为确定所述目标算法的程序代码的入口函数和依赖包;
绑定模块403,被配置为将确定出的入口函数和依赖包与所述目标算法绑定,并将绑定结果存储至算法服务处理系统的数据库;
镜像模块404,被配置为基于所述绑定结果及预设规则生成镜像构建文件,并利用所述镜像构建文件创建目标Docker镜像;
处理模块405,被配置为通过所述目标Docker镜像启动算法服务的Docker容器,并利用所述Docker容器对外部提供所述目标算法的处理功能。
应当理解的是,所述基于Docker容器的算法服务处理装置包含有必要的硬件支撑,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
还需要强调的是,本申请实施例中提供的系统可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
下面请参考图5,其示出了本申请的一些实施方式所提供的一种计算机设备的示意图。如图5所示,所述计算机设备2包括:处理器200,存储器201,总线202和通信接口203,所述处理器200、通信接口203和存储器201通过总线202连接;所述存储器201中存储有可在所述处理器200上运行的计算机程序,所述处理器200运行所述计算机程序时执行本申请前述任一实施方式所提供的基于Docker容器的算法服务处理方法。
其中,存储器201可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口203(可以是有线或者无线)实现该系统网元与至少一个其它网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
总线202可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器201用于存储程序,所述处理器200在接收到执行指令后,执行所述程序,前述本申请实施例任一实施方式揭示的所述基于Docker容器的算法服务处理方法基于Docker容器的算法服务处理方法可以应用于处理器200中,或者由处理器200实现。
处理器200可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器200中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器200可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器201,处理器200读取存储器201中的信息,结合其硬件完成上述方法的步骤。
本申请实施方式还提供一种与前述实施方式所提供的基于Docker容器的算法服务处理方法对应的计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的基于Docker容器的算法服务处理方法。
另外,所述计算机可读存储介质的例子还可以包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其它类型的随机存取存储器(RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其它光学、磁性存储介质,在此不再一一赘述。
本申请实施方式还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述任意实施方式所提供的基于Docker容器的算法服务处理方法的步骤,所述方法包括:通过客户端获取用户提交的目标算法的程序代码;确定所述目标算法的程序代码的入口函数和依赖包;将确定出的入口函数和依赖包与所述目标算法绑定,并将绑定结果存储至算法服务处理系统的数据库;基于所述绑定结果及预设规则生成镜像构建文件,并利用所述镜像构建文件创建目标Docker镜像;通过所述目标Docker镜像启动算法服务处理系统的Docker容器,并利用所述Docker容器对外部提供所述目标算法的处理功能。
需要说明的是:在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备有固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本申请也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本申请的内容,并且上面对特定语言所做的描述是为了披露本申请的最佳实施方式。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
本领域那些技术人员可以理解,本申请的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器( DSP )来实现根据本申请实施例的虚拟机的创建装置中的一些或者全部部件的一些或者全部功能。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种基于Docker容器的算法服务处理方法,其特征在于,应用于算法服务处理系统,所述方法包括:
通过客户端获取用户提交的目标算法的程序代码;
确定所述目标算法的程序代码的入口函数和依赖包;
将确定出的入口函数和依赖包与所述目标算法绑定,并将绑定结果存储至算法服务处理系统的数据库;
基于所述绑定结果及预设规则生成镜像构建文件,并利用所述镜像构建文件创建目标Docker镜像;
通过所述目标Docker镜像启动算法服务处理系统的Docker容器,并利用所述Docker容器对外部提供所述目标算法的处理功能。
2.根据权利要求1所述的基于Docker容器的算法服务处理方法,其特征在于,所述算法服务处理系统包括表现层、业务层和持久层,所述业务层包括Docker容器,其中,所述Docker容器的数量随用户需求调整;所述基于Docker容器的算法服务处理包括服务发布、服务更新、服务删除。
3.根据权利要求2所述的基于Docker容器的算法服务处理方法,其特征在于,所述服务更新的步骤包括:
用户通过客户端更新目标算法文件;
基于与所述目标算法文件对应版本的Docker镜像和更新后的目标算法文件,通过预设规则生成镜像构建文件,并利用所述镜像构建文件创建目标Docker镜像;
通过所述目标Docker镜像启动与更新后的算法服务对应的Docker容器,并利用所述Docker容器对外部提供所述目标算法的处理功能;
关闭与所述目标算法文件对应版本的Docker容器。
4.根据权利要求2所述的基于Docker容器的算法服务处理方法,其特征在于,所述服务删除的步骤包括:
接收目标服务删除请求;
清空与欲删除的目标服务对应的Docker容器;
清除与欲删除的目标服务对应的Docker镜像以及构建所述Docker镜像所使用的文件。
5.根据权利要求1或2所述的基于Docker容器的算法服务处理方法,其特征在于,所述确定所述目标算法的程序代码的入口函数和依赖包,包括:
从所述目标算法的所有函数中解析出第一入口函数和第一依赖包;
将第一入口函数和第一依赖包发送至客户端让用户进行审核,若通过审核,将第一入口函数和第一依赖包作为所述目标算法的程序代码的入口函数和依赖包;
若未通过审核,发送第二入口函数和第二依赖包至服务端,并将第二入口函数和第二依赖包作为所述目标算法的程序代码的入口函数和依赖包。
6.根据权利要求1或2所述的基于Docker容器的算法服务处理方法,其特征在于,基于所述绑定结果及预设规则生成镜像构建文件,并利用所述镜像构建文件创建目标Docker镜像,包括:
根据所述绑定结果获取创建镜像构建文件所需的基础代码与依赖包;
创建目录,并将所述基础代码与依赖包以及预设转化代码拷贝至所述目录下;
在所述目录下,根据预设规则生成镜像构建文件,并利用所述镜像构建文件创建目标Docker镜像,其中,所述预设规则包括作用于所述基础代码与依赖包以及预设转化代码的规则。
7.根据权利要求6所述的基于Docker容器的算法服务处理方法,其特征在于,所述目标算法为Python算法。
8.一种基于Docker容器的算法服务处理装置,其特征在于,所述装置包括:
获取模块,被配置为获取用户提交的目标算法的程序代码;
确定模块,被配置为确定所述目标算法的程序代码的入口函数和依赖包;
绑定模块,被配置为将确定出的入口函数和依赖包与所述目标算法绑定,并将绑定结果存储至算法服务处理系统的数据库;
镜像模块,被配置为基于所述绑定结果及预设规则生成镜像构建文件,并利用所述镜像构建文件创建目标Docker镜像;
处理模块,被配置为通过所述目标Docker镜像启动算法服务的Docker容器,并利用所述Docker容器对外部提供所述目标算法的处理功能。
9.一种计算机设备,包括存储器和处理器,其特征在于,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行如权利要求1-7任一所述方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-7任一所述方法。
CN202211545773.9A 2022-12-05 2022-12-05 基于Docker容器的算法服务处理方法、装置及介质 Active CN115562690B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211545773.9A CN115562690B (zh) 2022-12-05 2022-12-05 基于Docker容器的算法服务处理方法、装置及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211545773.9A CN115562690B (zh) 2022-12-05 2022-12-05 基于Docker容器的算法服务处理方法、装置及介质

Publications (2)

Publication Number Publication Date
CN115562690A CN115562690A (zh) 2023-01-03
CN115562690B true CN115562690B (zh) 2023-04-18

Family

ID=84770168

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211545773.9A Active CN115562690B (zh) 2022-12-05 2022-12-05 基于Docker容器的算法服务处理方法、装置及介质

Country Status (1)

Country Link
CN (1) CN115562690B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116028069A (zh) * 2023-02-07 2023-04-28 之江实验室 一种模型部署的方法、装置、存储介质及电子设备
CN116301950B (zh) * 2023-05-15 2023-08-01 北京中诺链捷数字科技有限公司 Docker镜像生成方法、装置、设备和存储介质
CN117055880B (zh) * 2023-08-22 2024-05-03 广东保伦电子股份有限公司 一种基于容器化部署的文档转码方法、装置及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110413294A (zh) * 2019-08-06 2019-11-05 中国工商银行股份有限公司 服务发布系统、方法、装置和设备
CN114721659A (zh) * 2022-03-17 2022-07-08 阿里云计算有限公司 函数服务处理方法、装置及电子设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107766126B (zh) * 2017-11-15 2023-01-13 腾讯科技(深圳)有限公司 容器镜像的构建方法、系统、装置及存储介质
CN108415795B (zh) * 2018-02-12 2019-04-05 人和未来生物科技(长沙)有限公司 一种容器Dockerfile、容器镜像快速生成方法及系统
CN114721764A (zh) * 2020-12-18 2022-07-08 中兴通讯股份有限公司 业务编排部署方法、系统、网络设备和存储介质
CN114816445A (zh) * 2021-01-29 2022-07-29 中移(苏州)软件技术有限公司 系统平台架构、函数发布方法及装置、平台及存储介质
CN113849287A (zh) * 2021-09-27 2021-12-28 北京奇艺世纪科技有限公司 算法服务的处理方法、装置、电子设备及存储介质
CN114047938B (zh) * 2022-01-11 2023-05-26 北京向量栈科技有限公司 一种构建镜像的方法、装置、设备及可读存储介质
CN114896038A (zh) * 2022-04-28 2022-08-12 北京和利时系统工程有限公司 管理和调度数据分析算法的方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110413294A (zh) * 2019-08-06 2019-11-05 中国工商银行股份有限公司 服务发布系统、方法、装置和设备
CN114721659A (zh) * 2022-03-17 2022-07-08 阿里云计算有限公司 函数服务处理方法、装置及电子设备

Also Published As

Publication number Publication date
CN115562690A (zh) 2023-01-03

Similar Documents

Publication Publication Date Title
CN115562690B (zh) 基于Docker容器的算法服务处理方法、装置及介质
CN108287839B (zh) 一种页面加载方法和设备
CN104793946B (zh) 基于云计算平台的应用部署方法和系统
CN107766126B (zh) 容器镜像的构建方法、系统、装置及存储介质
US20210248487A1 (en) Framework management method and apparatus
WO2017053888A1 (en) Methods and systems for uploading a program based on a target network platform
US10620854B1 (en) Validating data for deployment
CN113885849B (zh) 基于工业互联网平台的应用开发方法、装置及终端设备
US11816458B2 (en) Method and system for packaging infrastructure as code
CN112346818A (zh) 一种容器应用部署方法、装置、电子设备和存储介质
CN111881473A (zh) 隐私文件保护方法、装置、计算机设备和可读存储介质
CN112451972A (zh) 基于游戏引擎的资源压缩包构建方法、装置、系统及介质
CN116257438A (zh) 接口测试用例的更新方法及相关设备
US20210026756A1 (en) Deriving software application dependency trees for white-box testing
CN113315754B (zh) 容器出访防火墙智能联动方法及装置、设备、介质
CN114489939A (zh) 一种组件部署方法、系统以及计算机可读介质
CN111651169B (zh) 基于web容器的区块链智能合约运行方法及系统
CN112256249A (zh) 扩展Android系统功能的方法、设备及计算机存储介质
CN116107623A (zh) 一种软件开发方法、装置及电子设备
CN116089004A (zh) 一种异构区块链间智能合约代码的迁移方法及装置
US20210349808A1 (en) Source quality check service
WO2020029995A1 (en) Application upgrading through sharing dependencies
US7082376B1 (en) State full test method executor
CN115543486B (zh) 面向无服务器计算的冷启动延迟优化方法、装置和设备
CN116991713B (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