CN115562691A - 一种基于容器的云应用发布方法及*** - Google Patents
一种基于容器的云应用发布方法及*** Download PDFInfo
- Publication number
- CN115562691A CN115562691A CN202211547424.0A CN202211547424A CN115562691A CN 115562691 A CN115562691 A CN 115562691A CN 202211547424 A CN202211547424 A CN 202211547424A CN 115562691 A CN115562691 A CN 115562691A
- Authority
- CN
- China
- Prior art keywords
- application
- cloud
- container
- mirror image
- publishing
- 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
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000004806 packaging method and process Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000006872 improvement Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
Images
Classifications
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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
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 Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于容器的云应用发布方法及***,属于云计算技术领域。本发明使用应用发布模板描述需要发布的云应用,并根据应用发布模板打包应用镜像并将相应的应用镜像推送到镜像仓库,最后通知容器云平台从镜像仓库中获取并启动相应的应用镜像完成云应用发布。本发明实现了一套自动化的流程进行云应用的发布,解决了传统的云应用发布的整个技术过程中需要多次进行人工手动操作的问题,为云应用发布过程提供了自动化能力,提高了云应用发布的效率。
Description
技术领域
本发明涉及云计算技术领域,具体涉及一种基于容器的云应用发布方法及***。
背景技术
目前,在云计算领域,需要快速灵活发布应用到云平台上。为了实现此目的并解决上述问题,虚拟化技术应运而生。而容器技术则是近几年在云计算行业虚拟化技术发展中不可缺少的一环。
在计算机技术中,容器是一种更轻量级,更灵活的虚拟化处理方式,它将一个应用程序所需的一切打包在一起。容器包括所有代码,各种依赖甚至操作***,这让应用程序几乎在任何地方都可以运行。确保应用程序从一个环境移动到另一个环境的正确运行。它只是虚拟了操作***,而不像虚拟机一样去虚拟底层计算机。容器技术的好处,在于所有业务应用可以直接运行在物理主机的操作***之上,可以直接读写磁盘,应用之间通过计算、存储和网络资源的命名空间进行隔离,为每个应用形成一个逻辑上独立的“容器操作***”。
现有的基于容器的云应用发布过程中往往需要进行四个步骤的人工操作,即:手动定位应用文件、手动构建容器镜像、手动推送容器镜像、手动部署容器镜像。对用户来说,其步骤比较繁琐且不流畅,甚至容易出现操作错误,影响云应用发布质量和效率。因此,有必要对此进行相应的改进。
发明内容
针对现有技术存在的缺点与不足,本发明的目的在于提供一种基于容器的云应用发布方法及***,以求将应用方便地发布到云平台上,提高发布效率,减少云应用发布的时间和人力成本。
具体而言,本发明公开的基于容器的云应用发布方法,其技术方案是:使用应用发布模板文件描述需要发布的云应用,所述应用发布模板文件包括使用说明、镜像描述文件和程序启动文件,所述使用说明描述了对应用发布模板文件中镜像描述文件和程序启动文件的说明,所述镜像描述文件描述了需要发布的云应用所执行的相关命令,所述程序启动文件包括了需要发布的云应用所运行的相关应用程序和/或调用的应用资源;根据应用发布模板文件将需要发布的云应用打包为应用镜像并将相应的应用镜像推送到镜像仓库;通知容器云平台从镜像仓库中获取并启动相应的应用镜像,完成需要发布的云应用的发布。
进一步而言,所述镜像描述文件的内容具体包括:需要发布的云应用继承自基础镜像的命令;需要发布的云应用构建镜像的命令;需要发布的云应用运行程序启动文件时所使用的命令。
进一步而言,所述基础镜像包括操作***、语言编译环境以及监控程序。
进一步而言,所述程序启动文件是根据应用发布模板文件的使用说明,将需要发布的云应用所运行的相关应用程序和/或应用资源放置到使用说明所指定的目录位置下形成的。
进一步而言,所述镜像描述文件的内容是根据应用发布模板文件的使用说明,将需要发布的云应用所执行的相关命令写入到镜像描述文件中形成的。
进一步而言,所述根据应用发布模板文件将需要发布的云应用打包为应用镜像并将相应的应用镜像推送到镜像仓库,是通过调用docker 服务的接口解析应用发布模板文件,根据应用发布模板文件的内容将需要发布的云应用打包为应用镜像,再通过调用docker 服务的接口将该应用镜像推送到镜像仓库。
进一步而言,所述通知容器云平台从镜像仓库中获取并启动相应的应用镜像,是通过调用容器云平台的接口发送包括CPU信息、内存信息、硬盘资源信息和容器启动命令在内的参数信息,由容器云平台根据以上参数信息从镜像仓库拉取相应的应用镜像,根据应用镜像生成及启动容器,配置容器运行时包括CPU、内存、硬盘大小在内的分配数值,完成相应应用容器的创建,由相应应用容器执行相关命令,运行相关应用程序和/或调用应用资源。
本发明公开的基于容器的云应用发布***,使用上述云应用发布方法发布云应用,包括:
应用配置单元,配置需要发布的云应用所对应的应用发布模板文件;
应用打包单元,根据所配置的应用发布模板文件将需要发布的云应用打包为应用镜像;
镜像发布单元,将打包完成的应用镜像推送到镜像仓库;
应用部署单元,通知容器云平台从镜像仓库中获取并启动相应的应用镜像,完成需要发布的云应用的发布。
进一步而言,应用配置单元所配置的应用发布模板文件,来自于已保存在发布***中的既有应用发布模板文件,或者为新上传到发布***中的新的应用发布模板文件。
进一步而言,所述应用配置单元还确定需要发布应用的容器云平台。
本发明的有益效果如下:本发明使用应用发布模板文件描述需要发布的云应用,实现了一套自动化的流程进行云应用的发布,解决了传统的云应用发布的整个技术过程中需要多次进行人工手动操作的问题,为云应用发布过程提供了自动化能力,提高了云应用发布的效率。
附图说明
图1是本发明实施例1的实施过程图。
图2是镜像描述文件的内容示意图。
图3是构建应用镜像及发布该镜像的过程示意图。
图4是基于容器的云应用发布***的架构示意图。
图5是应用镜像的内容结构示意图。
具体实施方式
下面结合附图和实施例对本发明做进一步的说明。
实施例1:
本发明的一个实施例,为一种基于容器的云应用发布***,该***的架构如图4所示,主要包括以下四个组成单元,分别是:
应用配置单元,配置需要发布的云应用所对应的应用发布模板文件。
应用打包单元,根据所配置的应用发布模板文件将需要发布的云应用打包为应用镜像。
镜像发布单元,将打包完成的应用镜像推送到镜像仓库。
应用部署单元,通知容器云平台从镜像仓库中获取并启动相应的应用镜像,完成需要发布的云应用的发布。
应用发布模板文件的内容包括使用说明、镜像描述文件和程序启动文件三个部分,其中使用说明描述了对应用发布模板文件中镜像描述文件和程序启动文件的说明;镜像描述文件描述了需要发布的云应用所执行的相关命令,其内容是根据应用发布模板文件的使用说明,将需要发布的云应用所执行的相关命令写入到镜像描述文件中形成的;程序启动文件包括了需要发布的云应用所运行的相关应用程序和/或调用的应用资源,是根据应用发布模板文件的使用说明,将需要发布的云应用所运行的相关应用程序和/或应用资源放置到使用说明所指定的目录位置下形成的。
如图2所示,镜像描述文件的内容具体包括:需要发布的云应用继承自基础镜像的命令;需要发布的云应用构建镜像的命令;需要发布的云应用运行程序启动文件时所使用的命令。其中,基础镜像包括操作***,语言编译环境以及监控程序(Agent程序),为应用运行提供缺省的***运行环境和容器监控功能。构建镜像的命令,允许自定义添加镜像构建命令,丰富基础镜像中的***环境和组件。运行程序启动文件时所使用的命令,包括启动基础镜像内程序的命令,还允许自定义添加需要发布的云应用的应用程序的启动命令或其他命令。
本实施例中,应用配置单元所配置的应用发布模板文件,来自于已保存在发布***中的既有应用发布模板文件,也可以是新上传到发布***中的新的应用发布模板文件。在设计新的应用发布模板文件时,可以对既有应用发布模板文件进行修改,改变相应的使用说明、镜像描述文件、程序启动文件,如将新的应用程序和应用资源放置到模板文件中以更新程序启动文件。
发布***可以设计为在多种容器云平台上发布应用,由应用配置单元确定需要发布应用的容器云平台,允许选择多个容器云平台作为发布平台。
如图3所示,应用打包单元,对应用配置单元所配置应用发布模板文件,通过调用docker 服务的接口进行识别解析,根据应用发布模板文件的内容明确该应用发布所需要的基础镜像和应用文件等相关信息,构建应用镜像,从而将需要发布的云应用打包为应用镜像,再通过调用docker 服务的接口将该应用镜像推送到镜像仓库,实现镜像发布。所得到的应用镜像内容结构如图5所示。
最后,应用部署单元通知容器云平台从镜像仓库中获取并启动相应的应用镜像,通过调用容器云平台的接口发送包括CPU信息、内存信息、硬盘资源信息和容器启动命令在内的参数信息,由容器云平台根据以上参数信息从镜像仓库拉取相应的应用镜像,根据应用镜像生成及启动容器,配置容器运行时包括CPU、内存、硬盘大小在内的分配数值,完成相应应用容器的创建,由相应应用容器执行相关命令,运行相关应用程序和/或调用应用资源,最终完成需要发布的云应用的发布。
下面以选择在k8s云平台上发布一个新的应用(该新的应用通过修改既有应用发布模板得到)为例进行说明,其具体实施过程如图1所示:
S1)在发布***中选择k8s云平台作为需要发布应用的容器云平台;
S2)然后,从发布***中获取应用发布模板文件,并对进行修改以形成新的应用发布模板文件;
S3)上传新的应用发布模板文件到发布***;
S4)发布***根据新的应用发布模板文件自动打包应用镜像并推送到镜像仓库;
S5)发布***自动通知k8s云平台获取和启动镜像为应用容器,完成应用发布。
以上所述仅为本发明的优选例实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
Claims (10)
1.一种基于容器的云应用发布方法,其特征在于:
使用应用发布模板文件描述需要发布的云应用,所述应用发布模板文件包括使用说明、镜像描述文件和程序启动文件,所述使用说明描述了对应用发布模板文件中镜像描述文件和程序启动文件的说明,所述镜像描述文件描述了需要发布的云应用所执行的相关命令,所述程序启动文件包括了需要发布的云应用所运行的相关应用程序和/或调用的应用资源;
根据应用发布模板文件将需要发布的云应用打包为应用镜像并将相应的应用镜像推送到镜像仓库;
通知容器云平台从镜像仓库中获取并启动相应的应用镜像,完成需要发布的云应用的发布。
2.如权利要求1所述的基于容器的云应用发布方法,其特征在于,所述镜像描述文件的内容具体包括:
需要发布的云应用继承自基础镜像的命令;
需要发布的云应用构建镜像的命令;
需要发布的云应用运行程序启动文件时所使用的命令。
3.如权利要求2所述的基于容器的云应用发布方法,其特征在于,所述基础镜像包括操作***、语言编译环境以及监控程序。
4.如权利要求1所述的基于容器的云应用发布方法,其特征在于,所述程序启动文件是根据应用发布模板文件的使用说明,将需要发布的云应用所运行的相关应用程序和/或应用资源放置到使用说明所指定的目录位置下形成的。
5.如权利要求1所述的基于容器的云应用发布方法,其特征在于,所述镜像描述文件的内容是根据应用发布模板文件的使用说明,将需要发布的云应用所执行的相关命令写入到镜像描述文件中形成的。
6.如权利要求1~5任一所述的基于容器的云应用发布方法,其特征在于,所述根据应用发布模板文件将需要发布的云应用打包为应用镜像并将相应的应用镜像推送到镜像仓库,是通过调用docker 服务的接口解析应用发布模板文件,根据应用发布模板文件的内容将需要发布的云应用打包为应用镜像,再通过调用docker 服务的接口将该应用镜像推送到镜像仓库。
7.如权利要求1~5任一所述的基于容器的云应用发布方法,其特征在于,所述通知容器云平台从镜像仓库中获取并启动相应的应用镜像,是通过调用容器云平台的接口发送包括CPU信息、内存信息、硬盘资源信息和容器启动命令在内的参数信息,由容器云平台根据以上参数信息从镜像仓库拉取相应的应用镜像,根据应用镜像生成及启动容器,配置容器运行时包括CPU、内存、硬盘大小在内的分配数值,完成相应应用容器的创建,由相应应用容器执行相关命令,运行相关应用程序和/或调用应用资源。
8.一种基于容器的云应用发布***,使用如权利要求1~7任一所述的云应用发布方法发布云应用,其特征在于,包括:
应用配置单元,配置需要发布的云应用所对应的应用发布模板文件;
应用打包单元,根据所配置的应用发布模板文件将需要发布的云应用打包为应用镜像;
镜像发布单元,将打包完成的应用镜像推送到镜像仓库;
应用部署单元,通知容器云平台从镜像仓库中获取并启动相应的应用镜像,完成需要发布的云应用的发布。
9.如权利要求8所述的云应用发布***,其特征在于,应用配置单元所配置的应用发布模板文件,来自于已保存在发布***中的既有应用发布模板文件,或者为新上传到发布***中的新的应用发布模板文件。
10.如权利要求8或9所述的云应用发布***,其特征在于,所述应用配置单元还确定需要发布应用的容器云平台。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211547424.0A CN115562691A (zh) | 2022-12-05 | 2022-12-05 | 一种基于容器的云应用发布方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211547424.0A CN115562691A (zh) | 2022-12-05 | 2022-12-05 | 一种基于容器的云应用发布方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115562691A true CN115562691A (zh) | 2023-01-03 |
Family
ID=84770761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211547424.0A Pending CN115562691A (zh) | 2022-12-05 | 2022-12-05 | 一种基于容器的云应用发布方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115562691A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108205481A (zh) * | 2016-12-19 | 2018-06-26 | 华为技术有限公司 | 应用的容器实例创建方法和装置 |
CN108984205A (zh) * | 2018-07-26 | 2018-12-11 | 浙江大学 | 一种基于容器技术的应用自动化构建与部署的方法及装置 |
US20190213004A1 (en) * | 2016-08-19 | 2019-07-11 | Huawei Technologies Co., Ltd. | Application component deployment method and deployment node |
CN110502577A (zh) * | 2019-08-15 | 2019-11-26 | 苏州浪潮智能科技有限公司 | 一种云管理平台部署容器应用的方法、设备和介质 |
CN111459509A (zh) * | 2020-03-27 | 2020-07-28 | 北京金山云网络技术有限公司 | 容器镜像的构建方法、装置和服务器 |
-
2022
- 2022-12-05 CN CN202211547424.0A patent/CN115562691A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190213004A1 (en) * | 2016-08-19 | 2019-07-11 | Huawei Technologies Co., Ltd. | Application component deployment method and deployment node |
CN108205481A (zh) * | 2016-12-19 | 2018-06-26 | 华为技术有限公司 | 应用的容器实例创建方法和装置 |
CN108984205A (zh) * | 2018-07-26 | 2018-12-11 | 浙江大学 | 一种基于容器技术的应用自动化构建与部署的方法及装置 |
CN110502577A (zh) * | 2019-08-15 | 2019-11-26 | 苏州浪潮智能科技有限公司 | 一种云管理平台部署容器应用的方法、设备和介质 |
CN111459509A (zh) * | 2020-03-27 | 2020-07-28 | 北京金山云网络技术有限公司 | 容器镜像的构建方法、装置和服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017092672A1 (zh) | 一种Docker容器运行方法和装置 | |
US8185889B2 (en) | Methods and systems for porting software packages from one format to another | |
CN106406960B (zh) | 一种linux环境中快速部署软件的方法 | |
CN102053831B (zh) | 一种Linux操作***的定制方法及*** | |
CN108897547B (zh) | 一种软件自动化部署方法及装置 | |
CN111399865A (zh) | 一种基于容器技术自动构建目标文件的方法 | |
CN108196843A (zh) | 可视化Docker容器自动编译部署的运维方法 | |
CN110088733A (zh) | 虚拟机迁移的基于存储层的编排 | |
US20170153930A1 (en) | Application container runtime | |
US20100138808A1 (en) | Embedded system design device and a method thereof using a target independent model | |
CN105204913A (zh) | 一种在Android操作***上运行Linux应用程序的方法及*** | |
CN104317642A (zh) | 云计算环境下的软件部署方法和装置 | |
JP4836419B2 (ja) | 産業オートメーション用のcilコード・プログラムのオンライン修正 | |
CN110673853A (zh) | 一种编译方法、装置及*** | |
CN111666099A (zh) | 一种应用服务发布*** | |
CN111158743B (zh) | 大数据运维管理平台 | |
CN112068845A (zh) | 一种适配多架构的容器化cicd服务部署方法及装置 | |
CN111857801A (zh) | 一种移动应用的构建方法 | |
CN114461182A (zh) | 流水线构建的方法、装置、电子设备及计算机可读存储介质 | |
CN111813420A (zh) | 一种对OpenStack集群进行自动化性能测试的方法 | |
CN113760462B (zh) | 一种调度自动化***验证环境的构建方法及装置 | |
CN107544813B (zh) | 一种静态库配置的切换方法和*** | |
CN115562691A (zh) | 一种基于容器的云应用发布方法及*** | |
CN110806891A (zh) | 嵌入式设备软件版本的生成方法及装置 | |
CN103150181B (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20230103 |