CN108958927B - 容器应用的部署方法、装置、计算机设备和存储介质 - Google Patents

容器应用的部署方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN108958927B
CN108958927B CN201810550654.XA CN201810550654A CN108958927B CN 108958927 B CN108958927 B CN 108958927B CN 201810550654 A CN201810550654 A CN 201810550654A CN 108958927 B CN108958927 B CN 108958927B
Authority
CN
China
Prior art keywords
application
code
target
container
configuration parameters
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
CN201810550654.XA
Other languages
English (en)
Other versions
CN108958927A (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.)
Kangjian Information Technology Shenzhen Co Ltd
Original Assignee
Kangjian Information Technology Shenzhen 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 Kangjian Information Technology Shenzhen Co Ltd filed Critical Kangjian Information Technology Shenzhen Co Ltd
Priority to CN201810550654.XA priority Critical patent/CN108958927B/zh
Publication of CN108958927A publication Critical patent/CN108958927A/zh
Application granted granted Critical
Publication of CN108958927B publication Critical patent/CN108958927B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5045Making service definitions prior to deployment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种容器应用的部署方法、装置、计算机设备和存储介质。所述方法包括:接收终端发送的应用部署请求;应用部署请求包含代码标识;根据代码标识在代码仓库拉取对应的代码文件;对代码文件进行解析,确定部署应用部署请求对应的目标应用需要的配置参数,根据配置参数创建目标镜像;将代码文件添加至目标镜像,生成目标镜像文件;通过启动目标镜像文件生成容器应用,获取容器应用的访问地址,将访问地址返回至终端。采用本方法能够降低容器应用的部署门槛,提高容器应用的部署效率。

Description

容器应用的部署方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种容器应用的部署方法、装置、计算机设备和存储介质。
背景技术
容器技术的出现改变了传统应用,特别是基于网络的B/S(浏览器/服务器)应用的部署和管理方式。基于容器技术的应用虚拟化,能够以极快的方式封装和部署应用。然而,基于容器技术进行应用部署和管理具有较高的技术门槛,使得只有少数有相关专业背景的用户才能基于容器技术进行应用交付。
发明内容
基于此,有必要针对上述技术问题,提供一种能够降低容器应用的部署门槛,提高容器应用的部署效率的容器应用的部署方法、装置、计算机设备和存储介质。
一种容器应用的部署方法,所述方法包括:接收终端发送的应用部署请求;所述应用部署请求包含代码标识;根据所述代码标识在代码仓库拉取对应的代码文件;对所述代码文件进行解析,确定部署所述应用部署请求对应的目标应用需要的配置参数,根据所述配置参数创建目标镜像;将所述代码文件添加至所述目标镜像,生成目标镜像文件;通过启动所述目标镜像文件生成容器应用,获取所述容器应用的访问地址,将所述访问地址返回至所述终端。
在其中一个实施例中,所述代码文件具有对应的代码描述;对所述代码文件进行解析,确定部署所述应用部署请求对应的目标应用需要的配置参数,根据所述配置参数创建目标镜像,包括:基于所述代码描述,确定所述目标应用的应用类型;获取所述应用类型对应的固定配置参数;对所述代码文件进行解析,确定部署所述应用需要的可变配置参数;根据所述固定配置参数和可变配置参数创建目标镜像。
在其中一个实施例中,所述可变配置参数包括负载均衡配置参数;所述对所述代码文件进行解析,确定部署所述应用需要的可变配置参数,包括:在所述代码文件中提取域名信息,基于所述域名信息确定域名配置参数;计算所述代码文件的代码量,基于所述代码量确定资源配额参数;根据所述应用类型及资源配额参数,确定所述应用对应的多个服务节点;监测多个所述服务节点在监控时段的性能指标;根据所述性能指标和所述域名配置参数,生成负载均衡配置参数。
在其中一个实施例中,所述代码文件包括前端代码文件和后端代码文件;所述目标镜像包括第一目录和第二目录;所述将代码文件添加至所述目标镜像,生成目标镜像文件,包括:将所述前端代码文件存储至所述第一目录,在第一目录部署反向服务代理;将所述后端代码文件存储至所述第二目录,在第二目录部署后端服务组件;对部署了反向服务代理和后端服务组件的目标镜像打包,生成所述目标镜像文件。
在其中一个实施例中,所述方法还包括:捕获在所述容器应用触发的数据变更事件,生成所述数据变更事件对应的操作语句;对所述操作语句进行解析,生成对应的重置语句;若接收到终端发送的对所述容器应用的数据重置请求,获取所述重置语句,通过运行所述重置语句撤回对所述容器应用中数据的变更。
在其中一个实施例中,所述将所述访问地址返回至所述终端之后,还包括:接收对容器应用的访问请求;所述访问请求包含目标访问地址;根据所述目标访问地址,启动相应容器应用的主进程和辅助进程,所述主进程和所述辅助进程共享内存;当所述主进程异常关闭时,保持所述辅助进程处于运行状态;当所述主进程再次启动时,从所述辅助进程中获取内存地址;将获取到的内存地址写入再次启动的主进程,使所述主进程根据写入的内存地址进行容器应用数据恢复。
在其中一个实施例中,所述方法还包括:接收应用迁移请求;所述应用迁移请求包含应用标识;对所述应用标识对应的待迁移应用是否属于可迁移应用进行校验;若属于可迁移应用,获取启动脚本及所述应用标识对应的应用名;基于所述应用名对启动脚本进行更新,对更新后的启动脚本进行重新编译;将重新编译后得到的启动脚本添加至模板镜像,生成迁移镜像文件;通过启动所述迁移镜像文件,将所述待迁移应用迁移至容器。
一种容器应用的部署装置,所述装置包括:代码获取模块,用于接收终端发送的应用部署请求;所述应用部署请求包含代码标识;根据所述代码标识在代码仓库拉取对应的代码文件;镜像生成模块,用于对所述代码文件进行解析,确定部署所述应用部署请求对应的目标应用需要的配置参数,根据所述配置参数创建目标镜像;将所述代码文件添加至所述目标镜像,生成目标镜像文件;容器部署模块,用于通过启动所述目标镜像文件生成容器应用,获取所述容器应用的访问地址,将所述访问地址返回至所述终端。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:接收终端发送的应用部署请求;所述应用部署请求包含代码标识;根据所述代码标识在代码仓库拉取对应的代码文件;对所述代码文件进行解析,确定部署所述应用部署请求对应的目标应用需要的配置参数,根据所述配置参数创建目标镜像;将所述代码文件添加至所述目标镜像,生成目标镜像文件;通过启动所述目标镜像文件生成容器应用,获取所述容器应用的访问地址,将所述访问地址返回至所述终端。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:接收终端发送的应用部署请求;所述应用部署请求包含代码标识;根据所述代码标识在代码仓库拉取对应的代码文件;对所述代码文件进行解析,确定部署所述应用部署请求对应的目标应用需要的配置参数,根据所述配置参数创建目标镜像;将所述代码文件添加至所述目标镜像,生成目标镜像文件;通过启动所述目标镜像文件生成容器应用,获取所述容器应用的访问地址,将所述访问地址返回至所述终端。
上述容器应用的部署方法、装置、计算机设备和存储介质,终端只需将携带代码标识的应用部署请求发送至服务器,服务器即可在代码仓库拉取与代码标识对应的代码文件;通过对所述代码文件进行解析,可以确定部署所述应用部署请求对应的目标应用需要的配置参数;根据所述配置参数,可以创建目标镜像;将所述代码文件添加至所述目标镜像,可以得到目标镜像文件;通过启动所述目标镜像文件,将所述容器应用的访问地址返回至所述终端,即完成容器应用的部署。由于对代码文件自动解析确定需要的配置参数,减少用户配置操作,使得用户只需提供应用对应代码文件的代码标识,即可实现容器应用的自动部署,降低容器技术的应用门槛。
附图说明
图1为一个实施例中容器应用的部署方法的应用场景图;
图2为一个实施例中容器应用的部署方法的流程示意图;
图3为一个实施例中目标镜像文件生成步骤的流程示意图;
图4为一个实施例中容器应用的部署装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的容器应用的部署方法,可以应用于如图1所示的应用环境中。其中,终端102与服务器104通过网络进行通信。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。服务器104上部署了容器应用管理平台。用户可以通过终端102访问容器应用管理平台,并基于容器应用管理平台进行容器应用部署和管理。用户在开发好软件应用(以下称“目标应用”)后,将目标应用的代码文件存储至代码仓库,并通过终端102向服务器104发送应用部署请求。代码文件具有对应的代码标识和代码描述。应用部署请求包含代码标识。服务器104根据代码标识在代码仓库拉取对应的代码文件,基于代码描述确定该目标应用的应用类型,获取应用类型对应的固定配置参数。服务器104对代码文件进行解析,确定部署该软件应用需要的可变配置参数。服务器104根据固定配置参数和可变配置参数创建目标镜像,将代码文件添加至目标镜像,生成目标镜像文件。服务器104通过启动目标镜像文件生成容器应用,获取容器应用的访问地址,将访问地址返回至终端102。上述应用部署过程,用户只需提供目标应用对应代码文件的代码标识,即可自动确定部署应用所需的配置参数,进而基于配置参数自动进行容器应用的部署,减少人工参与度,进而降低容器技术的应用门槛。
在一个实施例中,如图2所示,提供了一种容器应用的部署方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤202,接收终端发送的应用部署请求;应用部署请求包含代码标识。
服务器上部署了容器应用管理平台。容器应用管理平台本身也可以是基于容器技术部署的。当用户需要将某个目标应用以容器的方式进行部署时,可以将目标应用对应代码文件存放至代码仓库,目标应用可以是APP(Application,应用程序)或Web(World WideWeb,全球广域网)应用等。代码文件包括多个代码子文件,如js(JavaScript,直译式脚本语言)文件、css(Cascading Style Sheets,层叠样式表)文件、html(超文本标记语言)文件、业务逻辑脚本文件和数据库管理脚本文件等。在另一个实施例中,代码文件还包括支持目标应用运行的其他文件。
代码文件具有对应的代码标识。代码标识可以是对代码文件进行散列运算得到的。具体的,终端对多个代码子文件分别进行散列运算,得到每个代码子文件对应的散列值。散列运算可以是md5(Message Digest Algorithm,消息摘要算法第五版)算法等。对应的散列值可以是md5校验码等。容易理解,终端还可以对代码子文件进行其他运算得到其他结果值,如通过哈希运算得到代码子文件对应的哈希值,对此不作限制。
终端将所有代码子文件对应的散列值存储至中间文件,如sumlist文件。终端对中间文件进行散列运算,生成中间文件对应的散列值,将中间文件对应的散列值作为代码文件的代码标识单独写入一个目标文件,如Checksum(总和检验码)文件。服务器可以从Checksum文件读取代码文件的代码标识。在另一个实施例中,代码标识可以作为相应容器应用的版本标识。
步骤204,根据代码标识在代码仓库拉取对应的代码文件。
用户通过终端向容器应用管理平台发送应用部署请求。应用部署请求携带了目标应用对应代码文件的代码标识。容器应用管理平台根据代码标识,在代码仓库拉取对应的代码文件。
步骤206,对代码文件进行解析,确定部署应用部署请求对应的目标应用需要的配置参数,根据配置参数创建目标镜像。
容器应用管理平台对代码文件进行解析,根据需要的配置项在代码文件中提取部署目标应用需要的配置参数。配置参数包括固定配置参数和可变配置参数。固定配置参数可以减少重复配置操作,提高参数配置效率。可变配置参数随目标应用不同而变化,使得该方法可以适用于不同目标应用。换言之,容器应用管理平可以根据具体应用临时生成对应的配置参数,适应性强。
容器应用管理平台根据配置参数,基于Ngnix(一种反向代理服务器)等开源镜像创建目标镜像。目标镜像包括多个存储目录。不同存储目录存放不同文件,如操作***基础镜像文件、上述代码文件等。
在一个实施例中,代码文件具有对应的代码描述;代码文件进行解析,确定部署应用部署请求对应的目标应用需要的配置参数,根据配置参数创建目标镜像,包括:基于代码描述,确定目标应用的应用类型;获取应用类型对应的固定配置参数;对代码文件进行解析,确定部署应用需要的可变配置参数;根据固定配置参数和可变配置参数创建目标镜像。
代码文件包括代码描述。代码描述可以是代码文件开发人员根据开发需求及代码逻辑后期添加的描述性文件,也可以是代码文件中多个代码语句分别对应的代码注释等。容器应用管理平台基于代码描述可以确定目标应用的应用类型。
服务器预存了不同应用类型设定了对应的固定配置参数。容器应用管理平台根据目标应用的应用类型,获取对应的固定配置参数。容器应用管理平台对提取到的代码文件进行解析,进一步得到部署该目标应用所需的可变配置参数,如域名配置参数、用户访问权限配置参数、资源配额配置参数等。根据代码文件自动分析得到配置参数,可以减少用户的配置操作,进而降低技术门槛。
步骤208,将代码文件添加至目标镜像,生成目标镜像文件。
目标镜像具有对应的目录结构。容器应用管理平台调用发布***接口将代码文件按标准目录添加至相应存放目录中。容器应用管理平台生成Docker Build命令,基于Docker Build命令将目标镜像打包成Docker镜像文件(以下简称“目标镜像文件”),从而将目标应用及其运行所依赖的其他文件打包到一个可移植的容器中。在另一实施例中,容器应用管理平台通过Docker Push命令将目标镜像文件上传至私有镜像仓库或公共仓库(以下统称“镜像仓库”),供用户下载使用。
步骤210,通过启动目标镜像文件生成容器应用,获取容器应用的访问地址,将访问地址返回至终端。
容器应用管理平台根据部署目标应用需要的物理资源,向私有云申请相应数量的服务节点。服务节点可以是独立的服务器,也可以是服务器上的一个虚拟机。当接收到私有云返回的资源分配完成的提示时,容器应用管理平台利用salt(一种自动化虚拟机管理软件)向申请到的服务节点下发相应的初始化指令。通过初始化指令,容器应用管理平台在其中一个服务节点上安装容器管理代理,如rancher agent或swarm agent(一种容器集群管理软件代理)等。
容器应用管理平台调用rancher、swarm等容器集群管理接口将初始化后的多个服务节点组成一个集群。具体的,容器应用管理平台通过调用容器集群管理接口,向rancherserver或swarm server等容器集群管理服务器发送集群创建请求,使容器集群管理服务器根据集群创建请求创建虚拟的服务器集群。容器应用管理平台向容器集群管理服务器发送集群封装请求,使容器集群管理服务器根据集群封装请求在服务器集群添加申请到的服务节点对应的节点标识。将申请到的多个分散的服务节点配置为一个逻辑的服务器集群,便于对容器应用进行管理及使用。
容器应用管理平台在部署了容器管理代理的服务节点上启动目标镜像文件。具体的,服务器通过调用容器集群管理接口,向容器集群管理服务器发送的启动目标镜像文件的请求。容器集群管理服务器对启动目标镜像文件的请求进行翻译,转换成启动容器的请求,将启动容器的请求发送至容器管理代理。由于容器管理代理预先通过初始化指令部署在服务节点上,由此服务节点可以接收容器集群管理服务器发送的启动目标镜像文件的请求。容器管理代理将启动容器的请求发送至预先启动的容器守护进程,如docker daemon(应用程序引擎守护进程)。容器守护进程从预设的镜像仓库拉取相应的目标镜像文件,在申请到的服务节点上通过调整相关配置参数启动目标镜像文件,从而实现容器应用的部署。配置参数可以是端口号、volume映射(数据卷映射)等。
容器应用管理平台将容器应用的访问地址返回至终端。访问地址可以是服务器地址和端口号,如192.168.1.1:8001。访问地址生成规则可以基于实际需求自由设定。当用户需要访问该容器应用时,只需在镜像仓库下载对应的目标镜像文件,通过预设指令启动目标镜像文件,并在终端的浏览器输入相应访问地址即可直接访问。
由于目标镜像文件预先集成了其运行所依赖的所有其他文件,从而容器应用可以独立运行,无需依赖其他组件,使用户在安装部署该容器应用时,无需关心当前浏览器的版本兼容或者依赖库的支持问题,大大简化安装操作。
本实施例中,终端只需将携带代码标识的应用部署请求发送至服务器,服务器即可在代码仓库拉取与代码标识对应的代码文件;通过对代码文件进行解析,可以确定部署应用部署请求对应的目标应用需要的配置参数;根据配置参数,可以创建目标镜像;将代码文件添加至目标镜像,可以得到目标镜像文件;通过启动目标镜像文件,将容器应用的访问地址返回至终端,即完成容器应用的部署。由于对代码文件自动解析确定需要的配置参数,减少用户配置操作,使得用户只需提供应用对应代码文件的代码标识,即可实现容器应用的自动部署,降低容器技术的应用门槛。
在一个实施例中,可变配置参数包括负载均衡配置参数;对代码文件进行解析,确定部署应用需要的可变配置参数,包括:在代码文件中提取域名信息,基于域名信息确定域名配置参数;计算代码文件的代码量,基于代码量确定资源配额参数;根据应用类型及资源配额参数,确定应用对应的多个服务节点;监测多个服务节点在监控时段的性能指标;根据性能性能指标和域名配置参数,生成负载均衡配置参数。
可变配置参数包括域名配置参数、用户访问权限配置参数、资源配额配置参数等。容器应用管理平台在代码文件中提取域名信息。域名信息包括用于访问目标应用的域名(或IP地址)和端口号。容器应用管理平台基于域名信息确定域名配置参数。容器应用管理平台在代码文件中提取用户权限信息。用户权限信息包括多个用户类型,以及每个用户类型对应进行权限信息,如设置测试人员对容器应用具有读权限(pull),开发人员对容器应用具有读写权限(push/pull)等。容器应用管理平台基于用户权限信息确定访问权限配置参数。容器应用管理平台计算代码文件的代码量,基于代码量确定资源配额参数。资源配额参数包括部署容器应用所需的CPU和内存等物理资源的容量。
容器应用管理平台根据应用类型及资源配额参数,确定应用对应的多个服务节点。具体的,容器应用管理平台根据部署目标应用需要的物理资源,向私有云申请相应数量的服务节点。服务节点可以是独立的服务器,也可以是服务器上的一个虚拟机。容器应用管理平台接收私有云返回的资源分配完成的提示。资源分配完成的提示包括一个或多个服务节点分别对应的节点标识。
容器应用管理平台利用salt(一种自动化虚拟机管理软件)向申请到的服务节点下发相应的初始化指令。通过初始化指令,容器应用管理平台在每个服务节点上安装监控组件。容器应用管理平台调用监控组件对各服务节点当前的性能指标进行监控,生成监控结果。性能指标包括CPU利用率、内存利用率和磁盘利用率等物理资源利用率。性能指标可以是定性的性能描述,也可以是定量的性能指标值。
性能指标还包括负载量。服务节点上可能已经部署了其他容器应用,已部署的容器应用占用服务节点资源,对服务节点的性能造成影响。传统的容器应用管理平台基于链接数监测各服务节点的负载量,即通过监测应用节点与服务节点之间已存在的连接数量。然而,链接是一种双向的存在,应用节点必须通过心跳或者请求结果维护这种链接状态,这就增加了服务节点的业务实现成本。
为了解决上述问题,本实施例容器应用管理平台基于监控时段传输成功的业务请求的数量监测各服务节点的负载量。具体的,容器应用管理平台在监控时段根据预设负载均衡策略向服务节点分配业务请求,并记录每个业务请求的传输结果。容器应用管理平台统计监控时段内发往不同服务节点且传输结果为传输成功的Http请求的数量,记作请求成功数量。业务请求是否传输成功不再通过传统方案中的心跳来判断,而是通过容器应用管理平台本端TCP协议中的网络层返回的状态码来判断。例如,状态码“00”表示传输成功;返回其他状态码(以下称“错误码”)则表示传输失败。服务节点基于请求成功数量,判断每个服务节点在监控时段的负载量。容易理解,请求成功数量越多表示相应服务节点所承受的负载量越大。
容器应用管理平台根据性能性能指标和域名配置参数,生成负载均衡配置参数,如每个服务节点对应的初始权重等。
本实施例中,实时监控多个服务节点的性能指标,根据性能指标动态生成对应的负载均衡配置参数,使得负载均衡策略适应性强。基于监控时段传输成功的业务请求的数量监测各服务节点的负载量,可以减少服务节点的业务实现开销,减少对各服务节点资源的占用。
在一个实施例中,代码文件包括前端代码文件和后端代码文件;目标镜像包括第一目录和第二目录。如图3所示,将代码文件添加至目标镜像,生成目标镜像文件,即目标镜像文件生成的步骤,包括:
步骤302,将前端代码文件存储至第一目录,在第一目录部署反向服务代理。
步骤304,将后端代码文件存储至第二目录,在第二目录部署后端服务组件。
步骤306,对部署了反向服务代理和后端服务组件的目标镜像打包,生成目标镜像文件。
需要部署的目标应用可以是单页Web应用(single page web application,SPA)。单页Web应用采用单页模式实现页面加载,在使用期间不会重新加载页面。在首次加载页面时,单页Web应用加载全部页面的页面资源进行缓存,后续通过js脚本拉取缓存实现页面切换。相比传统的多页模式,单页模式可以明显提高页面切换速度。但单页Web应用的前端代码文件与后端代码文件通常由不同开发团队开发完成。例如,基于第一终端进行前端代码文件的开发;基于第二终端进行后端代码文件的开发。为了便于维护,通常将前端代码文件与后端代码文件分别部署在不同服务器或同一服务器不同虚拟机上。换言之,单页Web应用通常是前后端分离部署的。
前后端分离部署使得单页Web应用常存在前端代码文件与后端代码文件版本不兼容的问题。例如,假设仅前端代码文件发生版本更新,当新版本前端代码文件调用旧版本后台资源接口时,可能存在接口不存在或功能不匹配的问题;或者假设仅后端代码文件发生版本更新,新增了一个接口,而旧版本前端代码文件无法得知该接口的存在及其调用方式,造成接口资源浪费的问题。
为了解决上述问题,容器应用管理平台在代码仓库拉取代码文件时,对前端代码文件和后端代码文件是否属于配合发布进行检测。配合发布是指前端代码文件与后端代码文件的发布时间差低于阈值。若属于配合发布,容器应用管理平台将前端代码文件和后端代码文件分别存放至目标镜像不同目录,如将前端代码文件存放至第一目录,将后端代码文件存放至第二目录。第一目录可以是/usr/src/front,第二目录可以是/usr/src/svc等。
容器应用管理平台在目标镜像部署为第一目录提供服务的反向服务代理,并按照预设的配置信息对反向服务代理进行配置。反向服务代理可以是Nginx(一种负载均衡软件)。反向服务代理作为整个单页Web应用的HTTP请求入口,用于为前端代码文件提供Http服务。服务器在目标镜像部署为第二目录提供服务的后端服务组件。后端服务组件用于为后端代码文件提供Http服务,可以是django(基于python的http服务框架)等。
在完成反向服务代理和后端服务组件的部署后,容器应用管理平台生成DockerBuild命令,基于Docker Build命令将包含第一目录和第二目录的目标镜像打包成目标镜像文件。
本实施例中,将前后端代码文件部署在同一目标镜像不同目录,并采用不同服务组件分别为前后端代码文件提供服务,可以模拟传统方式将前后端代码文件分别发布至不同服务器。换言之,本申请提供的单页Web应用实现方法可以延续传统方式将前后端分离部署时便于对前后端代码文件独立维护的优点,又可以解决传统方式将前后端分离部署导致的前后端版本不匹配的问题。
在一个实施例中,该方法还包括:捕获在容器应用触发的数据变更事件,生成数据变更事件对应的操作语句;对操作语句进行解析,生成对应的重置语句;若接收到终端发送的对容器应用的数据重置请求,获取重置语句,通过运行重置语句撤回对容器应用中数据的变更。
容器应用部署了对应的数据库。用户可以通过终端访问容器应用,并在容器应用对数据库中的数据进行变更操作。需要说明的是,发起应用部署请求的终端与触发配置变更事件的终端可以是同一终端,也可以是不同的终端。传统的在发生错误数据变更操作时需要人为进行补救,即人工将修改变更的数据回放至数据库,效率低。
为了解决上述问题,本实施例容器应用管理平台对容器应用对应数据库发生的数据变更操作进行监测。具体的,终端基于预置埋点捕获在数据库发生的数据变更事件,将捕获的数据变更事件上报至服务器,服务器将数据变更操作以SQL语句(以下称“REDO”)的形式记录下来,即生成数据变更操作对应的操作语句。服务器对操作语句对REDO进行解析生成对应的重置语句(以下称“UNDO”),由此使得每个数据变更操作具有对应UNDO。服务器对每个数据表更操作的UNDO进行存储。
后续用户在需要对失误添加或删除的数据进行重置操作时,无需打开对应的数据表,只需基于容器应用上的“数据重置”管理项目,即可触发执行对应的重置语句,自动将相应的数据变更操作撤回,使数据库回到发生数据变更之前的状态,简化数据重置操作。
本实施例中,对用户随时出发的数据变更事件进行监测记录,并自动生成对应的重置语句,能够帮助用户在最小细粒度回滚错误的数据变更操作,使用户无需打开对应的数据表即可恢复数据,简化数据重置操作。
在一个实施例中,将访问地址返回至终端之后,还包括:接收对容器应用的访问请求;访问请求包含目标访问地址;根据目标访问地址,启动相应容器应用的主进程和辅助进程,主进程和辅助进程共享内存;当主进程异常关闭时,保持辅助进程处于运行状态;当主进程再次启动时,从辅助进程中获取内存地址;将获取到的内存地址写入再次启动的主进程,使主进程根据写入的内存地址进行容器应用数据恢复。
服务器接收终端发送的对容器应用的访问请求,根据访问请求携带的目标访问地址,启动相应容器应用的主进程和辅助进程。需要说明的是,发起应用部署请求的终端与发起访问请求的终端可以是同一终端,也可以是不同的终端。服务器在主进程和辅助进程中设置有相同的地址空间标识。换言之,主进程和辅助进程的地址空间中的内存地址相同,主进程和辅助进程通过相同的内存地址共享内存地址对应的内存空间。其中,主进程对共享内存中的容器应用数据进行数据处理,而辅助进程不对共享内存中的容器应用数据进行任何数据处理。
在终端进行容器应用访问期间,服务器对主进程是否异常关闭实时监测。具体的,当监测到主进程关闭时,获取主进程对应的进程参数,将获取到的进程参数与主进程对应的处于正常范围的进程参数进行参数比较,通过参数比较确主程序是否为异常关闭。例如,进程参数可以是线程数量或处理器占用率等。
当监测到主进程异常关闭时,服务器不对辅助进程做任何处理,保持辅助进程仍然处于运行状态。需要说明的是,在辅助进程处于运行状态时,主进程和辅助进程所共享的内存中的容器应用数据不会丢失,仍然会被存储在共享的内存中。服务器监测在预设时间段内主进程是否再次开启。当监测到主进程再次开启时,服务器确定辅助进程的地址空间,从辅助进程的地址空间获取内存地址。内存地址为存储容器应用数据的内存空间所对应的唯一标识。
服务器将获取到的内存地址写入再次开启的主进程,使主进程根据写入的内存地址访问内存空间,从访问的内存空间中获取主进程异常关闭前的容器应用数据,根据获取到的容器应用数据恢复主进程异常关闭前容器应用页面。
本实施例中,在容器应用的主进程异常关闭时,保持其辅助进程处于运行状态,可以保证内存地址对应的内存空间中的容器应用数据不会丢失。当应用主进程再次开启时,将辅助进程中的内存地址写入再次开启的主进程,即可实现数据恢复,避免了由于容器应用异常关闭导致容器应用数据丢失的情况,提高了容器应用数据的安全性。
在一个实施例中,该方法还包括:接收应用迁移请求;应用迁移请求包含应用标识;对应用标识对应的待迁移应用是否属于可迁移应用进行校验;若属于可迁移应用,获取启动脚本及应用标识对应的应用名;基于应用名对启动脚本进行更新,对更新后的启动脚本进行重新编译;将重新编译后得到的启动脚本添加至模板镜像,生成迁移镜像文件;通过启动迁移镜像文件,将待迁移应用迁移至容器。
容器应用管理平台还支持将传统应用一键迁移至容器环境。传统应用是指以非容器化方式部署在服务器上的软件应用。具体的,容器应用管理平台接收终端发送的应用迁移请求。应用迁移请求包含待迁移的传统应用(以下称“待迁移应用”)的应用标识。容器应用管理平台基于antx接口(Antenna hardware interface,天线接口)获取该应用标识对应的待迁移应用。容器应用管理平台调用SCM接口(一种软件配置管理接口)查询待迁移应用的应用类型和应用名。应用类型包括无状态应用和有状态应用。其中,无状态应用是指不依赖固定的IP地址等资源的应用,如微服务。有状态应用则是需要依赖固定资源的应用。无状态应用属于可迁移应用。容器应用管理平台对待迁移应用的应用类型是否为无状态应用进行校验。
若属于可迁移应用,容器应用管理平台获取预存储的启动脚本,基于获取到的待迁移应用的应用名对启动脚本进行更新,以兼容不同容器同时启动。启动脚本可以是service.sh脚本。service.sh脚本是所有传统应用通用的启动或停止运行的脚本。容器应用管理平台调用发布***接口对更新后的启动脚本进行重新编译,并将重新编译后得到的启动脚本添加至模板镜像,生成迁移镜像文件。容器应用管理平台通过启动迁移镜像文件,即可将待迁移应用迁移至容器环境。
需要说明的是,发起应用部署请求的终端与发起应用迁移请求的终端可以是同一终端,也可以是不同的终端。
本实施例中,降低容器技术的学习成本,通过简单修改即可完成传统应用容器化。
应该理解的是,虽然图2和图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种容器应用的部署装置,包括:代码获取模块402、镜像生成模块404和容器部署模块406,其中:
代码获取模块402,用于接收终端发送的应用部署请求;应用部署请求包含代码标识;根据代码标识在代码仓库拉取对应的代码文件。
镜像生成模块404,用于对代码文件进行解析,确定部署应用部署请求对应的目标应用需要的配置参数,根据配置参数创建目标镜像;将代码文件添加至目标镜像,生成目标镜像文件。
容器部署模块406,用于通过启动目标镜像文件生成容器应用,获取容器应用的访问地址,将访问地址返回至终端。
在一个实施例中,代码文件具有对应的代码描述;镜像生成模块404还用于基于代码描述,确定目标应用的应用类型;获取应用类型对应的固定配置参数;对代码文件进行解析,确定部署应用需要的可变配置参数;根据固定配置参数和可变配置参数创建目标镜像。
在一个实施例中,可变配置参数包括负载均衡配置参数;镜像生成模块404还用于在代码文件中提取域名信息,基于域名信息确定域名配置参数;计算代码文件的代码量,基于代码量确定资源配额参数;根据应用类型及资源配额参数,确定应用对应的多个服务节点;监测多个服务节点在监控时段的性能指标;根据性能指标和域名配置参数,生成负载均衡配置参数。
在一个实施例中,代码文件包括前端代码文件和后端代码文件;目标镜像包括第一目录和第二目录;镜像生成模块404还用于将前端代码文件存储至第一目录,在第一目录部署反向服务代理;将后端代码文件存储至第二目录,在第二目录部署后端服务组件;对部署了反向服务代理和后端服务组件的目标镜像打包,生成目标镜像文件。
在一个实施例中,该装置还包括数据重置模块408,用于捕获在容器应用触发的数据变更事件,生成数据变更事件对应的操作语句;对操作语句进行解析,生成对应的重置语句;若接收到终端发送的对容器应用的数据重置请求,获取重置语句,通过运行重置语句撤回对容器应用中数据的变更。
在一个实施例中,该装置还包括数据恢复模块410,用于接收对容器应用的访问请求;访问请求包含目标访问地址;根据目标访问地址,启动相应容器应用的主进程和辅助进程,主进程和辅助进程共享内存;当主进程异常关闭时,保持辅助进程处于运行状态;当主进程再次启动时,从辅助进程中获取内存地址;将获取到的内存地址写入再次启动的主进程,使主进程根据写入的内存地址进行容器应用数据恢复。
在一个实施例中,该装置还包括应用迁移模块412,用于接收应用迁移请求;应用迁移请求包含应用标识;对应用标识对应的待迁移应用是否属于可迁移应用进行校验;若属于可迁移应用,获取启动脚本及应用标识对应的应用名;基于应用名对启动脚本进行更新,对更新后的启动脚本进行重新编译;将重新编译后得到的启动脚本添加至模板镜像,生成迁移镜像文件;通过启动迁移镜像文件,将待迁移应用迁移至容器。
关于容器应用的部署装置的具体限定可以参见上文中对于容器应用的部署方法的限定,在此不再赘述。上述容器应用的部署装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储对容器应用的操作数据等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种容器应用的部署方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收终端发送的应用部署请求;应用部署请求包含代码标识;根据代码标识在代码仓库拉取对应的代码文件;对代码文件进行解析,确定部署应用部署请求对应的目标应用需要的配置参数,根据配置参数创建目标镜像;将代码文件添加至目标镜像,生成目标镜像文件;通过启动目标镜像文件生成容器应用,获取容器应用的访问地址,将访问地址返回至终端。
在一个实施例中,代码文件具有对应的代码描述;处理器执行计算机程序时还实现以下步骤:基于代码描述,确定目标应用的应用类型;获取应用类型对应的固定配置参数;对代码文件进行解析,确定部署应用需要的可变配置参数;根据固定配置参数和可变配置参数创建目标镜像。
在一个实施例中,可变配置参数包括负载均衡配置参数;处理器执行计算机程序时还实现以下步骤:在代码文件中提取域名信息,基于域名信息确定域名配置参数;计算代码文件的代码量,基于代码量确定资源配额参数;根据应用类型及资源配额参数,确定应用对应的多个服务节点;监测多个服务节点在监控时段的性能指标;根据性能指标和域名配置参数,生成负载均衡配置参数。
在一个实施例中,代码文件包括前端代码文件和后端代码文件;目标镜像包括第一目录和第二目录;处理器执行计算机程序时还实现以下步骤:将前端代码文件存储至第一目录,在第一目录部署反向服务代理;将后端代码文件存储至第二目录,在第二目录部署后端服务组件;对部署了反向服务代理和后端服务组件的目标镜像打包,生成目标镜像文件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:捕获在容器应用触发的数据变更事件,生成数据变更事件对应的操作语句;对操作语句进行解析,生成对应的重置语句;若接收到终端发送的对容器应用的数据重置请求,获取重置语句,通过运行重置语句撤回对容器应用中数据的变更。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收对容器应用的访问请求;访问请求包含目标访问地址;根据目标访问地址,启动相应容器应用的主进程和辅助进程,主进程和辅助进程共享内存;当主进程异常关闭时,保持辅助进程处于运行状态;当主进程再次启动时,从辅助进程中获取内存地址;将获取到的内存地址写入再次启动的主进程,使主进程根据写入的内存地址进行容器应用数据恢复。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收应用迁移请求;应用迁移请求包含应用标识;对应用标识对应的待迁移应用是否属于可迁移应用进行校验;若属于可迁移应用,获取启动脚本及应用标识对应的应用名;基于应用名对启动脚本进行更新,对更新后的启动脚本进行重新编译;将重新编译后得到的启动脚本添加至模板镜像,生成迁移镜像文件;通过启动迁移镜像文件,将待迁移应用迁移至容器。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收终端发送的应用部署请求;应用部署请求包含代码标识;根据代码标识在代码仓库拉取对应的代码文件;对代码文件进行解析,确定部署应用部署请求对应的目标应用需要的配置参数,根据配置参数创建目标镜像;将代码文件添加至目标镜像,生成目标镜像文件;通过启动目标镜像文件生成容器应用,获取容器应用的访问地址,将访问地址返回至终端。
在一个实施例中,代码文件具有对应的代码描述;计算机程序被处理器执行时还实现以下步骤:基于代码描述,确定目标应用的应用类型;获取应用类型对应的固定配置参数;对代码文件进行解析,确定部署应用需要的可变配置参数;根据固定配置参数和可变配置参数创建目标镜像。
在一个实施例中,可变配置参数包括负载均衡配置参数;计算机程序被处理器执行时还实现以下步骤:在代码文件中提取域名信息,基于域名信息确定域名配置参数;计算代码文件的代码量,基于代码量确定资源配额参数;根据应用类型及资源配额参数,确定应用对应的多个服务节点;监测多个服务节点在监控时段的性能指标;根据性能指标和域名配置参数,生成负载均衡配置参数。
在一个实施例中,代码文件包括前端代码文件和后端代码文件;目标镜像包括第一目录和第二目录;计算机程序被处理器执行时还实现以下步骤:将前端代码文件存储至第一目录,在第一目录部署反向服务代理;将后端代码文件存储至第二目录,在第二目录部署后端服务组件;对部署了反向服务代理和后端服务组件的目标镜像打包,生成目标镜像文件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:捕获在容器应用触发的数据变更事件,生成数据变更事件对应的操作语句;对操作语句进行解析,生成对应的重置语句;若接收到终端发送的对容器应用的数据重置请求,获取重置语句,通过运行重置语句撤回对容器应用中数据的变更。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收对容器应用的访问请求;访问请求包含目标访问地址;根据目标访问地址,启动相应容器应用的主进程和辅助进程,主进程和辅助进程共享内存;当主进程异常关闭时,保持辅助进程处于运行状态;当主进程再次启动时,从辅助进程中获取内存地址;将获取到的内存地址写入再次启动的主进程,使主进程根据写入的内存地址进行容器应用数据恢复。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收应用迁移请求;应用迁移请求包含应用标识;对应用标识对应的待迁移应用是否属于可迁移应用进行校验;若属于可迁移应用,获取启动脚本及应用标识对应的应用名;基于应用名对启动脚本进行更新,对更新后的启动脚本进行重新编译;将重新编译后得到的启动脚本添加至模板镜像,生成迁移镜像文件;通过启动迁移镜像文件,将待迁移应用迁移至容器。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种容器应用的部署方法,所述方法包括:
接收终端发送的应用部署请求;所述应用部署请求包含代码标识;
根据所述代码标识在代码仓库拉取对应的代码文件;
对所述代码文件进行解析,确定部署所述应用部署请求对应的目标应用需要的配置参数,根据所述配置参数创建目标镜像;
将所述代码文件添加至所述目标镜像,生成目标镜像文件;
通过启动所述目标镜像文件生成容器应用,获取所述容器应用的访问地址,将所述访问地址返回至所述终端。
2.根据权利要求1所述的方法,其特征在于,所述代码文件具有对应的代码描述;对所述代码文件进行解析,确定部署所述应用部署请求对应的目标应用需要的配置参数,根据所述配置参数创建目标镜像,包括:
基于所述代码描述,确定所述目标应用的应用类型;
获取所述应用类型对应的固定配置参数;
对所述代码文件进行解析,确定部署所述目标应用需要的可变配置参数;
根据所述固定配置参数和可变配置参数创建目标镜像。
3.根据权利要求2所述的方法,其特征在于,所述可变配置参数包括负载均衡配置参数;所述对所述代码文件进行解析,确定部署所述目标应用需要的可变配置参数,包括:
在所述代码文件中提取域名信息,基于所述域名信息确定域名配置参数;
计算所述代码文件的代码量,基于所述代码量确定资源配额参数;
根据所述应用类型及所述资源配额参数,确定所述目标应用对应的多个服务节点;
监测多个所述服务节点在监控时段的性能指标;
根据所述性能指标和所述域名配置参数,生成所述负载均衡配置参数。
4.根据权利要求1所述的方法,其特征在于,所述代码文件包括前端代码文件和后端代码文件;所述目标镜像包括第一目录和第二目录;将代码文件添加至所述目标镜像,生成目标镜像文件,包括:
将所述前端代码文件存储至所述第一目录,在所述第一目录部署反向服务代理;
将所述后端代码文件存储至所述第二目录,在所述第二目录部署后端服务组件;
对部署了所述反向服务代理和所述后端服务组件的目标镜像打包,生成所述目标镜像文件。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
捕获在所述容器应用触发的数据变更事件,生成所述数据变更事件对应的操作语句;
对所述操作语句进行解析,生成对应的重置语句;
若接收到发送的对所述容器应用的数据重置请求,获取所述重置语句,通过运行所述重置语句撤回对所述容器应用中数据的变更。
6.根据权利要求1所述的方法,其特征在于,所述将所述访问地址返回至所述终端之后,还包括:
接收对容器应用的访问请求;所述访问请求包含目标访问地址;
根据所述目标访问地址,启动相应容器应用的主进程和辅助进程,所述主进程和所述辅助进程共享内存;
当所述主进程异常关闭时,保持所述辅助进程处于运行状态;
当所述主进程再次启动时,从所述辅助进程中获取内存地址;
将获取到的所述内存地址写入再次启动的主进程,使所述主进程根据写入的内存地址进行容器应用数据恢复。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收应用迁移请求;所述应用迁移请求包含应用标识;
对所述应用标识对应的待迁移应用是否属于可迁移应用进行校验;
若属于可迁移应用,获取启动脚本及所述应用标识对应的应用名;
基于所述应用名对所述启动脚本进行更新,对更新后的启动脚本进行重新编译;
将重新编译后得到的启动脚本添加至模板镜像,生成迁移镜像文件;
通过启动所述迁移镜像文件,将所述待迁移应用迁移至容器。
8.一种容器应用的部署装置,其特征在于,所述装置包括:
代码获取模块,用于接收终端发送的应用部署请求;所述应用部署请求包含代码标识;根据所述代码标识在代码仓库拉取对应的代码文件;
镜像生成模块,用于对所述代码文件进行解析,确定部署所述应用部署请求对应的目标应用需要的配置参数,根据所述配置参数创建目标镜像;将所述代码文件添加至所述目标镜像,生成目标镜像文件;
容器部署模块,用于通过启动所述目标镜像文件生成容器应用,获取所述容器应用的访问地址,将所述访问地址返回至所述终端。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN201810550654.XA 2018-05-31 2018-05-31 容器应用的部署方法、装置、计算机设备和存储介质 Active CN108958927B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810550654.XA CN108958927B (zh) 2018-05-31 2018-05-31 容器应用的部署方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810550654.XA CN108958927B (zh) 2018-05-31 2018-05-31 容器应用的部署方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN108958927A CN108958927A (zh) 2018-12-07
CN108958927B true CN108958927B (zh) 2023-04-18

Family

ID=64492741

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810550654.XA Active CN108958927B (zh) 2018-05-31 2018-05-31 容器应用的部署方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN108958927B (zh)

Families Citing this family (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109634655A (zh) * 2018-12-10 2019-04-16 江苏满运软件科技有限公司 基于热部署的变量配置方法、装置、电子设备、存储介质
CN109819014B (zh) * 2018-12-14 2022-10-25 平安普惠企业管理有限公司 项目部署方法、装置、计算机设备和存储介质
CN111352689B (zh) * 2018-12-21 2023-04-07 中国电信股份有限公司 实现应用容器化部署无缝迁移的方法和装置
CN111382136B (zh) * 2018-12-29 2024-03-15 华为技术有限公司 文件***镜像及文件请求方法
CN111381867B (zh) * 2018-12-30 2023-05-09 贝壳技术有限公司 支持服务重构的打包部署方法及装置
CN111427949B (zh) * 2019-01-09 2023-10-20 杭州海康威视数字技术股份有限公司 一种创建大数据服务的方法及装置
US11061718B2 (en) * 2019-02-15 2021-07-13 International Business Machines Corporation Pattern-based artificial intelligence planner for computer environment migration
CN109976872B (zh) * 2019-02-21 2021-05-18 北京达佳互联信息技术有限公司 数据处理方法、装置、电子设备及存储介质
CN109936571B (zh) * 2019-02-22 2020-05-29 全球能源互联网研究院有限公司 一种海量数据共享方法、开放共享平台及电子设备
CN110007948A (zh) * 2019-02-22 2019-07-12 贵州力创科技发展有限公司 一种运维方法、装置和存储介质
CN110096304A (zh) * 2019-03-16 2019-08-06 平安城市建设科技(深圳)有限公司 基于Jenkins的任务构建方法、装置、设备及存储介质
CN110333954B (zh) * 2019-04-04 2024-02-23 平安科技(深圳)有限公司 基于django框架的接口调用记录方法、装置、设备及存储介质
CN109992354B (zh) * 2019-04-09 2021-02-19 腾讯科技(深圳)有限公司 容器处理方法、装置、主体服务器、***和存储介质
CN110134455A (zh) * 2019-04-12 2019-08-16 平安医疗健康管理股份有限公司 一种应用管理***及方法
CN110096333B (zh) * 2019-04-18 2021-06-29 华中科技大学 一种基于非易失内存的容器性能加速方法
CN110333930A (zh) * 2019-04-29 2019-10-15 中国联合网络通信集团有限公司 数字化平台***
CN110138776B (zh) * 2019-05-14 2020-04-28 重庆天蓬网络有限公司 基于命令监控的docker入侵检测方法、装置及介质
CN110262873B (zh) * 2019-05-17 2023-07-28 平安科技(深圳)有限公司 容器应用的配置修改方法、装置、计算机设备及存储介质
CN110221859A (zh) * 2019-06-05 2019-09-10 软通智慧科技有限公司 一种应用的部署上线管理方法、装置、设备和存储介质
CN112148419B (zh) * 2019-06-28 2024-01-02 杭州海康威视数字技术股份有限公司 云平台中镜像管理方法、装置、***及存储介质
CN110399134A (zh) * 2019-06-28 2019-11-01 绿漫科技有限公司 一种基于容器的快速部署方法及***
CN110333877A (zh) * 2019-07-09 2019-10-15 西安点告网络科技有限公司 基于应用的可视化容器配置管理方法、装置及***
WO2021003729A1 (zh) * 2019-07-11 2021-01-14 深圳市大疆创新科技有限公司 配置方法、物理设备、服务器及计算机可读存储介质
CN110413288B (zh) * 2019-07-31 2023-05-09 新华三大数据技术有限公司 应用部署方法、装置、服务器及存储介质
CN110531984B (zh) * 2019-08-08 2023-06-23 金蝶软件(中国)有限公司 代码编译方法、装置、***、计算机设备和存储介质
CN110609732B (zh) * 2019-08-13 2023-02-07 平安普惠企业管理有限公司 应用程序部署方法、装置、计算机设备和存储介质
CN110704156A (zh) * 2019-08-16 2020-01-17 北京奇艺世纪科技有限公司 一种Docker镜像构建方法及装置
CN110531995B (zh) * 2019-08-23 2022-06-17 济南浪潮数据技术有限公司 管理平台的部署方法、装置、设备及计算机可读存储介质
CN110502268A (zh) * 2019-08-29 2019-11-26 恩亿科(北京)数据科技有限公司 应用程序更新方法、装置、服务器及存储介质
CN110851144B (zh) * 2019-09-06 2023-09-29 北京京东尚科信息技术有限公司 云主机部署方法及装置、计算机可存储介质
CN110753088B (zh) * 2019-09-18 2022-10-18 平安科技(深圳)有限公司 一种***部署方法及装置
CN110750242B (zh) * 2019-09-19 2023-05-02 北京字节跳动网络技术有限公司 一种部署文件的方法、***、介质和电子设备
CN112532675B (zh) * 2019-09-19 2023-04-18 贵州白山云科技股份有限公司 一种网络边缘计算***的创建方法、装置及介质
CN112532669B (zh) * 2019-09-19 2023-06-13 贵州白山云科技股份有限公司 一种网络边缘计算方法、装置及介质
CN110855739B (zh) * 2019-09-25 2022-11-08 烽火通信科技股份有限公司 一种基于容器技术的异地及异构资源统一管理方法及***
CN112579099A (zh) * 2019-09-30 2021-03-30 北京国双科技有限公司 代码的部署方法、装置、存储介质及电子设备
CN110647332A (zh) * 2019-09-30 2020-01-03 北京百度网讯科技有限公司 基于容器云的软件部署方法和装置
CN110780888A (zh) * 2019-10-09 2020-02-11 北京市天元网络技术股份有限公司 用于部署云数据库的方法
CN112650662A (zh) * 2019-10-10 2021-04-13 上海哔哩哔哩科技有限公司 测试环境部署方法及装置
CN110837612B (zh) * 2019-11-01 2023-05-12 腾讯科技(深圳)有限公司 统一资源标识符uri数据的获取方法和装置、存储介质
CN110830571A (zh) * 2019-11-05 2020-02-21 许继集团有限公司 一种业务数据备份与提取方法及计算机可读介质
CN111176782B (zh) * 2019-11-08 2023-11-03 腾讯云计算(北京)有限责任公司 一种在线实验方法和装置
CN110958138B (zh) * 2019-11-14 2022-03-25 新华三大数据技术有限公司 一种容器扩容方法及装置
CN110865840B (zh) * 2019-11-18 2023-11-03 义乌中国小商品城大数据有限公司 一种应用管理方法、装置、服务器及存储介质
CN110995480B (zh) * 2019-11-25 2022-09-20 百度在线网络技术(北京)有限公司 区块链网络部署方法、装置、电子设备和介质
CN111090823B (zh) * 2019-12-23 2024-02-09 广州市百果园信息技术有限公司 一种页面应用的集成***以及应用访问方法、装置和设备
CN111273965B (zh) * 2020-02-17 2021-10-29 支付宝(杭州)信息技术有限公司 一种容器应用启动方法、***、装置及电子设备
CN111399897A (zh) * 2020-02-21 2020-07-10 北京值得买科技股份有限公司 基于kubernetes的应用发布方法以及***
CN111367658B (zh) * 2020-02-24 2023-05-26 广州市百果园信息技术有限公司 一种直播服务***及进程管理方法
CN111355793A (zh) * 2020-02-26 2020-06-30 山东爱城市网信息技术有限公司 一种基于HTML5和Python的大文件上传方法
CN113360160A (zh) * 2020-03-05 2021-09-07 北京沃东天骏信息技术有限公司 部署应用的方法、装置、电子设备和存储介质
CN111385304B (zh) * 2020-03-16 2022-09-30 深信服科技股份有限公司 ***部署方法、设备、计算机存储介质及融合***
CN111459610B (zh) * 2020-03-19 2024-03-26 网宿科技股份有限公司 一种模型部署方法和装置
CN113296873A (zh) * 2020-05-15 2021-08-24 阿里巴巴集团控股有限公司 镜像构建方法和装置、终端设备和计算机存储介质
CN111596928B (zh) * 2020-05-19 2021-08-13 吉林大学 一种应用控制方法、装置及电子设备
CN111611054B (zh) * 2020-05-21 2023-05-16 网宿科技股份有限公司 一种应用部署方法及装置
CN111625222B (zh) * 2020-05-26 2023-08-04 北京互金新融科技有限公司 前端代码的线上验证***及验证方法
CN111756804B (zh) * 2020-05-27 2022-05-31 苏州浪潮智能科技有限公司 一种配置web请求的方法及装置
CN111625320B (zh) * 2020-05-27 2022-05-17 苏州浪潮智能科技有限公司 一种镜像管理方法、***、设备以及介质
CN111736818A (zh) * 2020-05-28 2020-10-02 浪潮电子信息产业股份有限公司 基于容器云的应用创建方法、装置及电子设备和存储介质
CN111722866B (zh) * 2020-06-19 2022-06-17 浪潮电子信息产业股份有限公司 一种OpenStack代码修复方法、装置、设备及存储介质
CN111857797B (zh) * 2020-06-29 2022-04-22 浪潮电子信息产业股份有限公司 一种镜像构建方法、***及相关装置
CN111736956B (zh) * 2020-06-29 2023-01-10 苏州浪潮智能科技有限公司 一种容器服务部署方法、装置、设备及可读存储介质
CN111966445B (zh) * 2020-06-30 2023-07-25 北京百度网讯科技有限公司 调用应用程序接口的处理方法和装置
CN111881470B (zh) * 2020-07-20 2024-07-12 易通星云(北京)科技发展有限公司 数据访问方法及其装置、计算机可读存储介质
CN113760442A (zh) * 2020-10-19 2021-12-07 北京沃东天骏信息技术有限公司 一种应用的运行和访问方法、装置及设备
CN112379892A (zh) * 2020-10-29 2021-02-19 远光软件股份有限公司 喷氨预测代码的处理方法、装置、存储介质及终端设备
CN112363802A (zh) * 2020-11-12 2021-02-12 中国人寿保险股份有限公司 一种应用部署方法及装置
CN114036223A (zh) * 2020-11-13 2022-02-11 武汉联影医疗科技有限公司 医疗信息管理方法、***、装置、计算机设备和存储介质
CN112230946A (zh) * 2020-11-18 2021-01-15 浪潮云信息技术股份公司 一种基于容器的应用***部署方法及相关装置
CN112468337A (zh) * 2020-11-19 2021-03-09 安徽江淮汽车集团股份有限公司 车联网微服务的部署方法、装置、设备及存储介质
CN112395363B (zh) * 2020-12-04 2024-03-26 北京有竹居网络技术有限公司 数据同步方法、装置、设备及可读存储介质
CN112667998B (zh) * 2020-12-08 2024-03-01 中国科学院信息工程研究所 一种容器镜像仓库的安全访问方法及***
CN112600931B (zh) * 2020-12-22 2022-05-24 新华三云计算技术有限公司 一种api网关部署方法及装置
CN112667350A (zh) * 2020-12-23 2021-04-16 广州三七互娱科技有限公司 配置调度方法、装置及***
CN112631730A (zh) * 2020-12-30 2021-04-09 中国建设银行股份有限公司 一种模型的处理方法及装置、设备、计算机可读存储介质
US11720345B2 (en) 2021-01-20 2023-08-08 Red Hat, Inc. Pull based inner-loop code deployment
CN112817691B (zh) * 2021-01-27 2024-02-02 北京迈格威科技有限公司 资源分配方法、装置、设备及介质
CN112860645A (zh) * 2021-02-09 2021-05-28 恒安嘉新(北京)科技股份公司 一种离线压缩文件的处理方法、装置、计算机设备及介质
CN112817615B (zh) * 2021-02-24 2023-12-26 共达地创新技术(深圳)有限公司 文件处理方法、设备、***和存储介质
CN115190034B (zh) * 2021-04-07 2023-11-03 上海荟诚信息***有限公司 基于边缘云计算的服务部署方法
CN113162944B (zh) * 2021-04-29 2022-08-02 杭州安恒信息安全技术有限公司 安全运营平台与安全组件的网络通信方法、装置及设备
CN113238762B (zh) * 2021-05-10 2024-07-02 深圳前海微众银行股份有限公司 java应用远程部署方法、装置及设备
CN113590305B (zh) * 2021-05-14 2022-12-09 西安交通大学 一种基于k3s的边缘计算应用能力部署方法
CN113448686B (zh) * 2021-06-22 2024-05-24 深信服科技股份有限公司 一种资源部署方法、装置、电子设备及存储介质
CN113448594B (zh) * 2021-06-29 2024-06-18 京东科技控股股份有限公司 服务的处理方法、装置、计算机设备及存储介质
CN113434254B (zh) * 2021-06-30 2023-03-07 深圳平安智汇企业信息管理有限公司 客户端部署方法、装置、计算机设备及存储介质
CN113672337B (zh) * 2021-07-16 2024-02-13 广东浪潮智慧计算技术有限公司 一种应用迁移方法、装置、设备及计算机可读存储介质
CN113485795B (zh) * 2021-07-26 2024-03-26 四川万益能源科技有限公司 一种基于多种类型项目的自动化容器启动方法
CN113596162A (zh) * 2021-07-30 2021-11-02 北京快乐茄信息技术有限公司 镜像文件处理方法及装置、网络设备和存储介质
CN113608838A (zh) * 2021-08-09 2021-11-05 吉首大学 应用镜像文件的部署方法、装置、计算机设备和存储介质
CN113590336A (zh) * 2021-08-11 2021-11-02 上海仁童电子科技有限公司 边缘计算设备的算法管理方法及装置
CN113641373B (zh) * 2021-08-30 2024-06-18 北京京东乾石科技有限公司 一种镜像部署的方法、装置和存储介质
CN114090111B (zh) * 2021-10-18 2024-04-05 荣耀终端有限公司 一种应用启动方法、装置、终端、介质及产品
CN114257413B (zh) * 2021-11-19 2023-10-03 南方电网数字平台科技(广东)有限公司 基于应用容器引擎的反制阻断方法、装置和计算机设备
CN114090183B (zh) * 2021-11-25 2023-07-21 抖音视界有限公司 一种应用启动方法、装置、计算机设备和存储介质
CN114416109B (zh) * 2021-12-15 2023-01-10 广州市玄武无线科技股份有限公司 程序部署方法及其装置、计算机设备、存储介质
CN114356426A (zh) * 2022-01-05 2022-04-15 中国建设银行股份有限公司 基于agent技术的***初始化方法及相关装置
CN114064155A (zh) * 2022-01-17 2022-02-18 深圳市华付信息技术有限公司 基于容器的算法调用方法、装置、设备及存储介质
CN114461399B (zh) * 2022-02-11 2024-07-02 浙江大华技术股份有限公司 资源的分配方法和装置、存储介质及电子装置
CN114721728A (zh) * 2022-03-07 2022-07-08 阿里巴巴(中国)有限公司 基于云应用的处理方法、电子设备和存储介质
CN114281371A (zh) * 2022-03-08 2022-04-05 中电云数智科技有限公司 一种前端应用部署方法及装置
CN114996117B (zh) * 2022-03-28 2024-02-06 湖南智擎科技有限公司 面向SaaS模式的客户端GPU应用评测***及方法
CN115373727B (zh) * 2022-08-08 2024-08-09 深圳安巽科技有限公司 Http应用及后台脚本的部署方法、***及存储介质
CN115129429B (zh) * 2022-09-01 2023-06-13 南京翼辉爱智物联技术有限公司 容器应用管理方法、装置、电子设备及存储介质
CN115828231B (zh) * 2022-10-28 2024-07-02 广州汽车集团股份有限公司 应用程序运行方法、装置、车辆以及存储介质
CN115665172B (zh) * 2022-10-31 2023-04-28 北京凯思昊鹏软件工程技术有限公司 一种嵌入式终端设备的管理***
CN116560804B (zh) * 2023-07-10 2023-09-05 中国人民解放军国防科技大学 一种使用多个容器镜像共同运行容器的方法和装置
CN116974615B (zh) * 2023-09-25 2023-12-15 厦门她趣信息技术有限公司 一种提高软件编译打包速度的方法和装置以及设备
CN117076431B (zh) * 2023-10-13 2024-03-12 云筑信息科技(成都)有限公司 一种用于***升级数据迁移的方法
CN117648100B (zh) * 2024-01-30 2024-04-30 北京盛邦赛云科技有限公司 应用部署方法、装置、设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105117293A (zh) * 2015-09-01 2015-12-02 茂名市群英网络有限公司 Windows***环境自动化部署方法及自动部署***
CN107547250A (zh) * 2017-06-26 2018-01-05 新华三云计算技术有限公司 在云计算管理平台中部署数据库的方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7467391B2 (en) * 2002-10-30 2008-12-16 International Business Machines Corporation Allowing client applications to programmatically access web sites
US9258262B2 (en) * 2012-04-30 2016-02-09 Racemi, Inc. Mailbox-based communications system for management communications spanning multiple data centers and firewalls

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105117293A (zh) * 2015-09-01 2015-12-02 茂名市群英网络有限公司 Windows***环境自动化部署方法及自动部署***
CN107547250A (zh) * 2017-06-26 2018-01-05 新华三云计算技术有限公司 在云计算管理平台中部署数据库的方法和装置

Also Published As

Publication number Publication date
CN108958927A (zh) 2018-12-07

Similar Documents

Publication Publication Date Title
CN108958927B (zh) 容器应用的部署方法、装置、计算机设备和存储介质
CN108959455B (zh) 单页Web应用实现方法、装置、计算机设备和存储介质
US11567755B2 (en) Integration of containers with external elements
CN106991035B (zh) 一种基于微服务架构的主机监控***
CN109783117B (zh) 一种无盘***的镜像文件制作及启动方法
US10284416B2 (en) Workload deployment with infrastructure management agent provisioning
US8924954B2 (en) Application software installation method and application software installation apparatus
CN109597677B (zh) 用于处理信息的方法和装置
CN105164644B (zh) 钩子框架
US20210048998A1 (en) Container-based server environments
CN112118565A (zh) 多租户服务灰度发布方法、装置、计算机设备和存储介质
US10305962B1 (en) Unit testing clients of web services
EP2765508A1 (en) Installation method and installation device for application software
US10228993B2 (en) Data dump for a memory in a data processing system
US9229758B2 (en) Passive monitoring of virtual systems using extensible indexing
WO2018039875A1 (zh) 应用升级包获取方法及装置
KR20130098775A (ko) 다중 운영체제를 지원하는 클라이언트 단말 및 다중 운영체제 지원방법
CN112068902B (zh) 一种插件调用方法、装置、电子设备及存储介质
US20130111018A1 (en) Passive monitoring of virtual systems using agent-less, offline indexing
CN112688804A (zh) 业务平台的部署方法、装置、设备及存储介质
CN114185866B (zh) 数据本地存储控制方法及医疗数据存储***
CN109939441B (zh) 应用复盘校验处理方法及***
CN113595832A (zh) 一种网络数据获取***和方法
CN116225622A (zh) 基于Docker的PaaS应用参数模板的测试方法
WO2021174756A1 (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