CN113220308A - 用于部署及提供服务的方法、电子设备和存储介质 - Google Patents

用于部署及提供服务的方法、电子设备和存储介质 Download PDF

Info

Publication number
CN113220308A
CN113220308A CN202110654402.3A CN202110654402A CN113220308A CN 113220308 A CN113220308 A CN 113220308A CN 202110654402 A CN202110654402 A CN 202110654402A CN 113220308 A CN113220308 A CN 113220308A
Authority
CN
China
Prior art keywords
service
image
address
code
user terminal
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
Application number
CN202110654402.3A
Other languages
English (en)
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.)
NextVPU Shanghai Co Ltd
Original Assignee
NextVPU Shanghai 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 NextVPU Shanghai Co Ltd filed Critical NextVPU Shanghai Co Ltd
Priority to CN202110654402.3A priority Critical patent/CN113220308A/zh
Publication of CN113220308A publication Critical patent/CN113220308A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • 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/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

提供一种用于部署及提供服务的方法、电子设备和存储介质。用于部署服务的方法包括:获取服务配置信息,服务配置信息包括服务代码的地址以及用于服务的框架的标识;从上述地址获取服务代码;获取上述标识对应的框架;以及对服务代码和框架进行编译,生成用于提供上述服务的服务镜像。利用本公开提供的部署服务的方法,可以提高服务部署的效率和灵活性,降低开发者的学习成本。

Description

用于部署及提供服务的方法、电子设备和存储介质
技术领域
本公开涉及网络应用开发技术领域,特别涉及一种用于部署及提供服务的方法、电子设备和存储介质。
背景技术
网络服务(web service,下文简称“服务”)是一种在网络上运行的、用于实现特定功能的软件模块。服务的代码由开发者进行编写。当开发者编写完某个(或某些)服务的代码后,可以将该服务部署至服务器中。随后,服务器便可以向用户提供该服务。
在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。
发明内容
本公开提供一种用于部署及提供服务的方法、电子设备和存储介质,以实现对服务的高效部署。
根据本公开的一方面,提供一种用于部署服务的方法。该方法包括:获取服务配置信息,服务配置信息包括服务代码的地址以及用于服务的框架的标识;从上述地址获取服务代码;获取上述标识对应的框架;以及对服务代码和框架进行编译,生成用于提供上述服务的服务镜像。
根据本公开的另一方面,提供一种用于部署服务的方法。该方法包括:获取服务对应的服务镜像,其中,服务镜像是通过对该服务的服务代码和用于该服务的框架进行编译而生成的;基于服务镜像,启动镜像实例;以及确定镜像实例对应的服务接口,以便响应于用户终端对服务接口的访问而调用镜像实例,以向用户终端提供该服务。
根据本公开的另一方面,提供一种用于提供服务的方法。该方法包括:响应于用户终端对服务接口的访问,根据预设的服务接口与镜像实例的对应关系,确定用于提供服务的目标镜像实例;以及调用目标镜像实例,以向用户终端提供服务,该服务根据上述任一方面的方法部署。
根据本公开的另一方面,提供一种电子设备。该电子设备包括:处理器;以及存储程序的存储器,该程序包括指令,该指令在由处理器执行时使处理器执行根据上述任一方面的方法。
根据本公开的另一方面,提供一种存储程序的非暂态计算机可读存储介质。该程序包括指令,该指令在由电子设备的处理器执行时,致使电子设备执行根据上述任一方面的方法。
根据本公开的另一方面,提供一种计算机程序产品。该计算机程序产品包括计算机程序,该计算机程序在被处理器执行时实现根据上述任一方面的方法。
根据本公开的实施例,服务器根据服务配置信息,获取服务代码和用于该服务的框架,并将服务代码和框架进行编译,生成用于向用户终端提供服务的服务镜像。服务器根据服务配置信息自动进行服务部署,大大提高了服务部署效率。并且,所生成的服务镜像便于在不同服务器间进行迁移,从而提高了服务部署的灵活性,能够实现高效的服务迁移。对于开发者来说,开发者仅需上传服务配置信息,无需对服务器进行复杂的软件安装和配置操作,大大简化了开发者的操作步骤,降低了学习成本,提高了服务部署效率。
根据在下文中所描述的实施例,本公开的这些和其它方面将是清楚明白的,并且将参考在下文中所描述的实施例而被阐明。
附图说明
附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
图1是示出根据示例性实施例的可以在其中实施本文所描述的各种方法的示例系统的示意图;
图2是示出根据示例性实施例的用于部署服务的方法的流程图;
图3是示出根据示例性实施例的部署AI服务的过程的示意图;
图4是示出根据另一示例性实施例的用于部署服务的方法的流程图;
图5是示出根据另一示例性实施例的部署AI服务的过程的示意图;
图6是示出根据示例性实施例的用于提供服务的方法的流程图;
图7是示出根据本公开的示例性实施例的电子设备的示例的框图。
具体实施方式
在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。此外,本公开中所使用的术语“和/或”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
网络服务用于实现特定的功能。在一些实施例中,网络服务可以用于对用户提供的信息或内容进行特定处理,以得到用户期望的结果。例如,图像美化服务可以对用户上传的图像进行美化;图像修复服务可以对用户上传的模糊或缺失细节的图像进行修复;机器翻译服务可以将用户指定的文本由一种语言翻译成另一种语言;语音识别服务可以将用户的语音数据转化为文本;信息检索服务可以根据用户指定的检索条件来检索出相关信息,等等。在一些情况中,服务可以通过人工智能(Artificial Intelligence,AI)模型来实现。例如,涉及图像处理的服务(例如上述图像美化服务、图像修复服务等)、涉及自然语言处理的服务(例如上述机器翻译服务)、涉及语音处理的服务(例如上述语音识别服务)可以采用诸如卷积神经网络模型(CNN)、BERT模型、LSTM模型等神经网络模型来实现。除非另行说明,下文中的“服务”均指的是网络服务。
服务中使用的代码(下文称为“服务代码”)由开发者进行编写。当开发者编写完成服务代码后,可以将该服务部署至服务器中。随后,服务器便可以向用户提供该服务。
在相关技术中,开发者在部署服务时,需要针对服务器的机型、操作系统来安装适配的服务器软件环境,例如安装Nginx、WSGI、Flask等软件环境,并且需要根据服务代码所使用的开发环境和编程语言来对各服务器软件环境进行配置,使服务器软件环境与服务代码的开发环境和编程语言一致。在服务通过AI模型实现(即服务代码包括AI模型)的情况下,服务部署还需要考虑服务器与AI模型所使用的AI框架(常见的AI框架包括TensorFlow、PyTorch、OpenCV等)的兼容性。服务部署操作繁琐,部署效率低,不便于进行服务迁移。
针对相关技术中存在的问题,本公开提供一种用于部署及提供服务的方法、电子设备和存储介质,以实现对服务的高效部署。以下结合附图详细描述本公开的实施例。
图1示出了根据本公开实施例的可以在其中实施本文所描述的各种方法的示例系统100的示意图。如图1所示,该系统100包括开发终端110、服务器120、网络130和用户终端140,网络130将服务器120与开发终端110、服务器120与用户终端140通信地连接。
开发终端110为开发者102使用的终端设备。在本公开的实施例中,开发者102为向服务器120中部署服务的人员,例如服务代码的编写人员或运维人员等。在一些实施例中,开发终端110可以是任何类型的固定式计算设备,包括但不限于台式机、工作站等。在另一些实施例中,开发终端110也可以是任何类型的移动式计算设备,包括但不限于移动计算机、手机、平板电脑、智能可穿戴设备(例如智能手表、智能眼镜、头戴式虚拟现实设备)等。
开发终端110可以包括显示器114和可经由显示器114显示的客户端应用112。客户端应用112可以为运行前需要下载和安装的应用程序,或者作为运行于浏览器中的网页版程序(webapp),又或者作为轻量化应用程序的小程序(liteapp)。在客户端应用112为运行前需要下载和安装的应用程序的情况下,客户端应用112可以被预先安装在开发终端110上并被激活。在客户端应用112为运行于浏览器中的网页版程序的情况下,开发者102可以通过在浏览器中访问特定的站点来直接运行客户端应用112,而无需安装客户端应用112。在客户端应用112为小程序的情况下,开发者102可以通过在宿主应用中搜索客户端应用112(例如,通过客户端应用112的名称等)或扫描客户端应用112的图形码(例如,条形码、二维码等)等方式,在开发终端110上直接运行客户端应用112,而无需安装客户端应用112。
服务器120典型地为由互联网服务提供商(ISP)或互联网内容提供商(ICP)部署的服务器。服务器120可以代表单台服务器、多台服务器的集群、分布式系统、或者提供基础云服务(诸如云数据库、云计算、云存储、云通信)的云服务器。
在本公开的实例中,开发者102可以通过在开发终端110上进行操作来将服务部署至服务器120中。随后,服务器120便可以经由网络130来向用户终端140提供相应的服务。可以理解的是,虽然图1中示出服务器120与仅一个开发终端110、一个用户终端140通信,但是服务器120可以同时部署多个开发终端110指定的多个服务,也可以同时为多个用户终端140提供服务。
网络130的示例包括局域网(LAN)、广域网(WAN)、个域网(PAN)、和/或诸如互联网之类的通信网络的组合。网络130可以是有线或无线网络。在一些实施例中,使用包括超文本标记语言(HTML)、可扩展标记语言(XML)等的技术和/或格式来处理通过网络130交换的数据。此外,还可以使用诸如安全套接字层(SSL)、传输层安全(TLS)、虚拟专用网络(VPN)、网际协议安全(IPsec)等加密技术来加密所有或者一些链路。在一些实施例中,还可以使用定制和/或专用数据通信技术来取代或者补充上述数据通信技术。
用户终端140为用户104使用的终端设备。在本公开的实施例中,用户104为使用服务器120中部署的服务的人员,即服务的受众。在一些实施例中,用户终端140可以是任何类型的固定式计算设备,包括但不限于台式机、工作站等。在另一些实施例中,用户终端140也可以是任何类型的移动式计算设备,包括但不限于移动计算机、手机、平板电脑、智能可穿戴设备(例如智能手表、智能眼镜、头戴式虚拟现实设备)等。
用户终端140可以包括显示器144和可经由显示器144显示的客户端应用142。客户端应用142可以为运行前需要下载和安装的应用程序,或者作为运行于浏览器中的网页版程序(webapp),又或者作为轻量化应用程序的小程序(liteapp)。在客户端应用142为运行前需要下载和安装的应用程序的情况下,客户端应用142可以被预先安装在用户终端140上并被激活。在客户端应用142为运行于浏览器中的网页版程序的情况下,用户104可以通过在浏览器中访问特定的站点来直接运行客户端应用142,而无需安装客户端应用142。在客户端应用142为小程序的情况下,用户104可以通过在宿主应用中搜索客户端应用142(例如,通过客户端应用142的名称等)或扫描客户端应用142的图形码(例如,条形码、二维码等)等方式,在用户终端140上直接运行客户端应用142,而无需安装客户端应用142。
为了本公开实施例的目的,在图1的示例中,客户端应用112可以为用于部署服务的应用程序,客户端应用142可以为用于使用服务的应用程序。开发者102可以通过开发终端110中的客户端应用112来将服务部署至服务器120中。具体地,开发者102可以通过客户端应用112来向服务器120上传服务配置信息,相应地,服务器120执行本公开的用于部署服务的方法200或400,基于开发者102上传的服务配置信息来部署服务。在服务器120完成服务部署后,用户104可以通过用户终端140中的客户端应用142来访问该服务,相应地,服务器120执行本公开的用于提供服务的方法600,向用户终端140提供该服务。
图2示出了根据本公开的示例性实施例的用于部署服务的方法200的流程图。方法200在服务器(例如图1中所示的服务器120)处执行,即,方法200的执行主体可以是图1中所示的服务器120。
如图2所示,方法200包括:
步骤S210、获取服务配置信息,服务配置信息包括服务代码的地址以及用于服务的框架的标识;
步骤S220、从上述地址获取服务代码;
步骤S230、获取上述标识对应的框架;以及
步骤S240、对服务代码和框架进行编译,生成用于提供服务的服务镜像。
根据本公开的实施例,服务器根据服务配置信息,获取服务代码和用于该服务的框架,并将服务代码和框架进行编译,生成用于向用户提供服务的服务镜像。服务器根据服务配置信息自动进行服务部署,大大提高了服务部署效率。并且,所生成的服务镜像便于在不同服务器间进行迁移,从而提高了服务部署的灵活性,能够实现高效的服务迁移。对于开发者来说,开发者仅需上传服务配置信息,无需对服务器进行复杂的软件安装和配置操作,大大简化了开发者的操作步骤,降低了学习成本,提高了服务部署效率。
以下详细描述方法200的各个步骤。
在步骤S210中,服务器获取服务配置信息,服务配置信息包括服务代码的地址以及用于服务的框架的标识。
根据一些实施例,开发者(例如图1中示出的开发者102)可以将服务配置信息写入配置文件(配置文件例如可以是YAML格式的文件),然后通过开发终端(例如图1中示出的开发终端110)来将配置文件上传至服务器。相应地,在步骤S210中,服务器可以获取开发终端上传的该配置文件,并从配置文件中获取服务配置信息。
在另一些实施例中,开发者也可以通过开发终端将配置文件上传至指定存储位置(例如上传至云存储系统、分布式存储系统等)。相应地,在步骤S210中,服务器可以从该指定存储位置获取配置文件,并从配置文件中获取服务配置信息。
服务配置信息可以包括用于部署服务的一项或多项信息。在步骤S210中,服务配置信息包括服务代码的地址和用于服务的框架的标识。
根据一些实施例,服务(例如图像处理服务、自然语言处理服务、语音处理服务、搜索服务等)可以通过人工智能模型(即AI模型)来实现,相应地,服务代码包括业务代码和AI模型。其中,业务代码指的是用于触发调用AI模型以及用于将AI模型处理结果返回给用户的业务逻辑代码。例如,对于通过AI模型实现的图像处理服务(例如图像美化服务、图像修复服务、目标识别服务等),业务代码例如可以包括图形用户界面(Graphical UserInterface,GUI)的代码,该代码例如可以使GUI中展示一个按钮(Button),当用户点击该按钮时,触发调用AI模型,即触发相应的服务;该代码例如还可以使GUI中展示一个图片区域,该图片区域用于显示AI模型输出的图像。
根据一些实施例,在服务代码包括业务代码和AI模型的情况下,业务代码和AI模型可以存储在相同或不同的位置。相应地,服务代码的地址包括业务代码的第一地址和AI模型的第二地址。第一地址、第二地址例如可以是业务代码或AI模型所在的Git仓库、云存储系统、分布式存储系统、FTP服务器等的地址。
根据另一些实施例,服务也可以不通过AI模型来实现,相应地,服务代码仅包括业务代码,不包括AI模型,服务代码的地址即为业务代码的地址。根据实际情况,服务代码还可以包括提供服务所需的其他任何信息的地址。
在步骤S210中,服务配置信息除了包括服务代码的地址之外,还包括用于服务的框架的标识。框架与标识一一对应,每一个标识用于唯一代表一种框架。
用于服务的框架指的是该服务的服务代码所依赖的基础数据。例如,在服务通过AI模型实现(即服务代码包括AI模型)的情况下,用于服务的框架可以是该AI模型所使用的AI框架。AI框架例如可以是TensorFlow、PyTorch、NCNN、OpenCV、Caffe等,但不限于此。在服务不通过AI模型实现(即服务代码仅包括业务代码,不包括AI模型)的情况下,用于服务的框架可以是业务代码所使用的类库(Class Library)、软件包(Package)、软件开发工具包(Software Development Kit,SDK)等。一些AI框架可以支持CPU(Central ProcessingUnit,中央处理器)和GPU(Graphics Processing Unit,图形处理器)运算,例如,可以根据AI模型的内容来自动选择由CPU和/或GPU来完成运算。根据一些实施例,服务配置信息还可以包括用于运行AI模型的处理器的标识,处理器包括CPU和GPU。即,可以在服务配置信息中指定用于运行AI模型的处理器。相应地,AI模型的运算将由服务配置信息中指定的处理器完成。
根据一些实施例,服务配置信息还可以包括用于提供服务的镜像实例的数量、用于标识服务的服务标识、用于标识镜像实例的镜像实例标识,等等。这些服务配置信息的作用将结合下文实施例进行详述。
在通过步骤S210获取到服务代码的地址以及用于服务的框架的标识后,执行步骤S220和S230。在步骤S220中,从上述地址获取服务代码;在步骤S230中,获取上述标识对应的框架。
应当理解的是,步骤S220与步骤S230没有严格的执行顺序,二者可以按照任意顺序被执行。例如,可以先执行步骤S220,后执行步骤S230;或者先执行步骤S230,后执行步骤S220;或者并行地执行S220和S230,以提高执行效率。
根据一些实施例,如前述步骤S210所述,在服务代码包括业务代码和AI模型的情况下,服务代码的地址包括业务代码的第一地址和AI模型的第二地址。相应地,在步骤S220中,可以从第一地址获取业务代码,以及从第二地址获取AI模型。
根据一些实施例,如前所述,在服务代码包括AI模型的情况下,用于服务的框架可以是该AI模型所使用的AI框架。相应地,步骤S230可以包括:从预设的镜像库中获取框架的镜像(Image)。镜像库中包括多个AI框架镜像,所获取的框架的镜像为AI模型所依赖的AI框架镜像。
具体地,镜像库中可以包括应用于不同操作系统环境的AI框架镜像,例如,包括应用于Linux、Win64、macOS等操作系统的TensorFlow镜像、以及应用于Linux、Win64、macOS等操作系统的PyTorch镜像,等等。在步骤S230中,基于服务配置信息中指定的框架的标识,从镜像库中获取相应框架的镜像。例如,服务配置信息中指定的框架的标识为“Linux-TensorFlow”,则相应地,在步骤S230中,从镜像库中获取应用于Linux操作系统的TensorFlow镜像。
在通过步骤S220获取到服务代码,通过步骤S230获取到用于服务的框架后,执行步骤S240。
在步骤S240中,对服务代码和框架进行编译,生成用于提供服务的服务镜像。具体地,可以将服务代码和框架进行混合编译,生成一个服务镜像,该服务镜像用于向用户终端(例如图1中示出的用户终端140)提供服务。在本公开的实施例中,服务与服务镜像一一对应,即,每种服务对应于一个服务镜像。
由于服务镜像通过对服务的服务代码和用于该服务的框架进行编译而生成,因此服务镜像中包括了服务代码和服务所依赖的系统环境,通过运行服务镜像即可向用户终端提供服务,而无需根据服务代码来对服务器软件环境进行安装和配置。服务代码的开发环境与服务器软件环境解耦,服务器软件环境与服务代码的开发环境不需要一致,大大简化了服务部署操作,提高了服务部署效率。
根据一些实施例,在步骤S240之后,还包括:基于服务镜像,启动镜像实例;以及确定镜像实例对应的服务接口,以便响应于用户终端对服务接口的访问而调用镜像实例,以向用户终端提供服务。
根据一些实施例,在步骤S240中,可以通过docker run、docker create、dockerstart等命令,来创建并运行服务镜像对应的容器(Container),每一个运行中的容器为一个镜像实例,用于在线向用户终端提供服务。
步骤S240中启动的镜像实例可以有一个或多个。根据一些实施例,前述步骤S210中获取到的服务配置信息还包括镜像实例的数量。相应地,在步骤S240中,可以启动该数量的镜像实例。通过配置镜像实例的数量,可以同时启动多个镜像实例,多个镜像实例可以并发地向多个用户终端提供服务,从而能够提高服务效率。
在启动镜像实例后,进一步确定镜像实例对应的服务接口。通常地,基于一个服务镜像所启动的一个或多个镜像实例对应于一个服务接口,即,一种服务对应于一个服务接口。在确定镜像实例对应的服务接口后,存储镜像实例与服务接口的对应关系,随后该镜像实例便可以用于在线地向用户终端提供服务。具体地,用户终端可以通过访问服务接口来发起服务请求,服务器响应于用户终端对服务接口的访问而调用相应的镜像实例,以向用户终端提供服务。
需要说明的是,服务接口可以实现为能被用户终端访问的任意形式。根据一些实施例,服务接口可以包括服务地址(IP地址)。在该实施例中,基于同一个服务镜像启动的一个或多个镜像实例对应于一个服务地址,即,一种服务对应于一个服务地址,不同服务对应的服务地址不同。当用户终端访问服务地址时,服务器响应于用户终端对该服务地址的访问而调用相应的镜像实例,以向用户终端提供相应的服务。
根据另一些实施例,服务接口可以包括服务地址和服务端口。在该实施例中,基于同一个服务镜像启动的一个或多个镜像实例对应于一个服务地址的一个端口,即,一种服务对应于一个服务地址的一个端口。一个服务地址可以对应于多个不同的服务,这多个不同的服务用不同的服务端口来区分,实现了服务地址(IP地址)的复用,节省了IP地址资源。当用户终端访问服务地址的服务端口时,服务器响应于用户终端对该服务地址的该服务端口的访问而调用相应的镜像实例,以向用户终端提供相应的服务。
根据一些实施例,前述步骤S210中获取到的服务配置信息还包括用于标识服务的服务标识和用于标识镜像实例的镜像实例标识。相应地,方法200还包括:将服务标识和镜像实例标识关联存储。通过设置服务标识和镜像实例标识,并将二者相关联,可以便于开发者对自己发布的服务进行管理。
图3示出了根据示例性实施例的部署AI服务的过程的示意图。图3所示的部署服务的过程是图2所示的方法200的一个具体的应用示例。其中,图3中示出的开发终端310、服务器320、网络330以及用户终端340可以由图1中示出的开发终端110、服务器120、网络130以及用户终端140实现,在此不再加以赘述。
如图3所示,开发终端310处存储有配置文件311,配置文件311例如可以是YAML格式的文件,其中包括多项服务配置信息,这多项服务配置信息具体为:服务代码的地址312(地址312进一步包括业务代码的第一地址313和AI模型的第二地址314)、AI框架的标识315、镜像实例的数量316、服务标识(可以是服务名)317、镜像实例标识(可以是镜像实例的handle函数名)318。
在步骤S301中,开发终端310将配置文件311发送至服务器320,相应地,服务器320获取配置文件311,并可以读取其中的各项服务配置信息。例如,配置文件311为YAML文件,服务器320可以通过nuclio程序解析YAML文件并进行转换,得到Docker(一种开源的应用容器引擎)编制的脚本,便于进行后续步骤S302-S306的处理。
如图3所示,服务器320包括两个软件系统,即编译系统(Compile System)321和服务系统(Service System)323。其中,编译系统321用于离线生成服务镜像322;服务系统323用于基于服务镜像322来生成一个或多个镜像实例,镜像实例用于经由网络330在线向用户终端340提供服务。编译系统321和服务系统323例如均可以采用serverless虚拟化技术以及容器技术实现。
如图3所示,服务器320通过步骤S301接收到配置文件311后,编译系统321可以读取其中的业务代码的第一地址313和AI模型的第二地址314。随后,在步骤S302中,编译系统321根据第一地址313和第二地址314从Git仓库370分别获取业务代码372和AI模型374。
可以理解,Git仓库370中还存储有服务代码对应的操作系统(OS层)环境信息,并且,业务代码372可以通过版本控制软件(例如GitLab、GitHub等)提交至Git仓库370中,AI模型374可以从AI模型的源存储位置(例如FTP服务器)下载至Git仓库370中。
继续如图3所示,在步骤S303中,编译系统321根据配置文件311中指定的AI框架的标识315,从AI框架镜像库380中获取相应的AI框架镜像。例如,AI框架的标识315所指示的AI框架为Linux操作系统的TensorFlow框架,则步骤S303从镜像库380中获取Linux操作系统的TensorFlow镜像382。
随后,在步骤S304中,编译系统321将业务代码372、AI模型374和Linux的TensorFlow框架镜像382进行混合编译,生成服务镜像322。例如,编译系统321可以通过执行docker compose命令来将业务代码372、AI模型374和Linux的TensorFlow框架镜像382进行打包,生成服务镜像322。
随后,在步骤S305中,服务系统323根据配置文件311中指定的镜像实例的数量316,启动服务镜像322的相应数量的镜像实例,并将这些镜像实例反向映射到统一的IP地址和端口,IP地址和端口的组合即为这些镜像实例所对应的服务接口。每个镜像实例可以独立地向用户终端340提供服务。例如,配置文件311中指定的镜像实例的数量为4,则如图3所示,服务系统323启动根据服务镜像322的4个镜像实例325-1A~325-1D,将镜像实例325-1A~325-1D反向映射到同一个服务接口324-1,即,镜像实例325-1A~325-1D对应的服务接口为服务接口324-1。服务接口324-1为IP地址(服务地址)和端口号(服务端口)的组合。
进一步地,服务系统323根据配置文件311中指定的服务标识317和镜像实例标识318,将服务镜像322对应的服务的服务标识设置为“目标识别”,将服务镜像322的4个镜像实例325-1A~325-1D的镜像实例标识设置为“func_target_recognition”,并将服务标识“目标识别”与镜像实例标识“func_target_recognition”关联存储。
服务系统323启动镜像实例325-1A~325-1D,并确定镜像实例325-1A~325-1D与服务接口324-1的对应关系后,可以在步骤S306中经由网络330向用户终端340提供服务。具体地,服务接口324-1不断监听外部发来的请求,当用户终端340经由网络330访问服务接口324-1时,即向服务接口324-1发起请求,相应地,服务系统323响应于该请求,可以调用相应的镜像实例325-1A~325-1D中的任一个来向用户终端340提供“目标识别”服务。
可以理解,服务系统323中可以运行有针对不同服务的多个镜像实例。例如,如图3所示,除了针对“目标识别”服务的4个镜像实例325-1A~325-1D之外,服务系统中还可以运行有针对“图像美化”服务的3个镜像实例325-2A~325-2C。镜像实例325-2A~325-2C对应于服务接口324-2。服务接口324-1和服务接口324-2可以是不同的IP地址,也可以是同一IP地址的不同端口。与“目标识别”服务类似地,当用户终端340访问服务接口324-2时,服务系统323将调用相应的镜像实例325-2A~325-2C中的任一个来向用户终端340提供“图像美化”服务。
图4示出了根据本公开另一示例性实施例的用于部署服务的方法400的流程图。方法400可以在服务器中执行。如图4所示,方法400包括:
步骤S410、获取服务对应的服务镜像,其中,服务镜像是通过对服务的服务代码和用于该服务的框架进行编译而生成的;
步骤S420、基于服务镜像,启动镜像实例;以及
步骤S430、确定镜像实例对应的服务接口,以便响应于用户终端对服务接口的访问而调用该镜像实例,以向用户终端提供该服务。
方法400可以应用于服务迁移的场景中。例如,服务器A可以通过执行上述方法200,生成服务镜像。随后,可以将生成的该服务镜像通过拷贝、网络传输等方式转移至服务器B中。服务器B执行方法400,基于服务镜像来启动镜像实例,以在线地向用户终端提供服务。根据本公开的实施例,通过将服务镜像转移至不同的服务器中即可实现服务迁移,大大提高了服务部署效率和迁移效率。
以下详细描述方法400的各个步骤。
在步骤S410中,获取服务对应的服务镜像,服务镜像是通过对服务的服务代码和用于该服务的框架进行编译而生成的。更具体地,服务镜像是通过前述方法200的步骤S210-S240所生成的。
在步骤S420中,基于服务镜像,启动镜像实例。根据一些实施例,在步骤S240中,可以通过docker run、docker create、docker start等命令,来创建并运行服务镜像对应的容器(Container),每一个运行中的容器为一个镜像实例,用于在线向用户终端提供服务。
步骤S420中启动的镜像实例可以有一个或多个。根据一些实施例,在步骤S420中,可以启动预设数量的镜像实例。参考前述方法200的相关描述,预设数量例如可以根据开发者所设置的“镜像实例的数量”这一服务配置信息来确定。通过启动预设数量的镜像实例,可以使多个镜像实例可以并发地向多个用户终端提供服务,从而能够提高服务效率。
在通过步骤S420启动镜像实例后,进一步执行步骤S430,确定镜像实例对应的服务接口。通常地,基于一个服务镜像所启动的一个或多个镜像实例对应于一个服务接口。在确定镜像实例对应的服务接口后,存储镜像实例与服务接口的对应关系,随后该镜像实例便可以用于在线地向用户终端提供服务。具体地,用户终端可以通过访问服务接口来发起服务请求,服务器响应于用户终端对服务接口的访问而调用相应的镜像实例,以向用户终端提供服务。
需要说明的是,服务接口可以实现为能被用户终端访问的任意形式。根据一些实施例,服务接口可以包括服务地址(IP地址)。在该实施例中,基于同一个服务镜像启动的一个或多个镜像实例对应于一个服务地址,即,一种服务对应于一个服务地址,不同服务对应的服务地址不同。当用户终端访问服务地址时,服务器响应于用户终端对该服务地址的访问而调用相应的镜像实例,以向用户终端提供相应的服务。
根据另一些实施例,服务接口可以包括服务地址和服务端口。在该实施例中,基于同一个服务镜像启动的一个或多个镜像实例对应于一个服务地址的一个端口,即,一种服务对应于一个服务地址的一个端口。一个服务地址可以对应于多个不同的服务,这多个不同的服务用不同的服务端口来区分,实现了服务地址(IP地址)的复用,节省了IP地址资源。当用户终端访问服务地址的服务端口时,服务器响应于用户终端对该服务地址的该服务端口的访问而调用相应的镜像实例,以向用户终端提供相应的服务。
根据一些实施例,方法400还包括:获取用于标识服务的服务标识以及用于标识镜像实例的镜像实例标识;以及将服务标识和镜像实例标识关联存储。通过设置服务标识和镜像实例标识,可以便于开发者对自己发布的服务进行管理。参考前述方法200的相关描述,服务标识和镜像实例标识例如可以是开发者设置的服务配置信息。
图5示出了根据示例性实施例的部署AI服务的过程的示意图。图5所示的部署服务的过程是图4所示的方法400的一个具体的应用示例。其中,图5中示出的开发终端510、服务器520-A、520-B、网络530以及用户终端540可以由图1中示出的开发终端110、服务器120、网络130以及用户终端140实现,在此不再加以赘述。
如图5所示,开发终端510中存储有配置文件511,配置文件511例如可以是YAML格式的文件,其中包括多项服务配置信息,这多项服务配置信息具体为:镜像实例的数量516、服务标识(可以是服务名)517、镜像实例标识(可以是镜像实例的handle函数名)518。开发终端510将配置文件511发送至服务器520-B,相应地,服务器520-B获取配置文件511,并可以读取其中的各项服务配置信息。例如,配置文件511为YAML文件,服务器520-B可以通过nuclio程序解析YAML文件并进行转换,得到Docker编制的脚本,便于进行后续步骤S501-S503的处理。
如图5所示,服务器520-B包括服务系统(Service System)523。服务系统523用于基于服务镜像522来生成一个或多个镜像实例,镜像实例用于经由网络530在线向用户终端540提供服务。服务系统523例如可以采用serverless虚拟化技术以及容器技术实现。
在步骤S501中,服务器520-B可以获取服务器520-A生成的服务镜像522,服务镜像522例如可以按照前述图3所示的过程生成。即,在步骤S501中,将服务器520-A生成的服务镜像522迁移至服务器520-B中。
随后,在步骤S502中,服务系统523根据配置文件511中指定的镜像实例的数量516,根据服务镜像522启动相应数量的镜像实例,并将这些镜像实例反向映射到统一的IP地址和端口,IP地址和端口的组合即为这些镜像实例所对应的服务接口。每个镜像实例可以独立地向用户终端540提供服务。例如,配置文件511中指定的镜像实例的数量为4,则如图5所示,服务系统523根据服务镜像522启动4个镜像实例525-1A~525-1D,将镜像实例525-1A~525-1D反向映射到同一个服务接口524-1,即,镜像实例525-1A~525-1D对应的服务接口为服务接口524-1。服务接口524-1为IP地址(服务地址)和端口号(服务端口)的组合。
进一步地,服务系统523根据配置文件511中指定的服务标识517和镜像实例标识518,将服务镜像522对应的服务的服务标识设置为“目标识别”,将服务镜像522的4个镜像实例525-1A~525-1D的镜像实例标识设置为“func_target_recognition”,并将服务标识“目标识别”与镜像实例标识“func_target_recognition”关联存储。
服务系统523启动镜像实例525-1A~525-1D,并确定镜像实例525-1A~525-1D与服务接口524-1的对应关系后,可以在步骤S503中经由网络530向用户终端540提供服务。具体地,服务接口524-1不断监听外部发来的请求,当用户终端540经由网络530访问服务接口524-1时,即向服务接口524-1发起请求,相应地,服务系统523响应于该请求,可以调用相应的镜像实例525-1A~525-1D中的任一个来向用户终端540提供“目标识别”服务。
可以理解,服务系统523中可以运行有针对不同服务的多个镜像实例。例如,如图5所示,除了针对“目标识别”服务的4个镜像实例525-1A~525-1D之外,服务系统中还可以运行有针对“图像美化”服务的3个镜像实例525-2A~525-2C。镜像实例525-2A~525-2C对应于服务接口524-2。服务接口524-1和服务接口524-2可以是不同的IP地址,也可以是同一IP地址的不同端口。与“目标识别”服务类似地,当用户终端540访问服务接口524-2时,服务系统523将调用相应的镜像实例525-2A~525-2C中的任一个来向用户终端540提供“图像美化”服务。
在根据前述方法200或400完成了服务部署后,服务器可以向用户终端提供相应的服务。图6示出了根据本公开的示例性实施例的用于提供服务的方法600的流程图。方法600可以在服务器中执行。如图6所示,方法600包括:
步骤S610、响应于用户终端对服务接口的访问,根据预设的服务接口与镜像实例的对应关系,确定用于提供服务的目标镜像实例;以及
步骤S620、调用目标镜像实例,以向用户终端提供服务,其中,该服务根据前述方法200或400部署。
根据一些实施例,参考前述方法200和400的相关描述,服务接口可以仅包括服务地址,也可以同时包括服务地址和服务端口。在服务接口仅包括服务地址的情况下,在步骤S610中,可以根据预设的服务地址与镜像实例的对应关系,确定用于提供服务的目标镜像实例。在服务接口包括服务地址和服务端口的情况下,在步骤S610中,可以根据预设的服务地址、服务端口、镜像实例三者之间的对应关系,确定用于提供服务的目标镜像实例。
根据一些实施例,参考前述方法200和400的相关描述,一个服务接口可以对应一个或多个镜像实例,相应地,步骤S610所确定的用于提供服务的目标镜像实例可以有多个。根据一些实施例,在目标镜像实例有多个的情况下,在步骤S620中,可调用任一个空闲的目标镜像实例来向用户终端提供服务。例如,可以通过轮询策略来调用一个空闲的目标镜像实例来向用户终端提供服务。
如果不存在空闲的目标镜像实例,即所有的目标镜像实例均处于工作状态,则服务器不能为当前的用户终端提供服务,当前的用户终端需要进行排队等待,直至有目标镜像实例空闲时,服务器调用该空闲的目标镜像实例来向当前的用户终端提供服务。
根据本公开的另一方面,还提供一种电子设备,包括:处理器;以及存储程序的存储器,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行上述的用于部署服务的方法和/或用于提供服务的方法。
根据本公开的另一方面,还提供一种存储程序的非暂态计算机可读存储介质,所述程序包括指令,所述指令在由电子设备的处理器执行时,致使所述电子设备执行上述的用于部署服务的方法和/或用于提供服务的方法。
根据本公开的另一方面,还提供一种计算机程序产品,包括计算机程序,所述计算机程序再被处理器执行时实现上述的用于部署服务的方法和/或用于提供服务的方法。
参见图7,现将描述电子设备700,其是可以应用于本公开的各方面的硬件设备(电子设备)的示例。电子设备700可以是被配置为执行处理和/或计算的任何机器,可以是但不限于工作站、服务器、台式计算机、膝上型计算机、平板计算机、个人数字助理、机器人、智能电话、车载计算机或其任何组合。上述用于部署服务的方法200、400和用于提供服务的方法600可以全部或至少部分地由电子设备700或类似设备或系统实现。
电子设备700可以包括(可能经由一个或多个接口)与总线702连接或与总线702通信的元件。例如,电子设备700可以包括总线702、一个或多个处理器704、一个或多个输入设备706以及一个或多个输出设备708。一个或多个处理器704可以是任何类型的处理器,并且可以包括但不限于一个或多个通用处理器和/或一个或多个专用处理器(例如特殊处理芯片)。输入设备706可以是能向电子设备700输入信息的任何类型的设备,并且可以包括但不限于鼠标、键盘、触摸屏、麦克风和/或遥控器。输出设备708可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。电子设备700还可以包括非暂时性存储设备710,非暂时性存储设备可以是非暂时性的并且可以实现数据存储的任何存储设备,包括但不限于磁盘驱动器、光学存储设备、固态存储器、软盘、柔性盘、硬盘、磁带或任何其他磁介质,光盘或任何其他光学介质、ROM(只读存储器)、RAM(随机存取存储器)、高速缓冲存储器和/或任何其他存储器芯片或盒、和/或计算机可从其读取数据、指令和/或代码的任何其他介质。非暂时性存储设备710可以从接口拆卸。非暂时性存储设备710可以具有用于实现上述方法和步骤的数据/程序(包括指令)/代码。电子设备700还可以包括通信设备712。通信设备712可以是使得能够与外部设备和/或与网络通信的任何类型的设备或系统,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信设备和/或芯片组,例如蓝牙TM设备、1302.11设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
电子设备700还可以包括工作存储器714,其可以是可以存储对处理器704的工作有用的程序(包括指令)和/或数据的任何类型的工作存储器,并且可以包括但不限于随机存取存储器和/或只读存储器设备。
软件要素(程序)可以位于工作存储器714中,包括但不限于操作系统716、一个或多个应用程序718、驱动程序和/或其他数据和代码。用于执行上述方法和步骤的指令可以被包括在一个或多个应用程序718中,并且上述用于部署服务的方法200、400和用于提供服务的方法600可以通过由处理器704读取和执行一个或多个应用程序718的指令来实现。更具体地,上述用于部署服务的方法200、400和用于提供服务的方法600中,步骤S210-S240、步骤S410-S430以及步骤S610-S620可以例如通过处理器704执行具有步骤S210-S240、步骤S410-S430以及步骤S610-S620的指令的应用程序718而实现。此外,上述用于部署服务的方法200、400和用于提供服务的方法600中的其它步骤可以例如通过处理器704执行具有执行相应步骤中的指令的应用程序718而实现。软件要素(程序)的指令的可执行代码或源代码可以存储在非暂时性计算机可读存储介质(例如上述存储设备710)中,并且在执行时可以被存入工作存储器714中(可能被编译和/或安装)。软件要素(程序)的指令的可执行代码或源代码也可以从远程位置下载。
还应该理解,可以根据具体要求而进行各种变型。例如,也可以使用定制硬件,和/或可以用硬件、软件、固件、中间件、微代码,硬件描述语言或其任何组合来实现特定元件。例如,所公开的方法和设备中的一些或全部可以通过使用根据本公开的逻辑和算法,用汇编语言或硬件编程语言(诸如VERILOG,VHDL,C++)对硬件(例如,包括现场可编程门阵列(FPGA)和/或可编程逻辑阵列(PLA)的可编程逻辑电路)进行编程来实现。
还应该理解,前述方法可以通过服务器-客户端模式来实现。例如,客户端可以接收用户输入的数据并将所述数据发送到服务器。客户端也可以接收用户输入的数据,进行前述方法中的一部分处理,并将处理所得到的数据发送到服务器。服务器可以接收来自客户端的数据,并且执行前述方法或前述方法中的另一部分,并将执行结果返回给客户端。客户端可以从服务器接收到方法的执行结果,并例如可以通过输出设备呈现给用户。
还应该理解,电子设备700的组件可以分布在网络上。例如,可以使用一个处理器执行一些处理,而同时可以由远离该一个处理器的另一个处理器执行其他处理。计算系统700的其他组件也可以类似地分布。这样,电子设备700可以被解释为在多个位置执行处理的分布式计算系统。
以下描述本公开的一些示例性方面。
方面1.一种用于部署服务的方法,包括:
获取服务配置信息,所述服务配置信息包括服务代码的地址以及用于所述服务的框架的标识;
从所述地址获取所述服务代码;
获取所述标识对应的所述框架;以及
对所述服务代码和所述框架进行编译,生成用于提供所述服务的服务镜像。
方面2.如方面1所述的方法,其中,所述服务代码包括业务代码和人工智能模型,所述地址包括所述业务代码的第一地址和所述人工智能模型的第二地址;
所述从所述地址获取所述服务代码包括:
从所述第一地址获取所述业务代码;以及
从所述第二地址获取所述人工智能模型。
方面3.如方面2所述的方法,其中,所述获取所述标识对应的所述框架包括:从预设的镜像库中获取所述框架的镜像,
其中,所述镜像库中包括多个人工智能框架镜像,所述框架的镜像为所述人工智能模型所依赖的人工智能框架镜像。
方面4.如方面2或3所述的方法,其中,所述服务配置信息还包括用于运行所述人工智能模型的处理器的标识,所述处理器包括中央处理器和图形处理器。
方面5.如方面1-4中任一项所述的方法,还包括:
基于所述服务镜像,启动镜像实例;以及
确定所述镜像实例对应的服务接口,以便响应于用户终端对所述服务接口的访问而调用所述镜像实例,以向所述用户终端提供所述服务。
方面6.如方面5所述的方法,其中,所述服务配置信息还包括所述镜像实例的数量;
所述启动镜像实例包括:启动所述数量的镜像实例。
方面7.如方面5或6所述的方法,其中,所述服务接口包括服务地址。
方面8.如方面5或6所述的方法,其中,所述服务接口包括服务地址和服务端口。
方面9.如方面5-8中任一项所述的方法,其中,所述服务配置信息还包括用于标识所述服务的服务标识以及用于标识所述镜像实例的镜像实例标识;
所述方法还包括:将所述服务标识和所述镜像实例标识关联存储。
方面10.一种用于部署服务的方法,包括:
获取所述服务对应的服务镜像,其中,所述服务镜像是通过对所述服务的服务代码和用于所述服务的框架进行编译而生成的;
基于所述服务镜像,启动镜像实例;以及
确定所述镜像实例对应的服务接口,以便响应于用户终端对所述服务接口的访问而调用所述镜像实例,以向所述用户终端提供所述服务。
方面11.如方面10所述的方法,其中,所述启动镜像实例包括:
启动预设数量的镜像实例。
方面12.如方面10或11所述的方法,其中,所述服务接口包括服务地址。
方面13.如方面10或11所述的方法,其中,所述服务接口包括服务地址和服务端口。
方面14.如方面10-13中任一项所述的方法,还包括:
获取用于标识所述服务的服务标识以及用于标识所述镜像实例的镜像实例标识;以及
将所述服务标识和所述镜像实例标识关联存储。
方面15.一种用于提供服务的方法,包括:
响应于用户终端对服务接口的访问,根据预设的服务接口与镜像实例的对应关系,确定用于提供所述服务的目标镜像实例;以及
调用所述目标镜像实例,以向所述用户终端提供所述服务,其中,所述服务根据方面1-14中任一项所述的方法部署。
方面16.如方面15所述的方法,其中,所述目标镜像实例有多个;
所述调用所述目标镜像实例包括:调用任一个空闲的目标镜像实例。
方面17.一种电子设备,包括:
处理器;以及
存储程序的存储器,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据方面1-16中任一项所述的方法。
方面18.一种存储程序的非暂态计算机可读存储介质,所述程序包括指令,所述指令在由电子设备的处理器执行时,致使所述电子设备执行根据方面1-16中任一项所述的方法。
方面19.一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被处理器执行时实现根据方面1-16中任一项所述的方法。
虽然已经参照附图描述了本公开的实施例或示例,但应理解,上述的方法、系统和设备仅仅是示例性的实施例或示例,本发明的范围并不由这些实施例或示例限制,而是仅由授权后的权利要求书及其等同范围来限定。实施例或示例中的各种要素可以被省略或者可由其等同要素替代。此外,可以通过不同于本公开中描述的次序来执行各步骤。进一步地,可以以各种方式组合实施例或示例中的各种要素。重要的是随着技术的演进,在此描述的很多要素可以由本公开之后出现的等同要素进行替换。

Claims (10)

1.一种用于部署服务的方法,包括:
获取服务配置信息,所述服务配置信息包括服务代码的地址以及用于所述服务的框架的标识;
从所述地址获取所述服务代码;
获取所述标识对应的所述框架;以及
对所述服务代码和所述框架进行编译,生成用于提供所述服务的服务镜像。
2.如权利要求1所述的方法,其中,所述服务代码包括业务代码和人工智能模型,所述地址包括所述业务代码的第一地址和所述人工智能模型的第二地址;
所述从所述地址获取所述服务代码包括:
从所述第一地址获取所述业务代码;以及
从所述第二地址获取所述人工智能模型。
3.如权利要求2所述的方法,其中,所述获取所述标识对应的所述框架包括:从预设的镜像库中获取所述框架的镜像,
其中,所述镜像库中包括多个人工智能框架镜像,所述框架的镜像为所述人工智能模型所依赖的人工智能框架镜像。
4.如权利要求2或3所述的方法,其中,所述服务配置信息还包括用于运行所述人工智能模型的处理器的标识,所述处理器包括中央处理器和图形处理器。
5.如权利要求1-4中任一项所述的方法,还包括:
基于所述服务镜像,启动镜像实例;以及
确定所述镜像实例对应的服务接口,以便响应于用户终端对所述服务接口的访问而调用所述镜像实例,以向所述用户终端提供所述服务。
6.一种用于部署服务的方法,包括:
获取所述服务对应的服务镜像,其中,所述服务镜像是通过对所述服务的服务代码和用于所述服务的框架进行编译而生成的;
基于所述服务镜像,启动镜像实例;以及
确定所述镜像实例对应的服务接口,以便响应于用户终端对所述服务接口的访问而调用所述镜像实例,以向所述用户终端提供所述服务。
7.一种用于提供服务的方法,包括:
响应于用户终端对服务接口的访问,根据预设的服务接口与镜像实例的对应关系,确定用于提供所述服务的目标镜像实例;以及
调用所述目标镜像实例,以向所述用户终端提供所述服务,其中,所述服务根据权利要求1-6中任一项所述的方法部署。
8.一种电子设备,包括:
处理器;以及
存储程序的存储器,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据权利要求1-7中任一项所述的方法。
9.一种存储程序的非暂态计算机可读存储介质,所述程序包括指令,所述指令在由电子设备的处理器执行时,致使所述电子设备执行根据权利要求1-7中任一项所述的方法。
10.一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被处理器执行时实现根据权利要求1-7中任一项所述的方法。
CN202110654402.3A 2021-06-11 2021-06-11 用于部署及提供服务的方法、电子设备和存储介质 Pending CN113220308A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110654402.3A CN113220308A (zh) 2021-06-11 2021-06-11 用于部署及提供服务的方法、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110654402.3A CN113220308A (zh) 2021-06-11 2021-06-11 用于部署及提供服务的方法、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN113220308A true CN113220308A (zh) 2021-08-06

Family

ID=77081439

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110654402.3A Pending CN113220308A (zh) 2021-06-11 2021-06-11 用于部署及提供服务的方法、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN113220308A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114039995A (zh) * 2021-09-17 2022-02-11 北京新网医讯技术有限公司 基于dicom ip端口区分ai模块功能管理方法及系统
CN114840221A (zh) * 2022-04-15 2022-08-02 医渡云(北京)技术有限公司 云服务器部署方法、装置、系统、存储介质及计算机设备
CN114968271A (zh) * 2022-05-26 2022-08-30 北京金堤科技有限公司 模型部署方法、装置、电子设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114039995A (zh) * 2021-09-17 2022-02-11 北京新网医讯技术有限公司 基于dicom ip端口区分ai模块功能管理方法及系统
CN114039995B (zh) * 2021-09-17 2024-10-01 北京新网医讯技术有限公司 基于dicom ip端口区分ai模块功能管理方法及系统
CN114840221A (zh) * 2022-04-15 2022-08-02 医渡云(北京)技术有限公司 云服务器部署方法、装置、系统、存储介质及计算机设备
CN114968271A (zh) * 2022-05-26 2022-08-30 北京金堤科技有限公司 模型部署方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US11704577B1 (en) High performance machine learning inference framework for edge devices
US10540174B2 (en) Managed multi-container builds
CN113220308A (zh) 用于部署及提供服务的方法、电子设备和存储介质
US11422785B2 (en) Container orchestration framework
US9910765B2 (en) Providing testing environments for software applications using virtualization and a native hardware layer
JP7364146B2 (ja) データベースクエリ処理のための機械学習推論コール
CN107491329B (zh) Docker镜像构建方法、设备、存储介质以及电子装置
US11341367B1 (en) Synthetic training data generation for machine learning
CN111566618A (zh) 用于灵活机器学习的包装和部署算法
US8966508B2 (en) Method for executing hybrid web application and apparatus therefor
WO2010113160A1 (en) A method and system for emulating desktop software applications in a mobile communication network
US9935828B2 (en) Application controller to support incremental deployment
CN108628626B (zh) 开发环境搭建方法、代码更新方法及装置
CN104317570B (zh) 动态解析Web应用的装置和方法
US20170031680A1 (en) Computer-implemented method and system for executing android apps natively on any environment
CN111142884A (zh) 小程序的版本部署方法、装置、电子设备及存储介质
CN108021377A (zh) 一种应用图标更新方法及装置
WO2022022571A1 (en) Resource allocation for tuning hyperparameters of large-scale deep learning workloads
US10169056B2 (en) Effective management of virtual containers in a desktop environment
CN112887440A (zh) 一种ip地址管理方法和装置
CN111654539B (zh) 基于云原生的物联网操作系统构建方法、系统及电子设备
WO2019143715A1 (en) Automated distribution of models for execution on a non-edge device and an edge device
KR20240068388A (ko) 실무 역량 과제 테스트 환경 구축 방법과 이를 위한 프로그램 및 서버
CN116524528A (zh) 用于分离被检测为一个文本边界框的单词的文本检测算法
JP5420623B2 (ja) プログラム

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