CN114116117A - 业务部署方法、电子设备及存储介质 - Google Patents
业务部署方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114116117A CN114116117A CN202110970450.3A CN202110970450A CN114116117A CN 114116117 A CN114116117 A CN 114116117A CN 202110970450 A CN202110970450 A CN 202110970450A CN 114116117 A CN114116117 A CN 114116117A
- Authority
- CN
- China
- Prior art keywords
- container
- service
- code file
- deployment method
- cdn node
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- 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/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例涉及通信技术领域,公开了一种业务部署方法、电子设备及存储介质。在本发明的部分实施例中,业务部署方法应用于内容分发网络CDN节点,所述CDN节点部署有至少一个容器,容器中存储有运行时环境,包括:接收中心管理平台下发的代码文件;将所述代码文件加载至所述容器中,加载并编译所述代码文件,以实现代码文件对应的业务功能。本申请实施例提供的技术方案可以动态加载并编译代码,实时部署业务功能。
Description
技术领域
本发明实施例涉及通信技术领域,特别涉及一种业务部署方法、电子设备及存储介质。
背景技术
随着内容分发网络(Content Delivery Network,CDN)的应用越来越广泛,客户对CDN的要求也越来越高,希望CDN可以帮助源站或者客户端做更多事情,同时能够根据客户的实际需要快速定制不同的业务。然而,当前的业务定制方法无法满足客户需求。
发明内容
本发明实施方式的目的在于提供一种业务部署方法、电子设备及存储介质,可以动态加载并编译代码,实时部署业务功能。
为解决上述技术问题,第一方面,本发明实施例提供了一种业务部署方法,应用于内容分发网络CDN节点,CDN节点部署有至少一个容器,容器中存储有运行时环境,包括:接收中心管理平台下发的代码文件;将代码文件加载至容器中,加载并编译代码文件,以实现代码文件对应的业务功能。
第二方面,本发明实施例提供了一种业务部署方法,应用于中心管理平台,中心管理平台与内容分发网络CDN节点通信连接,CDN节点部署有至少一个容器,容器中存储有运行时环境,包括:获取代码文件;将代码文件下发至CDN节点,以使CDN节点将代码文件加载至容器中,加载并编译代码文件,以实现代码文件对应的业务功能。
第三方面,本发明实施例提供了一种电子设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施例提及的业务部署方法,其中,电子设备为CDN节点或中心管理平台。
第四方面,本发明实施例提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,实现上述实施例提及的业务部署方法,其中,电子设备为CDN节点或中心管理平台。
本发明实施例相对于现有技术而言,容器中部署有运行时环境,可以屏蔽底层设施的差异性,实现了业务功能和平台环境的解耦,达到业务功能跨平台运行的效果。新的业务功能对应的代码文件可以被容器动态加载并编译,以实现代码文件对应的业务功能,使得中心管理平台可以更快速地、动态地发布定制业务功能,进而提高了容器的扩展性和客制化程度。此外,将业务功能容器化,可以保证业务功能之间不相互影响,提高了服务的稳定性和安全性。
在部分实施例中,在接收中心管理平台下发的代码文件之前,业务部署方法还包括:获取中心管理平台下发的镜像;其中,镜像是中心管理平台基于业务功能的代码文件,从基础镜像中选择与业务功能的代码文件对应的运行时环境生成的;其中,基础镜像支持至少一种语言的运行时环境;基于镜像创建容器。
在部分实施例中,基于镜像创建容器,包括:在满足镜像加载条件后,加载镜像,创建容器。
在部分实施例中,镜像加载条件包括:接收到的业务功能对应的业务请求满足第一预设条件,或者,到达预设时间,或者,CDN节点的宿主机的监控结果满足第二预设条件。
在部分实施例中,在基于镜像创建容器之后,业务部署方法还包括:响应于业务功能对应的业务请求,根据CDN分发策略,选择与业务请求对应的容器;将业务请求转发至对应的容器,以触发对应的容器中的业务功能。
在部分实施例中,容器被部署在CDN节点内的至少一个第一服务器中,CDN节点内的至少一个第二服务器中部署有CDN服务进程。
在部分实施例中,在将代码文件下发至CDN节点的过程中,业务部署方法还包括:将配置文件下发至CDN节点,配置文件用于指示域名与业务功能的脚本的对应关系。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本申请的实施例中的CDN节点执行的业务部署方法的流程图;
图2是本申请的实施例中的中心管理平台执行的业务部署方法的流程图;
图3是本申请的实施例中的中心管理平台、分布式镜像仓库、CDN节点和客户端之间的交互示意图;
图4是本申请的实施例中的CDN节点的节点架构示意图;
图5是本申请的实施例中的CDN节点中容器和CDN服务进程的关系示意图;
图6是本申请实施例中电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
在本发明公开的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明公开的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请实施例中,如图1所示的业务部署方法,应用于内容分发网络CDN节点,CDN节点部署有至少一个容器,容器中存储有运行时环境,包括如下步骤。
步骤101:接收中心管理平台下发的代码文件。
步骤102:将代码文件加载至容器中,加载并编译代码文件,以实现代码文件对应的业务功能。
如图2所示的业务部署方法,应用于中心管理平台,中心管理平台与内容分发网络CDN节点通信连接,CDN节点部署有至少一个容器,容器中存储有运行时环境,包括如下步骤。
步骤201:获取代码文件。
步骤202:将代码文件下发至CDN节点,以使CDN节点将代码文件加载至容器中,加载并编译代码文件,以实现代码文件对应的业务功能。
本申请实施例中,容器中部署有运行时环境,可以屏蔽底层设施的差异性,实现了业务功能和平台环境的解耦,达到业务功能跨平台运行的效果。新的业务功能对应的代码文件可以被容器动态加载并编译,以实现代码文件对应的业务功能,使得中心管理平台可以更快速地、动态地发布定制业务功能,进而提高了容器的扩展性和客制化程度。此外,将业务功能容器化,可以保证业务功能之间不相互影响,提高了服务的稳定性和安全性。
例如,在开发新的业务的过程中,运维人员通过中心管理平台编写业务逻辑,业务逻辑可以采用即时编译(Just In Time,JIT)语言或者高级语言等编写,生成代码文件。代码文件编写完成后,中心管理平台对代码文件进行测试。例如,对代码的安全性、可运行性等进行测试。在代码文件通过测试验证后,将代码文件下发至CDN节点。由于CDN节点的容器中具备代码文件的运行时环境,容器可以加载并编译该代码文件,以使该容器具备代码文件对应的业务功能。通过上述内容可知,本实施例中,运行时环境被嵌入到容器中,新的业务功能对应的代码文件可以被容器加载并编译,以实现代码文件对应的业务功能,使得中心管理平台可以更快速地、动态地发布定制业务功能,进而提高了容器的扩展性和客制化程度。相比于独立的运行时环境,CDN节点的宿主机上无需安装组件,可通过宿主机上的容器按需加载新的业务功能。
可选择的,若采用高级语言编写业务逻辑,在完成编写后,将高级语言所编写的文件编译成汇编语言文件,即.asm(汇编语言源程序的扩展名)文件,作为代码文件,下发至CDN节点,以便CDN节点加载并编译代码文件。
需要说明的是,本领域技术人员可以理解,运维人员可以根据需要选择语言进行代码文件的编写,本实施例不做限制。
在一个实施例中,在接收中心管理平台下发的代码文件之前,业务部署方法还包括:获取中心管理平台下发的镜像;其中,镜像是中心管理平台基于业务功能的代码文件,从基础镜像中选择与业务功能的代码文件对应的运行时环境生成的;其中,基础镜像支持至少一种语言的运行时环境;基于镜像创建容器。具体地,运行时环境包括语言的编译环境和执行环境(如操作系统)。本实施例中,提前制作好不同运行时环境的基础镜像,当接收到运维人员编辑好的业务功能的代码文件后,根据业务功能的代码文件,自动匹配对应的基础镜像,将代码文件和基础镜像编译打包成镜像后,将生成的镜像分发到各个CDN节点,以便CDN节点按需加载镜像,使业务功能生效。
为扩展新的业务功能,通常情况下,客户选择可编程或者可配置CDN来实现定制业务快速交付。然而,可编程或可配置的CDN是基于CDN节点上的服务软件来实现的。若定制业务对资源开销较大,可能会存在一定的安全隐患。此外,基于当前可编程CDN的技术无法实现精确的配额限制、优先级和抢占式调度,过度使用可能对CDN的基础服务造成影响。若是采用容器的方式来解决隔离限制,则客户请求脱离CDN架构,无法达到客户最初使用CDN的目的——加速。基于上述情况,本实施例中,提出了一种新的CDN架构。使用该CDN架构时,选择包含即时编译语言或采用高级语言编译成的汇编语言的代码文件,并提前定制好各语言的运行时环境,将代码文件与运行时环境整体进行容器化,并以镜像的形式下发至CDN节点,通过容器编排触发器运行,以CDN向边缘计算过渡。
值得一提的是,将业务功能和实现该业务功能所需的运行时环境打包在镜像中,再部署至CDN节点,可以快速、动态地发布客户定制的业务功能。由于镜像中包括运行时环境,既可以减小代码脚本的开销,也可以屏蔽底层设施的差异性,达到镜像中的业务功能跨平台运行的效果。不同的业务功能可以封装在不同的镜像中,使得各个业务功能之间既不相互影响,又能合理分配计算资源,同时兼顾服务的稳定性和安全性。除此之外,由于CDN和容器是错峰运行的,使得可以将CDN的空闲时间利用起来,运行容器的进程,提高时间利用效率。
需要说明的是,本领域技术人员可以理解,匹配过程中,可以根据代码文件的后缀自动匹配运行时环境,选择对应的基础镜像,本实施例不限制基础镜像匹配的具体过程。
需要说明的是,本领域技术人员可以理解,中心管理平台可以直接将镜像下发至CDN节点,也可以将镜像下发至分布式镜像仓库,CDN节点在接收到中心管理平台下发的镜像更新通知或触发获取条件后,从分布式镜像仓库拉取镜像。本实施例不限制CDN节点获取镜像的方式。
在一个实施例中,中心管理平台生成的镜像被存储在分布式镜像仓库中。中心管理平台、分布式镜像仓库、CDN节点和客户端之间的交互过程如图3所示,包括以下步骤。
步骤301:中心管理平台31下发镜像至分布式镜像仓库32。具体地,中心管理平台基于业务功能的代码文件,从基础镜像中选择与业务功能的代码文件对应的运行时环境生成该业务功能对应的镜像,下发至分布式镜像仓库32。由分布式镜像仓库32对镜像进行管理,减少了管理和维护成本。
步骤302:中心管理平台31通知CDN节点33镜像更新。具体地,中心管理平台31与CDN节点33内的服务器330中部署的容器代理软件331交互,以告知CDN节点33中心管理平台31更新了镜像。
步骤303:容器代理软件331从分布式镜像仓库32拉取镜像。
步骤304:分布式镜像仓库32将CDN节点拉取的镜像发送至容器代理软件331。
步骤305:容器代理软件331进行镜像加载,并启动镜像对应的业务功能。具体地,容器代理软件331基于镜像创建容器332,该容器332可以执行相应地业务逻辑,实现相应的业务功能。
步骤306:客户端发送业务请求,业务请求接入至该CDN节点中部署的服务器330内的负载均衡器333。其中负载均衡器333的角色可以由服务器330内部署的多个容器中的一个容器来充当,也可以单独部署。本实施例不做限制。
步骤307:负载均衡器333将业务请求分发至容器332,由容器332对业务请求进行处理。
通过上述过程,中心管理平台31将镜像下发至CDN节点33的服务器330,服务器330加载并编译镜像,生成容器,以处理客户端发送的业务请求。
在一个实施例中,中心管理平台在将代码文件下发至CDN节点的过程中,业务部署方法还包括:将配置文件下发至CDN节点,配置文件用于指示域名与业务功能的脚本的对应关系。具体地,同一业务功能可以被多个不同客户使用,不同客户通过频道配置区分。其中,频道是一个或一类域名的总和。配置文件可以由运维人员在中心管理平台上编写,也可以在其他设备或平台上编写后传输至中心管理平台。中心管理平台获取配置文件,将配置文件下发至CDN节点,并按一定规则命名保存。每个客户虽然使用一个业务功能,但是每个客户对业务功能的具体实施方式可能会有一些差异,而每个客户有不同的域名,该差异可以通过域名下面的配置来区分。CDN节点将该业务请求转发至对应的容器后。容器中的CDN服务进程根据请求的域名查找对应的配置,初始化运行时环境,并加载对应的功能的代码文件进行编译,再根据业务配置处理业务请求。
需要说明的是,本领域技术人员可以理解,配置文件的命名可以基于业务功能命名,也可以根据使用该业务功能的客户命名,本实施例不限制配置文件的命名规则。
在一个实施例中,CDN节点的节点架构如图4所示。CDN节点40中可以设置有多个容器(docker)41和网关(Gateway)42。其中,网关可以由CDN节点中的多个容器42中的一个容器可以充当主设备(master)角色,实现网关42的功能。该容器可以执行业务逻辑,实现业务功能,也可以进行流量分发,将业务请求转发给其他容器一起处理。CDN节点中的容器41可以动态扩缩容的,用于资源隔离。每个容器41中都是一个完整的生态,包含底层平台411,运行时环境412以及对应的代码文件413。其中,底层平台411用于支撑运行时运行的环境,如web架构、负载均衡器等,常见的有基于浏览器(Chrome V8)引擎的即时编译型的编程语言(JavaScript)的运行环境(nodejs)、超文本传输协议(HyperText Transfer Prtcl,HTTP)和反向代理web服务器(nginx)等。运行时环境412是程序运行时所依赖的环境,例如,JavaScript引擎的运行环境V8或Java运行环境JRE。容器中包含的业务功能通过代码文件413实现,如实时生产系统(Just In Time)JIT语言或汇编语言编辑的代码文件。业务请求经过网关42后,调度到对应的容器41中执行相关的业务逻辑。在容器内,底层平台411根据业务请求触发上层的运行时环境412加载和业务功能对应的代码文件413的编译,然后处理业务逻辑。第一次收到业务请求时,容器41需要加载和编译相关代码文件,后续业务请求可直接复用。即容器41可以直接处理后续相关的业务请求。
需要说明的是,本领域技术人员可以理解,CDN服务功能可以不进行容器化,直接部署在容器外部,充当网关42的角色,CDN服务功能也可以部署在容器内,由该容器对外提供接口,以便CDN节点与外部交互,本实施例不做限制。
以下对容器和CDN节点原本的服务进程(以下称为CDN服务进程)的关系进行举例说明。
在一个实施例中,CDN节点中容器和CDN服务进程(即缓存进程)的关系如图5所示。容器51的资源和CDN服务进程52的资源相互独立,因此,容器51和CDN服务进程52平行且相互独立。即容器在CDN节点中独立运行,使用的系统资源为容器进程对应的资源,其与CDN节点原本的服务进程是分离开来运行的,两者相互不会影响,使得容器的运行不会对CDN节点原本的服务进程造成负担。例如,CDN节点有40核,CDN节点原本的服务固定使用其中的36核,容器固定使用剩余的4核,两者的进程是相互独立的。
通过上述内容可知,本实施例提及CDN架构中,可以根据代码文件匹配相应的运行时环境,还可以根据需要为容器分配资源。即本实施例的CDN结构可以进行资源分配和环境适配。
可选择的,容器被部署在CDN节点内的至少一个第一服务器中,CDN节点内的至少一个第二服务器中部署有CDN服务进程。具体地,容器与CDN服务进程独立部署,分别部署在不同的服务器上。当某一服务器本地负载过高时,可以将业务请求转移至本节点的其他服务器或者其他节点上,以便继续提供服务。
在另一个实施例中,可以对CDN服务进行容器化部署,CDN服务进程在容器内运行。具体地,本实施例提及的业务功能包括自定义功能和/或CDN服务功能。中心管理平台将CDN服务进行容器化,打包成镜像后部署至每个CDN节点。由于CDN服务被打包成进行部署在CDN节点上,相对于原来的CDN扩容方式,由于容器是支持动态扩缩容的,它可以提前在扩缩容之前,把机器资源准备好,需要用到该机器资源的时候,把镜像生成容器,就可以动态部署扩缩容所需要的资源,缩短了CDN扩容时间。
需要说明的是,本领域技术人员可以理解,运维人员也可以根据需要,对部分CDN服务进行容器化,例如,对CDN节点的原本服务中的常用服务进行容器化。本实施例不限制CDN服务进行和容器的关系。
在一个实施例中,CDN节点上部署有容器管理软件,通过容器管理软件,与中心管理平台交互,并将CDN节点的资源纳管到中心管理平台。由中心管理平台统一管理CDN节点的资源,便于运维人员对CDN节点进行管控。
在一个实施例中,基于镜像创建容器,包括:在满足镜像加载条件后,加载镜像,创建容器。具体地,镜像加载条件可以根据镜像所包含的业务功能设置,CDN节点按需加载生效。
可选择的,镜像加载条件包括:接收到的业务功能对应的业务请求满足第一预设条件,或者,到达预设时间,或者,CDN节点的宿主机的监控结果满足第二预设条件。
具体地,镜像加载可以通过请求触发,当业务请求满足第一预设条件后,加载该镜像并将业务请求转入容器中处理。例如,针对CDN节点的某些应用程序接口(ApplicationProgramming Interface,API)的请求,或者,某一类具有相同规则的请求,当请求到达宿主机时,匹配上述规则,若匹配,则启动容器,并将请求转发至容器内的镜像中。镜像加载也可以通过设置定时任务的方式触发,即在某个时刻,自动触发镜像加载并运行镜像中的业务逻辑,以实现相应的业务功能。例如,在宿主机内设置一个定时器,到达预设时间时,宿主机自动启动容器加载镜像并运行。镜像加载还可以通过宿主机的监控数据触发,即宿主机监控某些业务数据,比如日志、告警等,当日志或告警信息指示CDN节点满足第二预设条件时,触发镜像加载并运行镜像中的业务逻辑。例如,针对一段时间内的请求响应延迟较长的情况,若监控数据指示平均延迟到达某个阈值,则通过容器触发执行链路探测功能对应的镜像加载,启动链路探测功能。
需要说明的是,本领域技术人员可以理解,第一预设条件和第二预设条件可以根据镜像所封装的业务功能确定,本实施例不做限制。
在一个实施例中,在基于镜像创建容器之后,业务部署方法还包括:响应于业务功能对应的业务请求,根据CDN分发策略,选择与业务请求对应的容器;将业务请求转发至对应的容器,以触发对应的容器中的业务功能。具体地,CDN节点收到业务请求后,由CDN节点的网关判断当前的容器分发策略,从CDN节点内部署的容器中,选择一个容器执行该业务请求。
在一个实施例中,为使得CDN节点可以为更多客户提供服务,容器中的运行时环境尽可能兼容所有开发语言,使得容器中的运行时环境可以支持不同的场景需要,甚至是不同的操作系统。将运行环境提前制作成镜像下发至CDN节点,使得CDN节点可以根据业务功能的脚本的语言类型按需加载。具体地,容器本身相当于一个独立的操作系统。一些客户在编写业务逻辑时,可能使用了一些特定语言。该情况下,客户仍然希望编写的业务逻辑可以在CDN节点上运行。为实现客户需求,容器中的运行时环境尽可能做到兼容所有的开发语言,以使客户的迁移做到无缝对接。
在一个实施例中,为避免资源独占,还可以设置超时时间,当一个业务请求的执行时间超过超时时间后,自动返回超时至发送业务请求的客户端,并结束该服务进程。
需要说明的是,本领域技术人员可以理解,在超时响应的情况下,也可以采用将该业务请求转发至其他CDN节点,由其他CDN节点中的容器响应该业务请求,还可以采用其他处理方式,以解决超市响应的问题,本实施例不限制超时响应情况下CDN节点的处理方式。
在一个实施例中,容器中部署有动态解释器。该动态解释器可以支持高级语言的动态解释。当容器内的动态执行服务进程收到代码文件后,将代码文件加载进动态解释器进行编译,编译成可执行的脚本语言后,对收到的业务请求进行处理响应。
以上各实施例可以相互结合相互引用,然并不以此为限;各实施例在不矛盾的前提下可以任意结合成为一个新的实施例。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本申请实施例还提供一种电子设备,如图6所示,包括:至少一个处理器601;以及与至少一个处理器601通信连接的存储器602;其中,存储器存储有可被至少一个处理器601执行的指令,指令被至少一个处理器601执行,以使至少一个处理器601能够执行上述方法实施例。
其中,存储器602和处理器601采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器601和存储器602的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器601处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器601。
处理器601负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器602可以被用于存储处理器601在执行操作时所使用的数据。
本申请实施例还提供一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (10)
1.一种业务部署方法,其特征在于,应用于内容分发网络CDN节点,所述CDN节点部署有至少一个容器,所述容器中存储有运行时环境,包括:
接收中心管理平台下发的代码文件;
将所述代码文件加载至所述容器中,加载并编译所述代码文件,以实现所述代码文件对应的业务功能。
2.根据权利要求1所述的业务部署方法,其特征在于,在所述接收中心管理平台下发的代码文件之前,所述业务部署方法还包括:
获取中心管理平台下发的镜像;其中,所述镜像是所述中心管理平台基于业务功能的代码文件,从基础镜像中选择与所述业务功能的代码文件对应的运行时环境生成的;其中,所述基础镜像支持至少一种语言的运行时环境;
基于所述镜像创建所述容器。
3.根据权利要求2所述的业务部署方法,其特征在于,所述基于所述镜像创建所述容器,包括:
在满足镜像加载条件后,加载所述镜像,创建所述容器。
4.根据权利要求3所述的业务部署方法,其特征在于,所述镜像加载条件包括:接收到的所述业务功能对应的业务请求满足第一预设条件,或者,到达预设时间,或者,所述CDN节点的宿主机的监控结果满足第二预设条件。
5.根据权利要求2至4中任一项所述的业务部署方法,其特征在于,在所述基于所述镜像创建所述容器之后,所述业务部署方法还包括:
响应于所述业务功能对应的业务请求,根据CDN分发策略,选择与所述业务请求对应的容器;
将所述业务请求转发至所述对应的容器,以触发所述对应的容器中的业务功能。
6.根据权利要求1至4中任一项所述的业务部署方法,其特征在于,所述容器被部署在所述CDN节点内的至少一个第一服务器中,所述CDN节点内的至少一个第二服务器中部署有CDN服务进程。
7.一种业务部署方法,其特征在于,应用于中心管理平台,所述中心管理平台与内容分发网络CDN节点通信连接,所述CDN节点部署有至少一个容器,所述容器中存储有运行时环境,包括:
获取代码文件;
将所述代码文件下发至所述CDN节点,以使所述CDN节点将所述代码文件加载至所述容器中,加载并编译所述代码文件,以实现所述代码文件对应的业务功能。
8.根据权利要求7所述的业务部署方法,其特征在于,在所述将所述代码文件下发至所述CDN节点的过程中,所述业务部署方法还包括:
将配置文件下发至所述CDN节点,所述配置文件用于指示域名与业务功能的脚本的对应关系。
9.一种电子设备,其特征在于,包括:至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行:
如权利要求1至6中任一项所述的业务部署方法,所述电子设备为CDN节点;或者,所述权利要求7或8所述的业务部署方法,所述电子设备为所述中心管理平台。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1至6中任一项所述的业务部署方法;或者,所述权利要求7或8所述的业务部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110970450.3A CN114116117A (zh) | 2021-08-23 | 2021-08-23 | 业务部署方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110970450.3A CN114116117A (zh) | 2021-08-23 | 2021-08-23 | 业务部署方法、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114116117A true CN114116117A (zh) | 2022-03-01 |
Family
ID=80441012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110970450.3A Pending CN114116117A (zh) | 2021-08-23 | 2021-08-23 | 业务部署方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114116117A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115756483A (zh) * | 2022-11-16 | 2023-03-07 | 中电金信软件有限公司 | 编译方法、装置、计算机设备和存储介质 |
-
2021
- 2021-08-23 CN CN202110970450.3A patent/CN114116117A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115756483A (zh) * | 2022-11-16 | 2023-03-07 | 中电金信软件有限公司 | 编译方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11843661B2 (en) | Web service system and method | |
US11316800B2 (en) | Method and system for managing applications | |
US12081637B2 (en) | Embedded database as a microservice for distributed container cloud platform | |
CN108139935B (zh) | 业务定义容器的资源约束的扩展 | |
CN112035228B (zh) | 一种资源调度方法及装置 | |
US7127713B2 (en) | Java application framework for use in a content delivery network (CDN) | |
US6983449B2 (en) | System and method for configuring software for distribution | |
CN110727653B (zh) | 多项目负载均衡方法和装置 | |
US20090199175A1 (en) | Dynamic Allocation of Virtual Application Server | |
US8027817B2 (en) | Simulation management within a grid infrastructure | |
US10977007B2 (en) | Apparatus and method for executing function | |
CN113382077A (zh) | 微服务调度方法、装置、计算机设备和存储介质 | |
EP1607861A2 (en) | Method and apparatus for deploying software applications using a zone architecture | |
CN114938396B (zh) | 服务调用请求的路由方法、创建服务的方法及装置 | |
CN114116117A (zh) | 业务部署方法、电子设备及存储介质 | |
US20100023950A1 (en) | Workflow processing apparatus | |
CN116700745A (zh) | 基于容器云平台的应用部署方法、装置、电子设备和介质 | |
CN114064054A (zh) | 一种微服务发布方法、装置、设备及存储介质 | |
US20240296064A1 (en) | Job control system and control method thereof | |
US20240296075A1 (en) | Job control system and control method thereof | |
CN118409763B (zh) | 用于生成可执行文件的方法和装置 | |
US20240296060A1 (en) | Job control system and control method thereof | |
CN114691189B (zh) | 分布式项目开发处理方法及系统 | |
CN113918273B (zh) | 一种容器组的创建方法和装置 | |
US7529837B2 (en) | Device and method for changing instruction description, and storage medium storing program for changing instruction |
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 |