CN114064155A - 基于容器的算法调用方法、装置、设备及存储介质 - Google Patents
基于容器的算法调用方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114064155A CN114064155A CN202210047148.5A CN202210047148A CN114064155A CN 114064155 A CN114064155 A CN 114064155A CN 202210047148 A CN202210047148 A CN 202210047148A CN 114064155 A CN114064155 A CN 114064155A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- container
- application
- container instance
- instance
- 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
Abstract
本发明涉及算法应用技术领域,公开了一种基于容器的算法调用方法、装置、设备及存储介质。基于容器的算法调用方法包括:获取待发布的算法对应的编排文件;对编排文件进行解析得到容器启动参数,根据容器启动参数,启动算法对应的算法容器实例并运行;创建用于调用算法容器实例的算法应用;配置算法应用的用户权限,并将算法应用发布至预置算法应用平台;获取客户端向算法应用平台发起的目标算法的调用请求;对客户端进行鉴权,若鉴权通过,则将调用请求转发至目标算法对应的算法容器实例进行处理。本发明提供了低门槛的算法调用方法,降低了算法应用的动态扩容的开发成本和维护成本,为算法能力的应用提供了系统性的管理和保障。
Description
技术领域
本发明涉及算法应用领域,尤其涉及一种基于容器的算法调用方法、装置、设备及存储介质。
背景技术
算法产品需要根据应用服务器的相关配置进行部署,底层硬件的差异导致算法产品需要进行定制化的部署,并且在对算法产品的算法能力进行扩展时,如实现负载均衡功能时,需要使用成本较高的硬件负载或需要手动维护的软件负载,这些都会提高人力成本、增加资源的消耗量。此外,由于硬件的复杂和差异,多算法仓的统一管理、升级、部署、接口调用也是现存的难题之一。
通过容器技术可以使算法脱离底层物理硬件的限制。容器引擎提供进程级别的隔离,但又能够共享很多底层资源。但在现有的技术中,尚无结合容器技术对多个算法进行便捷均衡调用的方法,导致软件研发和运维人员仍需花费大量时间精力对算法仓进行管理和维护。
发明内容
本发明的主要目的在于提供一种基于容器的算法调用方法、装置、设备及存储介质,旨在解决多算法仓管理、调用时资源成本高,维护困难的技术问题。
本发明第一方面提供了一种基于容器的算法调用方法,包括:
获取待发布的算法对应的编排文件;
对所述编排文件进行解析得到容器启动参数,根据所述容器启动参数,启动所述算法对应的算法容器实例并运行;
创建用于调用所述算法容器实例的算法应用;
配置所述算法应用的用户权限,并将所述算法应用发布至预置算法应用平台;
获取客户端向所述算法应用平台发起的目标算法的调用请求;
对所述客户端进行鉴权,若鉴权通过,则将所述调用请求转发至所述目标算法对应的算法容器实例进行处理。
可选的,在本发明第一方面的第一种实现方式中,所述对所述编排文件进行解析得到容器启动参数,根据所述容器启动参数,启动所述算法对应的算法容器实例并运行包括:
基于预置编排文件模板,对所述编排文件进行解析,得到容器启动参数;
基于所述容器启动参数,获取所述算法对应的容器配置接口;
根据所述容器启动参数和所述容器配置接口,启动所述算法对应的算法容器实例,并运行所述算法容器实例;
基于预置容器实例检测机制,对所述算法容器实例的运行过程进行监控,并基于监控结果,维护所述算法容器实例的正常运行状态。
可选的,在本发明第一方面的第二种实现方式中,所述基于预置容器实例检测机制,对所述算法容器实例的运行过程进行监控,并基于监控结果,维护所述算法容器实例的正常运行状态包括:
每隔预置时间向算法容器实例集群发送检测信息,以供所述算法容器实例通过所述容器配置接口接收所述检测信息;
通过所述容器配置接口接收所述算法容器实例响应所述检测信息后生成的运行状态信息,并根据所述运行状态信息判断所述容器实例集群中各算法容器实例的运行状态是否异常;
若所述算法容器实例的运行状态连续多次判断为异常,则确定所述算法容器实例异常,并重新运行存在异常的算法容器实例,否则确定所述算法容器实例正常并保持所述算法容器实例的运行状态。
可选的,在本发明第一方面的第三种实现方式中,所述配置所述算法应用的用户权限,并将所述算法应用发布至预置算法应用平台包括:
配置所述算法应用的用户名和密码,并以所述用户名和密码作为所述算法应用的用户权限;
将所述算法应用和所述用户权限发布至预置算法应用平台,并提供所述用户名和密码的获取渠道。
可选的,在本发明第一方面的第四种实现方式中,所述调用请求包括请求时间戳、客户端采用的用户名和密码、目标算法应用标识。
可选的,在本发明第一方面的第五种实现方式中,所述对所述客户端进行鉴权,若鉴权通过,则将所述调用请求转发至所述目标算法对应的算法容器实例进行处理包括:
基于预置鉴权规则,对所述客户端发起的所述调用请求中的用户名和密码进行鉴权;
若鉴权通过,则基于所述调用请求中的目标算法应用标识,获取目标算法应用对应的算法容器实例配置参数;
获取预置负载均衡策略,并基于所述负载均衡策略确定待调用的算法容器实例;
将所述调用请求转发至所述目标算法对应的算法容器实例进行处理并将处理结果返回所述客户端。
本发明第二方面提供了一种基于容器的算法调用装置,包括:
编排文件获取模块,用于获取待发布的算法对应的编排文件;
容器启动模块,用于对所述编排文件进行解析得到容器启动参数,根据所述容器启动参数,启动所述算法对应的算法容器实例并运行;
应用创建模块,用于创建用于调用所述算法容器实例的算法应用;
权限配置模块,用于配置所述算法应用的用户权限,并将所述算法应用发布至预置算法应用平台;
请求获取模块,用于获取客户端向所述算法应用平台发起的目标算法的调用请求;
鉴权处理模块,用于对所述客户端进行鉴权,若鉴权通过,则将所述调用请求转发至所述目标算法对应的算法容器实例进行处理。
可选的,在本发明第二方面的第一种实现方式中,所述容器启动模块还包括:
解析单元,用于基于预置编排文件模板,对所述编排文件进行解析,得到容器启动参数;
获取单元,用于基于所述容器启动参数,获取所述算法对应的容器配置接口;
启动单元,用于根据所述容器启动参数和所述容器配置接口,启动所述算法对应的算法容器实例,并运行所述算法容器实例;
运行维护单元,用于基于预置容器实例检测机制,对所述算法容器实例的运行过程进行监控,并基于监控结果,维护所述算法容器实例的正常运行状态。
可选的,在本发明第二方面的第二种实现方式中,所述运行维护单元具体用于:
每隔预置时间向算法容器实例集群发送检测信息,以供所述算法容器实例通过所述容器配置接口接收所述检测信息;
通过所述容器配置接口接收所述算法容器实例响应所述检测信息后生成的运行状态信息,并根据所述运行状态信息判断所述容器实例集群中各算法容器实例的运行状态是否异常;
若所述算法容器实例的运行状态连续多次判断为异常,则确定所述算法容器实例异常,并重新运行存在异常的算法容器实例,否则确定所述算法容器实例正常并保持所述算法容器实例的运行状态。
可选的,在本发明第二方面的第三种实现方式中,所述权限配置模块具体用于:
配置所述算法应用的用户名和密码,并以所述用户名和密码作为所述算法应用的用户权限;
将所述算法应用和所述用户权限发布至预置算法应用平台,并提供所述用户名和密码的获取渠道。
可选的,在本发明第二方面的第四种实现方式中,所述调用请求包括请求时间戳、客户端采用的用户名和密码、目标算法应用标识。
可选的,在本发明第二方面的第五种实现方式中,所述运行维护模块具体用于:
基于预置鉴权规则,对所述客户端发起的所述调用请求中的用户名和密码进行鉴权;
若鉴权通过,则基于所述调用请求中的目标算法应用标识,获取目标算法应用对应的算法容器实例配置参数;
获取预置负载均衡策略,并基于所述负载均衡策略确定待调用的算法容器实例;
将所述调用请求转发至所述目标算法对应的算法容器实例进行处理并将处理结果返回所述客户端。
本发明第三方面提供了一种电子设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述电子设备执行上述的基于容器的算法调用方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的基于容器的算法调用方法。
本发明提供的技术方案中,对获取的编排文件进行解析得到容器启动参数,根据容器启动参数启动算法容器实例并运行,然后创建算法应用作为调用算法容器实例的媒介。为算法应用配置用户权限并发布于算法应用平台上,根据客户端的调用请求对用户权限进行鉴权,若鉴权通过则能调用算法容器实例。本发明提供了低门槛的算法调用方法,降低了算法应用动态扩容的开发成本和维护成本,为算法能力的应用提供了系统性的管理和保障。
附图说明
图1为本发明实施例中基于容器的算法调用方法的一个实施例示意图;
图2为本发明实施例中基于容器的算法调用方法的另一个实施例示意图;
图3为本发明实施例中基于容器的算法调用装置的一个实施例示意图;
图4为本发明实施例中基于容器的算法调用装置的另一个实施例示意图;
图5为本发明实施例中电子设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种基于容器的算法调用方法、装置、设备及存储介质,通过对获取的编排文件进行解析得到容器启动参数,根据容器启动参数启动算法容器实例并运行,然后创建算法应用作为调用算法容器实例的媒介。为算法应用配置用户权限并发布于算法应用平台上,根据客户端的调用请求对用户权限进行鉴权,若鉴权通过则能调用算法容器实例。本发明提供了低门槛的算法调用方法,降低了算法应用动态扩容的开发成本和维护成本,为算法能力的应用提供了系统性的管理和保障。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中基于容器的算法调用方法的一个实施例包括:
101、获取待发布的算法对应的编排文件;
可以理解的是,本发明的执行主体可以为基于容器的算法调用装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
本实施例中,待发布的算法不限,包括但不限于新算法、升级后的已有算法。
本实施例中,编排文件的获取方式不限,包括但不限于获取web端或第三方平台上传的编排文件。
本实施例中,编排文件按预置模板进行编排,包括但不限于声明算法是否支持GPU,声明支持的平台、支持的系统架构、算法模型文件、算法版本号以及相关检测参数等。
102、对所述编排文件进行解析得到容器启动参数,根据所述容器启动参数,启动所述算法对应的算法容器实例并运行;
本实施例中,容器是一个视图隔离、资源可限制、独立文件系统的进程集合。视图隔离就是能够看到部分进程以及具有独立的主机名等;资源可限制则是可以对于内存大小以及 CPU 使用个数等进行限制;容器具有一个独立的文件系统,因为使用的是系统的资源,所以在独立的文件系统内不需要具备内核相关的代码或者工具,只需要提供容器所需的编排文件以及依赖即可。只要容器运行时所需的文件集合都能够具备,那么这个容器就能够运行起来。算法容器实例是将算法产品部署到容器中得到的。
本实施例中,容器启动参数不限,包括但不限于容器的交互模式参数、端口映射参数、容器环境变量参数、容器名、目录映射关系参数。
本实施例中,解析指在定义通信协议的前提下,交互两端通过该协议进行交互时,将各编排文件中的命令解析为计算机可理解并进行执行的指令集的配套应用,包括但不限于在协议中定义了name字段表示算法,传输方在协议中传输name:tobacco_detect,接收方就知道算法名称为tobacco_detect。
103、创建用于调用所述算法容器实例的算法应用;
本实施例中,算法应用是发布于平台上的应用,可以为用户提供调用算法容器实例的服务。
本实施例中,本实施例中,创建方式包括但不限于新增算法容器实例,对算法容器实例进行命名和排序以及管理选项的配置。
104、配置所述算法应用的用户权限,并将所述算法应用发布至预置算法应用平台;
本实施例中,用户权限控制对算法容器实例的访问权限以及管理权限,并且可以覆盖已对特定对象设置的权限,针对不同的对象,可以设置不同的权限。
本实施例中,配置指为算法应用分配对应的用户权限。
本实施例中,预置算法应用平台是一个多算法的管理平台,各个算法实例之间相互隔离,会对调用算法的客户端进行统一的鉴权。
105、获取客户端向所述算法应用平台发起的目标算法的调用请求;
本实施例中,目标算法指客户端需要调用的算法。
106、对所述客户端进行鉴权,若鉴权通过,则将所述调用请求转发至所述目标算法对应的算法容器实例进行处理。
本实施例中,鉴权是指验证用户是否拥有调用算法的权利,鉴权方法不限,包括但不限于:HTTP Basic Authentication方法、Session-Cookie方法、Token 验证方法、OAuth(开放授权)方法。
本实施例中,处理指通过算法容器实例调用目标算法处理相应问题。
本发明实施例中,阐述了一种基于容器的算法调用方法,通过对获取的编排文件进行解析得到容器启动参数,根据容器启动参数启动算法容器实例并运行,然后创建算法应用作为调用算法容器实例的媒介。为算法应用配置用户权限并发布于算法应用平台上,根据客户端的调用请求对用户权限进行鉴权,若鉴权通过则能调用算法容器实例。本发明提供了低门槛的算法调用方法,降低了算法应用动态扩容的开发成本和维护成本,为算法能力的应用提供了系统性的管理和保障。
请参阅图2,本发明实施例中基于容器的算法调用方法的另一个实施例包括:
201、获取待发布的算法对应的编排文件;
202、基于预置编排文件模板,对所述编排文件进行解析,得到容器启动参数;
203、基于所述容器启动参数,获取所述算法对应的容器配置接口;
本实施例中,容器配置接口是指容器对外部进行衔接的约定,容器配置接口不限,包括但不限于镜像管理接口、用户管理操作接口、启动运维接口。
204、根据所述容器启动参数和所述容器配置接口,启动所述算法对应的算法容器实例,并运行所述算法容器实例;
本实施例中,启动指通过启动运维接口基于容器启动参数启动算法容器实例,并读取容器启动日志,判断算法容器实例的启用状态。
本实施例中,运行算法容器实例时存在两种运行状态,包括正常运行状态和异常运行状态。
205、基于预置容器实例检测机制,对所述算法容器实例的运行过程进行监控,并基于监控结果,维护所述算法容器实例的正常运行状态;
本实施例中,预置容器检测机制通过检测信息的传递触发算法容器实例响应检测,发送算法容器实例的运行状态,以检测容器是否正常运行。
可选的,在一实施例中,步骤205还包括:
每隔预置时间向算法容器实例集群发送检测信息,以供所述算法容器实例通过所述容器配置接口接收所述检测信息;
通过所述容器配置接口接收所述算法容器实例响应所述检测信息后生成的运行状态信息,并根据所述运行状态信息判断所述容器实例集群中各算法容器实例的运行状态是否异常;
若所述算法容器实例的运行状态连续多次判断为异常,则确定所述算法容器实例异常,并重新运行存在异常的算法容器实例,否则确定所述算法容器实例正常并保持所述算法容器实例的运行状态。
本实施例中,预置时间不限,包括但不限于设定间隔的时间为5s、8s、1min、10min。
本实施例中,检测信息指检测与被检测双方规定的一个信息,可以是一个数字、一串字符、也可以是一个结构对象,只要被检测方能够触发响应即可。
本实施例中,响应内容不限,包括但不限于当前容器的运行状态,例如运行中,或者已停止(运行状态异常)。
本实施例中,算法容器实例异常的判定条件是运行状态连续多次异常,此处连续次数不限,包括但不限于3次、5次。
本实施例中,重新运行指根据容器启动参数和容器配置接口,启动算法对应的算法容器实例,并运行算法容器实例。
206、创建用于调用所述算法容器实例的算法应用;
207、配置所述算法应用的用户权限,并将所述算法应用发布至预置算法应用平台;
可选的,在一实施例中,步骤206还包括:
配置所述算法应用的用户名和密码,并以所述用户名和密码作为所述算法应用的用户权限;
将所述算法应用和所述用户权限发布至预置算法应用平台,并提供所述用户名和密码的获取渠道。
本实施例中,客户端用户使用账号调用算法应用,用户名代表用户在客户端的账号名称。
本实施例中,密码是客户端调用算法的凭证,通过鉴权验证用户名和密码是否正确,鉴权通过后,客户端则可以调用算法。
本实施例中,获取渠道不限,包括但不限于在算法应用平台上订阅目标算法的算法应用。
208、获取客户端向所述算法应用平台发起的目标算法的调用请求;
可选的,在一实施例中,所述调用请求还包括:请求时间戳、客户端采用的用户名和密码、目标算法应用标识。
本实施例中,请求时间戳是一份能够表示调用请求在一个特定时间点已经存在的完整的可验证的数据。
本实施例中,目标算法应用标识指目标算法对应的算法应用的参数标识。
209、对所述客户端进行鉴权,若鉴权通过,则将所述调用请求转发至所述目标算法对应的算法容器实例进行处理。
可选的,在一实施例中,所述步骤209还包括:
基于预置鉴权规则,对所述客户端发起的所述调用请求中的用户名和密码进行鉴权;
若鉴权通过,则基于所述调用请求中的目标算法应用标识,获取目标算法应用对应的算法容器实例配置参数;
获取预置负载均衡策略,并基于所述负载均衡策略确定待调用的算法容器实例;
将所述调用请求转发至所述目标算法对应的算法容器实例进行处理并将处理结果返回所述客户端。
本实施例中,预置鉴权规则指将用户名和密码按一定规则添加到调用请求中,鉴权时对用户名和密码与数据库中的用户名和密码进行对比验证,如果用户名和密码正确,则鉴权通过。
本实施例中,算法容器实例配置参数指算法容器实例集群对应的参数,算法容器实例集群是一组相互独立的、通过高速网络互联的算法容器实例,它们构成了一个组,并以单一系统的模式加以管理。与集群交互时,集群像是一个独立的服务器。采用算法容器集群集群来配置是为了提高算法容器实例的可用性和可缩放性。
本实施例中,负载均衡策略指,当处理大量用户请求时,将请求尽量均衡地分配到多台服务器进行处理的方法,每台服务器处理其中一部分而不是所有的用户请求,以完成高并发的请求处理,避免因单机处理能力的上限,导致系统崩溃而无法提供服务的问题。负载均衡策略不限,包括但不限于轮询法、源地址哈希法、加权轮询法、随机法、加权随机法等。
本实施例中,处理结果指客户端通过调用算法应用来利用算法容器实例对问题进行处理后得到的处理结果。
本发明实施例中,提供了具体的算法调用方法,对获取的编排文件进行解析得到容器启动参数,根据容器启动参数启动算法容器实例并运行,检测并维护算法容器实例的运行状态,然后创建算法应用作为调用算法容器实例的媒介。为算法应用配置用户权限并发布于算法应用平台上,根据客户端的调用请求对用户权限进行鉴权,若鉴权通过则利用负载均衡策略调用算法容器实例。本发明通过检测机制和鉴权规则,降低了负载均衡的开发成本和维护成本,为算法能力的应用提供了系统性的管理和保障,提供了低门槛的算法调用方法。
上面对本发明实施例中基于容器的算法调用方法进行了描述,下面对本发明实施例中基于容器的算法调用装置进行描述,请参阅图3,本发明实施例中基于容器的算法调用装置一个实施例包括:
编排文件获取模块301,用于获取待发布的算法对应的编排文件;
容器启动模块302,用于对所述编排文件进行解析得到容器启动参数,根据所述容器启动参数,启动所述算法对应的算法容器实例并运行;
应用创建模块303,用于创建用于调用所述算法容器实例的算法应用;
权限配置模块304,用于配置所述算法应用的用户权限,并将所述算法应用发布至预置算法应用平台;
请求获取模块305,用于获取客户端向所述算法应用平台发起的目标算法的调用请求;
鉴权处理模块306,用于对所述客户端进行鉴权,若鉴权通过,则将所述调用请求转发至所述目标算法对应的算法容器实例进行处理。
本发明实施例中,构建了一种基于容器的算法调用装置,通过编排文件获取模块获取的编排文件,再利用容器启动模块对编排文件进行解析得到容器启动参数,根据容器启动参数启动算法容器实例并运行,然后利用应用创建模块创建算法应用作为调用算法容器实例的媒介。权限配置模块为算法应用配置用户权限并发布于算法应用平台上,根据客户端的调用请求对用户权限进行鉴权,若鉴权通过则能调用算法容器实例。本发明提供了低门槛的算法调用方法,降低了算法应用动态扩容的开发成本和维护成本,为算法能力的应用提供了系统性的管理和保障。
请参阅图4,本发明实施例中基于容器的算法调用装置的另一个实施例包括:
编排文件获取模块301,用于获取待发布的算法对应的编排文件;
容器启动模块302,用于对所述编排文件进行解析得到容器启动参数,根据所述容器启动参数,启动所述算法对应的算法容器实例并运行;
应用创建模块303,用于创建用于调用所述算法容器实例的算法应用;
权限配置模块304,用于配置所述算法应用的用户权限,并将所述算法应用发布至预置算法应用平台;
请求获取模块305,用于获取客户端向所述算法应用平台发起的目标算法的调用请求;
鉴权处理模块306,用于对所述客户端进行鉴权,若鉴权通过,则将所述调用请求转发至所述目标算法对应的算法容器实例进行处理。
可选的,容器启动模块302还包括:
解析单元3021,用于基于预置编排文件模板,对所述编排文件进行解析,得到容器启动参数;
获取单元3022,用于基于所述容器启动参数,获取所述算法对应的容器配置接口;
启动单元3023,用于根据所述容器启动参数和所述容器配置接口,启动所述算法对应的算法容器实例,并运行所述算法容器实例;
运行维护单元3024,用于基于预置容器实例检测机制,对所述算法容器实例的运行过程进行监控,并基于监控结果,维护所述算法容器实例的正常运行状态。
进一步可选的,运行维护单元3024具体用于:
每隔预置时间向算法容器实例集群发送检测信息,以供所述算法容器实例通过所述容器配置接口接收所述检测信息;
通过所述容器配置接口接收所述算法容器实例响应所述检测信息后生成的运行状态信息,并根据所述运行状态信息判断所述容器实例集群中各算法容器实例的运行状态是否异常;
若所述算法容器实例的运行状态连续多次判断为异常,则确定所述算法容器实例异常,并重新运行存在异常的算法容器实例,否则确定所述算法容器实例正常并保持所述算法容器实例的运行状态。
可选的,权限配置模块304还可以具体用于:
配置所述算法应用的用户名和密码,并以所述用户名和密码作为所述算法应用的用户权限;
将所述算法应用和所述用户权限发布至预置算法应用平台,并提供所述用户名和密码的获取渠道。
可选的,请求获取模块305中,所述调用请求还包括:请求时间戳、客户端采用的用户名和密码、目标算法应用标识。
可选的,鉴权处理模块306还可以具体用于:
基于预置鉴权规则,对所述客户端发起的所述调用请求中的用户名和密码进行鉴权;
若鉴权通过,则基于所述调用请求中的目标算法应用标识,获取目标算法应用对应的算法容器实例配置参数;
获取预置负载均衡策略,并基于所述负载均衡策略确定待调用的算法容器实例;
将所述调用请求转发至所述目标算法对应的算法容器实例进行处理并将处理结果返回所述客户端。
本发明实施例中,提供了具体的算法调用方法,对获取的编排文件进行解析得到容器启动参数,根据容器启动参数启动算法容器实例并运行,检测并维护算法容器实例的运行状态,然后创建算法应用作为调用算法容器实例的媒介。为算法应用配置用户权限并发布于算法应用平台上,根据客户端的调用请求对用户权限进行鉴权,若鉴权通过则利用负载均衡策略调用算法容器实例。本发明通过检测机制和鉴权规则,降低了负载均衡的开发成本和维护成本,为算法能力的应用提供了系统性的管理和保障,提供了低门槛的算法调用方法。
上面图3和图4从模块化功能实体的角度对本发明实施例中的基于容器的算法调用装置进行详细描述,下面从硬件处理的角度对本发明实施例中电子设备进行详细描述。
图5是本发明实施例提供的一种电子设备的结构示意图,该电子设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processingunits,CPU)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对电子设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在电子设备500上执行存储介质530中的一系列指令操作。
电子设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图5示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种电子设备,所述电子设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述基于容器的算法调用方法的步骤。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述基于容器的算法调用方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于容器的算法调用方法,其特征在于,所述算法调用方法包括:
获取待发布的算法对应的编排文件;
对所述编排文件进行解析得到容器启动参数,根据所述容器启动参数,启动所述算法对应的算法容器实例并运行;
创建用于调用所述算法容器实例的算法应用;
配置所述算法应用的用户权限,并将所述算法应用发布至预置算法应用平台;
获取客户端向所述算法应用平台发起的目标算法的调用请求;
对所述客户端进行鉴权,若鉴权通过,则将所述调用请求转发至所述目标算法对应的算法容器实例进行处理。
2.根据权利要求1所述的基于容器的算法调用方法,其特征在于,所述对所述编排文件进行解析得到容器启动参数,根据所述容器启动参数,启动所述算法对应的算法容器实例并运行包括:
基于预置编排文件模板,对所述编排文件进行解析,得到容器启动参数;
基于所述容器启动参数,获取所述算法对应的容器配置接口;
根据所述容器启动参数和所述容器配置接口,启动所述算法对应的算法容器实例,并运行所述算法容器实例;
基于预置容器实例检测机制,对所述算法容器实例的运行过程进行监控,并基于监控结果,维护所述算法容器实例的正常运行状态。
3.根据权利要求2所述的基于容器的算法调用方法,其特征在于,所述基于预置容器实例检测机制,对所述算法容器实例的运行过程进行监控,并基于监控结果,维护所述算法容器实例的正常运行状态包括:
每隔预置时间向算法容器实例集群发送检测信息,以供所述算法容器实例通过所述容器配置接口接收所述检测信息;
通过所述容器配置接口接收所述算法容器实例响应所述检测信息后生成的运行状态信息,并根据所述运行状态信息判断所述容器实例集群中各算法容器实例的运行状态是否异常;
若所述算法容器实例的运行状态连续多次判断为异常,则确定所述算法容器实例异常,并重新运行存在异常的算法容器实例,否则确定所述算法容器实例正常并保持所述算法容器实例的运行状态。
4.根据权利要求1所述的基于容器的算法调用方法,其特征在于,所述配置所述算法应用的用户权限,并将所述算法应用发布至预置算法应用平台包括:
配置所述算法应用的用户名和密码,并以所述用户名和密码作为所述算法应用的用户权限;
将所述算法应用和所述用户权限发布至预置算法应用平台,并提供所述用户名和密码的获取渠道。
5.根据权利要求1所述的基于容器的算法调用方法,其特征在于,所述调用请求包括请求时间戳、客户端采用的用户名和密码、目标算法应用标识。
6.根据权利要求5所述的基于容器的算法调用方法,其特征在于,所述对所述客户端进行鉴权,若鉴权通过,则将所述调用请求转发至所述目标算法对应的算法容器实例进行处理包括:
基于预置鉴权规则,对所述客户端发起的所述调用请求中的用户名和密码进行鉴权;
若鉴权通过,则基于所述调用请求中的目标算法应用标识,获取目标算法应用对应的算法容器实例配置参数;
获取预置负载均衡策略,并基于所述负载均衡策略确定待调用的算法容器实例;
将所述调用请求转发至所述目标算法对应的算法容器实例进行处理并将处理结果返回所述客户端。
7.一种基于容器的算法调用装置,其特征在于,所述算法调用装置包括:
编排文件获取模块,用于获取待发布的算法对应的编排文件;
容器启动模块,用于对所述编排文件进行解析得到容器启动参数,根据所述容器启动参数,启动所述算法对应的算法容器实例并运行;
应用创建模块,用于创建用于调用所述算法容器实例的算法应用;
权限配置模块,用于配置所述算法应用的用户权限,并将所述算法应用发布至预置算法应用平台;
请求获取模块,用于获取客户端向所述算法应用平台发起的目标算法的调用请求;
鉴权处理模块,用于对所述客户端进行鉴权,若鉴权通过,则将所述调用请求转发至所述目标算法对应的算法容器实例进行处理。
8.根据权利要求7所述的基于容器的算法调用装置,其特征在于,所述容器启动模块包括:
解析单元,用于基于预置编排文件模板,对所述编排文件进行解析,得到容器启动参数;
获取单元,用于基于所述容器启动参数,获取所述算法对应的容器配置接口;
启动单元,用于根据所述容器启动参数和所述容器配置接口,启动所述算法对应的算法容器实例,并运行所述算法容器实例;
监控单元,用于基于预置容器实例检测机制,对所述算法容器实例的运行过程进行监控,并基于监控结果,维护所述算法容器实例的正常运行状态。
9.一种电子设备,其特征在于,所述电子设备包括:存储器和至少一个处理器,所述存储器中存储有指令;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述电子设备执行如权利要求1-6中任一项所述的基于容器的算法调用方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现如权利要求1-6中任一项所述的基于容器的算法调用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210047148.5A CN114064155A (zh) | 2022-01-17 | 2022-01-17 | 基于容器的算法调用方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210047148.5A CN114064155A (zh) | 2022-01-17 | 2022-01-17 | 基于容器的算法调用方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114064155A true CN114064155A (zh) | 2022-02-18 |
Family
ID=80231443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210047148.5A Pending CN114064155A (zh) | 2022-01-17 | 2022-01-17 | 基于容器的算法调用方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114064155A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114647404A (zh) * | 2022-05-23 | 2022-06-21 | 深圳市华付信息技术有限公司 | 基于工作流对算法模型进行编排的方法、装置及介质 |
CN114745260A (zh) * | 2022-03-09 | 2022-07-12 | 优刻得科技股份有限公司 | 内容分发网络的计算力增强方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108958927A (zh) * | 2018-05-31 | 2018-12-07 | 康键信息技术(深圳)有限公司 | 容器应用的部署方法、装置、计算机设备和存储介质 |
CN110224860A (zh) * | 2019-05-17 | 2019-09-10 | 平安科技(深圳)有限公司 | 负载均衡应用创建方法、装置、计算机设备及存储介质 |
CN110245003A (zh) * | 2019-06-06 | 2019-09-17 | 中信银行股份有限公司 | 一种机器学习单机算法编排系统及方法 |
CN111880821A (zh) * | 2020-09-28 | 2020-11-03 | 深圳市城市交通规划设计研究中心股份有限公司 | 一种基于容器化的交通算法标准化封装方法 |
CN112114778A (zh) * | 2020-07-03 | 2020-12-22 | 上海金融期货信息技术有限公司 | 一种支持水平扩展的跨平台动态库算法管理系统 |
US20210089361A1 (en) * | 2019-09-20 | 2021-03-25 | Dell Products L.P. | Resource management for software containers using container profiles |
-
2022
- 2022-01-17 CN CN202210047148.5A patent/CN114064155A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108958927A (zh) * | 2018-05-31 | 2018-12-07 | 康键信息技术(深圳)有限公司 | 容器应用的部署方法、装置、计算机设备和存储介质 |
CN110224860A (zh) * | 2019-05-17 | 2019-09-10 | 平安科技(深圳)有限公司 | 负载均衡应用创建方法、装置、计算机设备及存储介质 |
CN110245003A (zh) * | 2019-06-06 | 2019-09-17 | 中信银行股份有限公司 | 一种机器学习单机算法编排系统及方法 |
US20210089361A1 (en) * | 2019-09-20 | 2021-03-25 | Dell Products L.P. | Resource management for software containers using container profiles |
CN112114778A (zh) * | 2020-07-03 | 2020-12-22 | 上海金融期货信息技术有限公司 | 一种支持水平扩展的跨平台动态库算法管理系统 |
CN111880821A (zh) * | 2020-09-28 | 2020-11-03 | 深圳市城市交通规划设计研究中心股份有限公司 | 一种基于容器化的交通算法标准化封装方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114745260A (zh) * | 2022-03-09 | 2022-07-12 | 优刻得科技股份有限公司 | 内容分发网络的计算力增强方法、装置、设备及存储介质 |
CN114745260B (zh) * | 2022-03-09 | 2024-04-02 | 优刻得科技股份有限公司 | 内容分发网络的计算力增强方法、装置、设备及存储介质 |
CN114647404A (zh) * | 2022-05-23 | 2022-06-21 | 深圳市华付信息技术有限公司 | 基于工作流对算法模型进行编排的方法、装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108549580B (zh) | 自动部署Kubernetes从节点的方法及终端设备 | |
EP3511823A1 (en) | Method and system of managing artifacts during its lifecycle on a cloud computing system | |
US11496323B1 (en) | Systems and methods for container orchestration security | |
US8019835B2 (en) | Automated provisioning of computing networks using a network database data model | |
US7152109B2 (en) | Automated provisioning of computing networks according to customer accounts using a network database data model | |
EP3298757B1 (en) | Custom communication channels for application deployment | |
US7743147B2 (en) | Automated provisioning of computing networks using a network database data model | |
US7131123B2 (en) | Automated provisioning of computing networks using a network database model | |
US9507927B2 (en) | Dynamic identity switching | |
US20040226010A1 (en) | Automated provisioning framework for internet site servers | |
US20030131246A1 (en) | Virtual media from a directory service | |
US20160179494A1 (en) | Integration of an arbitrary server installed as an extension of a computing platform | |
CN114064155A (zh) | 基于容器的算法调用方法、装置、设备及存储介质 | |
EP2527978A2 (en) | Methods for selecting between a predetermined number of execution methods for an application program | |
JP2013218687A (ja) | サーバー監視システム及びその方法 | |
EP1514183A2 (en) | Distributed computer | |
WO2021061419A1 (en) | Template-based onboarding of internet-connectible devices | |
WO2022011055A2 (en) | A System and Method for Simplifying User Authentication and Authorization Workflows | |
CN115701019A (zh) | 零信任网络的访问请求处理方法、装置及电子设备 | |
CN112954040A (zh) | 嵌入应用发布服务器的方法、系统、设备及存储介质 | |
CN108112268B (zh) | 管理与自动扩展组相关的负载平衡器 | |
WO2022006472A1 (en) | A system and method for configuring and deploying software infrastructure | |
CN116627595A (zh) | 一种虚拟机创建方法及相关组件 | |
WO2002039257A2 (en) | Automated provisioning framework for internet site servers | |
CN111176782B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220218 |