CN111338641A - 一种应用发布方法及装置 - Google Patents
一种应用发布方法及装置 Download PDFInfo
- Publication number
- CN111338641A CN111338641A CN202010087020.2A CN202010087020A CN111338641A CN 111338641 A CN111338641 A CN 111338641A CN 202010087020 A CN202010087020 A CN 202010087020A CN 111338641 A CN111338641 A CN 111338641A
- Authority
- CN
- China
- Prior art keywords
- application
- mirror image
- basic
- component
- operating system
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及云技术领域,尤其涉及一种应用发布方法及装置,获取应用的程序包;获取所述应用对应的基础镜像,其中,所述基础镜像中包括所述应用对应预配置的应用环境;基于容器技术,将所述程序包和所述基础镜像打包,获得所述应用的镜像文件;启动所述镜像文件,对所述应用进行发布,这样,采用容器技术,可以屏蔽应用对不同交付环境的要求,提高应用接入的效率,降低应用接入和发布的难度。
Description
技术领域
本申请涉及云技术领域,尤其涉及一种应用发布方法及装置。
背景技术
目前现有的云应用市场,通常基于OpenStack(一种云端开源项目)、内核虚拟机(Kernel-based Virtual Machine,KVM)(一个开源的系统虚拟化模块)等虚拟机(VirtualMachine,VM)技术实现,当应用开发者要上架接入一款实时部署型应用时,要求提供能够直接安装在VM环境下的镜像文件,即称为镜像交付,然后再运行镜像文件并发布给用户终端使用。
但是这种方式,当云应用市场面临混合云场景时,若出现多种基础技术架构,例如OpenStack和KVM共存,很可能会要求针对不同的基础设施即服务(Infrastructure as aService,IaaS)环境来提供不同的镜像文件,加重了应用开发者的开发成本和技术难度。
同时,应用开发者为满足不同的IaaS环境,还需要考虑数据存储、消息队列、运维监控等应用组件的高可用环境搭建,对应用开发者的要求会非常高,很容易导致服务故障等问题。
发明内容
本申请实施例提供一种应用发布方法及装置,以提高应用接入的效率,降低应用接入和发布的难度。
本申请实施例提供的具体技术方案如下:
本申请一个实施例提供了一种应用发布方法,包括:
获取应用的程序包;
获取所述应用对应的基础镜像,其中,所述基础镜像中包括所述应用对应预配置的应用环境;
基于容器技术,将所述程序包和所述基础镜像打包,获得所述应用的镜像文件;
启动所述镜像文件,对所述应用进行发布。
本申请另一个实施例提供了一种应用发布装置,包括:
第一获取模块,用于获取应用的程序包;
第二获取模块,用于获取所述应用对应的基础镜像,其中,所述基础镜像中包括所述应用对应预配置的应用环境;
打包模块,用于基于容器技术,将所述程序包和所述基础镜像打包,获得所述应用的镜像文件;
发布模块,用于启动所述镜像文件,对所述应用进行发布。
本申请另一个实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一种应用发布方法的步骤。
本申请另一个实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种应用发布方法的步骤。
本申请实施例中,获取应用的程序包和对应的基础镜像,其中,所述基础镜像中包括所述应用对应预配置的应用环境,并基于容器技术,将所述程序包和所述基础镜像打包,获得所述应用的镜像文件,从而启动所述镜像文件,对所述应用进行发布,这样,将程序包和基础镜像分开,开发者不需要自行搭建应用环境,降低开发者的开发成本和技术难度,通过容器技术,获得应用的镜像文件,符合容器化技术要求,可以屏蔽对不同交付环境的要求,因此只需一次对接即可,通过一份镜像文件即可以适配不同的交付环境,提高应用接入效率,降低应用接入和发布的成本和难度。
附图说明
图1为本申请实施例中应用发布方法的应用架构示意图;
图2为本申请实施例中容器化应用平台的工作环境架构图;
图3为本申请实施例中一种应用发布方法流程图;
图4为本申请实施例中应用发布方法逻辑实现示意图;
图5为相关技术中应用发布方法逻辑实现示意图;
图6为本申请实施例中一种应用发布装置结构示意图;
图7为本申请实施例中电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为便于对本申请实施例的理解,下面先对几个概念进行简单介绍:
镜像:是指虚拟化云计算实例可选择的运行环境模板,一般包括操作系统和预装的软件,另外镜像可以仅包含基本的操作系统,也可以在此基础上整合具体的软件环境。
镜像文件:即为镜像的文件,将特定的一系列文件按照一定的格式制作成单一的文件,以方便用户下载和使用。
镜像仓库:表示存放镜像的场所。
容器技术:有效的将单个操作系统的资源划分到孤立的组中,以便更好的在孤立的组之间平衡有冲突的资源使用需求,这种技术就是容器技术。
虚拟机(Virtual Machine、VM):指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
混合云(Hybrid Cloud):融合了公有云(Public Cloud)和私有云(PrivateCloud),也可能包含多种虚拟化技术,形成多种不同技术架构组成的云平台,是近年来云计算的主要模式和发展方向。私有云主要是面向企业用户,出于安全考虑,企业更愿意将数据存放在私有云中,但是同时又希望可以获得公有云的计算资源,在这种情况下混合云被越来越多的采用,它将公有云和私有云进行混合和匹配,以获得最佳的效果,这种个性化的解决方案,达到了既省钱又安全的目的。
私有云(Private Cloud):是将云基础设施与软硬件资源创建在防火墙内,以供机构或企业内各部门共享数据中心内的资源。创建私有云,除了硬件资源外,一般还有云设备的基础设施即服务(Infrastructure as a Service,IaaS)软件。
私有云计算同样包含云硬件、云平台、云服务三个层次。不同的是,云硬件是用户自己的个人电脑或服务器,而非云计算厂商的数据中心。云计算厂商构建数据中心的目的是为千百万用户提供公共云服务,因此需要拥有几十上百万台服务器。私有云计算,对个人来说只服务于亲朋好友,对企业来说只服务于本企业员工以及本企业的客户和供应商,因此个人或企业自己的个人电脑或服务器已经足够用来提供云服务。
公有云(Public Cloud):通常指第三方提供商为用户提供的能够使用的云,公有云一般可通过因特网(Internet)使用,可能是免费或成本低廉的,公有云的核心属性是共享资源服务。这种云有许多实例,可在当今整个开放的公有网络中提供服务。
云技术(Cloud technology):基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云计算(cloud computing):是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为基础设施即服务(Infrastructure as a Service,IaaS)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
按照逻辑功能划分,在IaaS层上可以部署平台即服务(Platform as a Service,PaaS)层,PaaS层之上再部署软件即服务(Software as a Service,SaaS)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、万维网(web)容器等。SaaS为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
云应用:是云计算概念的子集,是云计算技术在应用层的体现,终端与服务云端互动的应用,终端操作同步云端,而占用本地空间也通过云端备份保留终端数据。本申请实施例提供的方案中涉及的应用主要是针对云应用,在混合云场景下云应用在接入和发布时,可以降低接入成本和技术难度,具体通过如下实施例进行说明:
目前云应用市场,当应用开发者要上架接入一款实时部署型应用时,要求提供能够直接安装在VM环境下的镜像文件,即称为镜像交付,然后再运行镜像文件并发布给用户终端使用,但是这种方式,当云应用市场面临混合云场景时,若出现多种基础技术架构,例如OpenStack和KVM共存,会要求针对不同的IaaS环境来提供不同的交付镜像文件,加重了应用开发者的开发成本和技术难度。同时,应用开发者为满足不同的IaaS环境,还需要考虑数据存储、消息队列、运维监控等应用组件的高可用环境搭建,对应用开发者的要求会非常高,若某些环节考虑不周很容易会导致服务故障等问题。
因此,为解决上述问题,本申请实施例中提供了一种应用发布方法,该方法应用于容器化应用平台,通过容器化应用平台提供一种新的接入标准,从而采用新的接入标准使应用接入并在应用接入后发布给用户终端使用,具体地,获取应用的程序包和对应的基础镜像,基础镜像中包括应用对应预配置的应用环境,使用该基础镜像和容器技术,将程序包和基础镜像打包,获得应用的镜像文件,即获得交付的镜像文件,接入容器化应用平台,进而可以运行和启动镜像文件,以对应用进行发布,这样,将程序包和基础镜像分开,开发者只需要提供应用的程序包,不需要在程序包中针对不同的交付环境进行适配,该应用的基础镜像可以由容器化应用平台提供,降低开发者的技术难度要求,只需要一次对接即可以支持多种场景下的交付,提高了接入效率,并且采用容器技术将程序包和基础镜像打包,获得交付的镜像文件,屏蔽了对IaaS层不同操作系统的要求,支持只需一次接入,就可以根据不同的用户诉求,部署在多种虚拟化或非虚拟化IaaS平台中。
参阅图1所示,为本申请实施例中应用发布方法的应用架构示意图,包括使用用户端100、容器化应用平台200、开发用户端300。
使用用户端100为面向应用使用者的终端,即可以理解为用户终端,可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此,用户可以通过使用用户端100从容器化应用平台200侧购买或下载应用,从而使用该应用。
开发用户端300为面向应用开发者的终端,例如可以为企业用户,开发者可以将开发的应用接入容器化应用平台200,从而通过容器化应用平台200将应用发布给使用用户端100。
容器化应用平台200为第三方服务端,例如为云计算的基础能力提供方,可以允许开发者接入并上架所开发的应用,并可以将上架的应用部署在不同使用用户端100中。例如,本申请实施例中,容器化应用平台200提供基础镜像,包括高可用的应用组件和操作系统,例如,数据库、数据存储、消息队列、应用纳管等,为应用接入提供基础支撑组件,并且容器化应用平台200还提供对接和交付环境,为开发者提供带权限校验的对接服务接口、应用组件的软件开发工具包(Software Development Kit,SDK)或应用程序接口(ApplicationProgram Interface,API)、运营或运维支撑环境等。这样,基于容器技术,提供新的应用接入标准,可以使得应用只需要一次接入,就能根据不同的用户要求,部署在不同虚拟环境中。
其中,容器化应用平台200可以为服务器,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
使用用户端100、开发用户端300以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
值得说明的是,本发明实施例中的应用架构图是为了更加清楚地说明本发明实施例中的技术方案,并不构成对本发明实施例提供的技术方案的限制,并且本申请实施例中主要是针对云应用,但是对于其它的应用架构和应用,本发明实施例提供的技术方案对于类似的问题,同样适用。
需要说明的是,本发明各个实施例中,以应用发布方法应用于图1所示的应用架构为例进行示意性说明。
为便于理解下面先对本申请实施例中容器化应用平台进行具体说明,本申请实施例中主要涉及容器化应用平台的设计方案,提供新的云应用支撑平台条件和交付件要求,具体地:
本申请实施例中,容器化应用平台可以分别为开发者和使用用户提供服务,该容器化应用平台可以为生产级的经过二次开发的高可用容器化平台,例如,可以基于dockerswarm(是一款用来管理多主机上的Docker容器的工具)、k8s(开源的容器集群管理系统)等技术架构的容器化平台作为基础平台进行二次开发,本申请实施例中并不进行限制。
本申请实施例中通过容器技术提供新的接入标准,构建高可用的容器化应用平台,实现应用的接入和发布,具体技术实现可以分为以下两方面说明:
第一方面:平台支撑应用组件。
本申请实施例中基础镜像中包括预配置的应用环境,其中,应用环境中至少包括应用组件和操作系统。
a、操作系统:例如包括windows系列、linux系列等多种主流服务器操作系统。
即本申请实施例中,容器化应用平台的基础镜像中可以提供多种不同云计算操作系统的容器镜像,以供开发者接入时选择。
b、应用组件。
本申请实施例中在基础镜像中还提供了一系列应用组件,无需开发者自己在应用内部部署,降低开发者的技术难度,也提高稳定性,避免由于开发者考虑不周或技术实现不完善导致服务故障的问题。
其中,应用组件例如为安全扫描、应用纳管、数据监控相关的应用组件,还可以为一些中间件和数据库支撑相关的应用组件,本申请实施例中并不进行限制,可以根据需求在基础镜像中进行安装配置。
本申请实施例中容器化应用平台提供的应用组件,例如数据库和中间件对应用的接入过程提供有效支撑,例如对于Agent接入方式的中间件,可以直接打包Agent到基础镜像;又例如,对于API调用或SDK接入方式的数据库或中间件,会提供标准化的接入SDK,这样,通过提供应用组件的SDK或API,使得应用可以通过应用组件的SDK或API,访问相应的应用组件环境。
c、高可用架构的服务支撑环境。
例如具体可以包括:云数据库、消息队列、监控系统环境。
即本申请实施例中除了可以提供中间件和数据库支撑相关的应用组件,还可以直接提供高可用的数据库和中间件,并且在应用申请接入时,可以为应用分配应用标识并创建容器空间,即为应用创建一个独立隔离的环境,采用格式化的命名空间进行命名,这样,在打包应用的镜像文件时,可以通过写入应用的应用标识(Appid)和密码(key)到指定环境变量,调用具有访问权限的应用组件的SDK或API,即可以正常访问,无需开发者自行搭建各种复杂的高可用基础组件环境。
d、开发者身份识别系统。
具体地,例如包括开发者的用户身份认证、访问权限管理、系统调用所需的Appid和key。
本申请实施例中,容器化应用平台可以提供带权限校验的对接服务接口,可以对接入应用对应的用户身份进行认证,可以提高安全性,并通过访问权限管理和系统调用所需的Appid和key,在调用时进行权限判断,可以获得该接入应用对应的具有访问权限的应用组件。
其中,应用对应的具有访问权限的应用组件的确定,本申请实施例中提供了两种可能的实施方式:第一种方式,可以在应用发送应用接入请求时,给开发者提供平台所具有的应用组件和操作系统列表,以供开发者从中进行选择,从而将该应用的应用标识,以及所选择的应用组件和操作系统关联,通过应用标识和应用组件关联关系,进行应用组件权限管理,即该应用对关联的应用组件和操作系统具有访问权限;第二种方式,可以对应用开放所有平台提供的应用组件,即应用对所有应用组件具有访问权限,但是这时开发者也需要从多种操作系统中选择一种操作系统。
第二方面:对接和交付环境。
其中,对接环境是对交付环境的完全模拟,交付环境是实际交付给使用用户端的使用环境。
本申请实施例中对于交付环境的设置,为开发者提供了相应的环境支撑,具体地:
1)包括上述实施例中的开发者接和对接应用组件,即包括带权限校验的对接服务接口、高可用架构的开发支撑环境接入应用组件的SDK或API。
2)开发者运营和运维支撑环境,主要用于在应用发布后对应用进行运营或运维进行管理和监控。例如,包括应用运营数据查看报表、安全和服务质量告警系统。
具体地本申请实施例中提供了可能的实施方式,对应用进行发布之后,还包括:统计应用的发布后的运营信息;对应用的运维情况进行监控,确定发生异常时,进行告警。
例如,可以统计应用交付的实例数量、交付的用户信息统计并告知开发用户端,对服务质量和数据进行监控等。
本申请实施例中,构建容器化应用平台,通过容器化应用平台提供应用组件、操作系统等应用环境支撑,从而在应用接入时,开发者只需提供应用的程序包,程序包中包括应用的业务逻辑实现即可,采用容器技术,将程序包和基础镜像进行打包,即可获得应用交付的镜像文件,容器化应用平台运行该镜像文件,可以对该应用进行发布,这样,通过容器技术,可以屏蔽应用对IaaS层不同操作系统的要求,容器化应用平台完成对底层的适配,可以很好地支持复杂业务场景下的应用接入,降低应用接入成本和难度,容器化应用平台可以直接提供高可用的数据库和中间件,简化应用环境部署的要求和复杂度。
基于上述实施例,下面对容器化应用平台的工作环境进行简单说明,以应用为云应用为例,参阅图2所示,为本申请实施例中容器化应用平台的工作环境架构图,具体地:
本申请实施例中,容器化应用平台分别为开发者和使用用户提供服务,具体地:
1)容器化应用平台包括平台控制中心,通过平台控制中心向开发者提供镜像仓库、高可用服务支撑环境、接入API或SDK等。
其中,镜像仓库为存放镜像的场所,在镜像仓库中可以包括基础镜像中的操作系统、应用组件等容器镜像。
高可用服务支撑环境例如包括云数据库、消息队列、监控系统环境等。
接入API或SDK表示高可用开发支撑环境的接入API或SDK。
进一步地,还可以面向开发者提供应用的交付价格设置等服务,本申请实施例中并不进行限制。
2)容器化应用平台在应用接入时,将应用的程序包和对应的基础镜像进行打包,获得应用的镜像文件,如图2所示,工作负载1、工作负载2为服务器或服务器集群,工作负载1描述的是交付环境,工作负载2描述的是对接环境,对接环境是对交付环境的模拟,因此,这里仅对工作负载1进行说明,工作负载1中包括云应用A、云应用B、云应用C和云应用X等,即在容器化应用平台中可以接入多个云应用,每个云应用均采用容器化技术和基础镜像打包,获得相应的容器化的镜像文件,这样,每个云应用均具有独立隔离的容器空间,互不干扰,例如,云应用A与包含社区企业操作系统(Community Enterprise Operating System,centos)的基础镜像打包,云应用B与包含suse(一种操作系统)的基础镜像打包,云应用C与包含红帽(red hat)(一种操作系统)的基础镜像打包。
容器化应用平台中的平台支撑层中即提供相关的服务支撑,包括安全扫描、环境监控、基础应用组件支撑、服务部署等。
本申请实施例中,图2中基础镜像和云应用打包层、平台支撑层是对开发者可见的,开发者可以在应用接入时,选择所需的基础镜像和服务。
另外,对于图2中操作系统层和OpenStack/KVM//…层是对开发者不可见的,是由容器化应用平台的提供方建设的,运行在容器化应用平台,为虚拟化技术实现,可以完成对底层的适配,对于不同的交付环境,例如混合云交付、私有云交付、公有云交付等,将图2中平台支撑层、操作系统层和OpenStack/KVM//…层分别部署不同环境中即可,应用层无需关心不同的交付环境场景。
3)本申请实施例中,获得应用的镜像文件后,即可以将应用交付给不同的使用用户,这样,开发者和容器化应用平台只需要一次对接,就可以支持多种场景下的适配,容器化应用平台已经完成对底层的适配,应用层无需过多关注适配细节,降低对开发者的技术要求,降低接入复杂度。
基于上述实施例,对本申请实施例中的应用发布方法进行说明,参阅图3所示,为本申请实施例中一种应用发布方法流程图,主要应用于容器化应用平台,该方法包括:
步骤300:获取应用的程序包。
其中,应用的程序包用于表示应用的业务逻辑实现。
具体地,本申请实施例中容器化应用平台可以提供对接服务接口,可以通过该对接服务接口获取应用的程序包。
进一步地,本申请实施例中在执行步骤300之前,先接收应用的应用接入请求并进行预先处理,具体地提供了一种可能的实施方式:
S1、获取应用的应用接入请求时,为应用分配应用标识,并创建容器空间。
其中,获取应用的应用接入请求,具体包括:获取应用通过提供的对接服务接口发送的应用接入请求。
例如,接收到2个应用的应用接入请求,则会对这两个应用分别分配一个应用标识,并分别创建一个容器空间,其中容器空间可以采用设定的命名格式进行命名,这样可以使得这两个应用的环境和数据可以相互独立隔离。
进一步地还可以获得应用的密码,该密码可以由开发者来设置。
进一步地,本申请实施例中提供的对接服务接口还包括权限校验,则在获取应用的应用接入请求时,进一步包括:对应用对应的用户身份进行认证,认证通过后确定执行为应用分配应用标识的步骤。
这样,本申请实施例中还可以对开发者的用户身份进行认证,可以提高安全性和对开发者的用户身份进行管理。
S2、获取用户按照提供的应用组件和操作系统列表所选择的应用组件和操作系统。
例如,本申请实施例中可以提供windows系列、linux系列等多种操作系统,可以展示给开发者,以使开发者从中选择一种操作系统。并且,还可以提供多种数据监控、消息队列、安全性等应用组件,开发者可以从中选择所需的应用组件。
进一步地,本申请实施例中还可以不需要开发者进行选择,分配应用标识后,可以对该应用标识的应用开放所有的应用组件,即对提供的所有应用组件具有访问权限,对此本申请实施例中并不进行限制。
S3、根据所选择的应用组件和操作系统,生成应用的基础镜像,并将应用标识和生成的基础镜像进行关联。
这样,即应用对关联的基础镜像中的操作系统和应用组件具有访问权限。
步骤310:获取应用对应的基础镜像,其中,基础镜像中包括应用对应预配置的应用环境。
其中,应用环境中至少包括应用组件和操作系统。
具体地,可以通过应用的应用标识,确定该应用对应的基础镜像。
步骤320:基于容器技术,将程序包和基础镜像打包,获得应用的镜像文件。
执行步骤320时,具体包括:
S1、根据应用标识,确定与应用标识关联的基础镜像,并确定应用对关联的基础镜像中的应用组件具有访问权限。
S2、通过应用标识,调用对应具有访问权限的应用组件的SDK或API,获得对应具有访问权限的应用组件。
S3、基于容器技术,将基础镜像中的操作系统和对应具有访问权限的应用组件,以及程序包打包,获得应用的镜像文件。
本申请实施例中,基础镜像为容器镜像,可以采用分层结构,例如分别为操作系统层和应用组件层,在打包交付的镜像文件时,可以将应用的程序包也作为一层,将这三层进行打包处理,获得应用的镜像文件,该镜像文件符合容器化技术要求,即镜像文件可以理解为一个容器。
步骤330:启动镜像文件,对应用进行发布。
本申请实施例中,采用容器技术,将应用的程序包和对应的基础镜像打包后,获得镜像文件,在容器化应用平台上接入该应用,例如,使用用户从容器化应用平台购买该应用,则可以在容器化应用平台运行应用的镜像文件,并可以提供一个外网地址给使用用户,将应用发布给该使用用户。
进一步地,本申请实施例中容器化应用平台还可以对交付环境进行配置,提供运营和运维支撑环境,则具体地本申请实施例中提供了一种可能的实施方式:对应用进行发布之后,还包括:统计应用的发布后的运营信息;对应用的运维情况进行监控,确定发生异常时,进行告警。
本申请实施例中,获取应用的程序包和对应的基础镜像,其中,基础镜像中包括应用对应预配置的应用环境,从而基于容器技术,将程序包和基础镜像打包,获得应用的镜像文件,启动镜像文件,对应用进行发布,这样,将应用的程序包和基础镜像分离,容器化应用平台提供基础镜像,开发者不需要自行搭建应用环境,降低开发者的开发成本和技术难度,即无需针对不同的IaaS环境提供不同的交付镜像文件,通过容器化技术,屏蔽了应用对IaaS层不同操作系统的要求,无论是部署在私有云、公有云还是混合云,使用一份交付镜像文件即可以兼容,可以支持复杂业务场景下的应用接入,简化应用环境部署的要求和复杂度,提高应用接入效率,降低应用接入和发布的成本和难度。
基于上述实施例,下面采用具体应用场景进行说明,仍以应用为云应用,IaaS层环境包括公有云、私有云和混合云为例,参阅图4所示,为本申请实施例中应用发布方法逻辑实现示意图。如图4所示,本申请实施例中开发者只需要提供一份应用的程序包,并和容器化应用平台进行一次对接即可,容器化应用平台即可以将程序包和基础镜像打包,获得应用的镜像文件,在交付时,镜像仓库迁移,并将整体容器化应用平台交付部署,由于容器化应用平台已经完成对底层的适配,因此应用层无需过多关注适配细节,使用一份镜像文件即可以兼容各种交付业务环境。
而目前相关技术中需要针对不同交付业务环境,提供不同的镜像文件,参阅图5所示,为相关技术中应用发布方法逻辑实现示意图,如图5所示,相关技术中开发者需要自行在应用内部完成应用环境支撑体系的建设,针对不同的交付业务环境提供不同的镜像文件,对开发者的开发成本和技术难度要求更高,传统应用云平台需要针对具体运行的IaaS层环境进行适配,并且交付的镜像文件相比于本申请实施例中的容器镜像文件更大。
这样,本申请实施例中提供的应用发布方法,可以有效降低开发者的成本和难度,提高应用接入效率,降低复杂度。
基于同一发明构思,本申请实施例中还提供了一种应用发布装置,该应用发布装置例如可以是前述实施例中的容器化应用平台,该应用发布装置可以是硬件结构、软件模块、或硬件结构加软件模块。基于上述实施例,参阅图6所示,本申请实施例中一种应用发布装置,具体包括:
第一获取模块60,用于获取应用的程序包;
第二获取模块61,用于获取所述应用对应的基础镜像,其中,所述基础镜像中包括所述应用对应预配置的应用环境;
打包模块62,用于基于容器技术,将所述程序包和所述基础镜像打包,获得所述应用的镜像文件;
发布模块63,用于启动所述镜像文件,对所述应用进行发布。
可选的,所述应用环境中至少包括应用组件和操作系统;进一步包括,处理模块64,用于:
获取所述应用的应用接入请求时,为所述应用分配应用标识,并创建容器空间;
获取用户按照提供的应用组件和操作系统列表所选择的应用组件和操作系统;
根据所选择的应用组件和操作系统,生成所述应用的基础镜像,并将所述应用标识和生成的基础镜像进行关联。
可选的,获取所述应用的应用接入请求时,处理模块64具体用于:
获取所述应用通过提供的对接服务接口发送的应用接入请求;
获取所述应用的应用接入请求时,处理模块64进一步用于:
对所述应用对应的用户身份进行认证,认证通过后确定执行为所述应用分配应用标识的步骤。
可选的,基于容器技术,将所述程序包和所述基础镜像打包,获得所述应用的镜像文件时,打包模块62具体用于:
根据所述应用标识,确定与应用标识关联的基础镜像,并确定所述应用对所述关联的基础镜像中的应用组件具有访问权限;
通过所述应用标识,调用所述对应具有访问权限的应用组件的SDK或API,获得所述对应具有访问权限的应用组件;
基于容器技术,将所述基础镜像中的操作系统和所述对应具有访问权限的应用组件,以及所述程序包打包,获得所述应用的镜像文件。
可选的,对所述应用进行发布之后,进一步包括:
统计模块65,用于统计所述应用的发布后的运营信息;
监控模块66,用于对所述应用的运维情况进行监控,确定发生异常时,进行告警。
基于上述实施例,参阅图7所示为本申请实施例中电子设备的结构示意图。
本申请实施例提供了一种电子设备,该电子设备可以包括处理器710(CenterProcessing Unit,CPU)、存储器720、输入设备730和输出设备740等,输入设备730可以包括键盘、鼠标、触摸屏等,输出设备740可以包括显示设备,如液晶显示器(Liquid CrystalDisplay,LCD)、阴极射线管(Cathode Ray Tube,CRT)等。
存储器720可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器710提供存储器720中存储的程序指令和数据。在本申请实施例中,存储器720可以用于存储本申请实施例中任一种应用发布方法的程序。
处理器710通过调用存储器720存储的程序指令,处理器710用于按照获得的程序指令执行本申请实施例中任一种应用发布方法。
基于上述实施例,本申请实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例中的应用发布方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种应用发布方法,其特征在于,包括:
获取应用的程序包;
获取所述应用对应的基础镜像,其中,所述基础镜像中包括所述应用对应预配置的应用环境;
基于容器技术,将所述程序包和所述基础镜像打包,获得所述应用的镜像文件;
启动所述镜像文件,对所述应用进行发布。
2.如权利要求1所述的方法,其特征在于,所述应用环境中至少包括应用组件和操作系统;进一步包括:
获取所述应用的应用接入请求时,为所述应用分配应用标识,并创建容器空间;
获取用户按照提供的应用组件和操作系统列表所选择的应用组件和操作系统;
根据所选择的应用组件和操作系统,生成所述应用的基础镜像,并将所述应用标识和生成的基础镜像进行关联。
3.如权利要求2所述的方法,其特征在于,获取所述应用的应用接入请求,具体包括:
获取所述应用通过提供的对接服务接口发送的应用接入请求;
获取所述应用的应用接入请求时,进一步包括:
对所述应用对应的用户身份进行认证,认证通过后确定执行为所述应用分配应用标识的步骤。
4.如权利要求2所述的方法,其特征在于,基于容器技术,将所述程序包和所述基础镜像打包,获得所述应用的镜像文件,具体包括:
根据所述应用标识,确定与应用标识关联的基础镜像,并确定所述应用对所述关联的基础镜像中的应用组件具有访问权限;
通过所述应用标识,调用所述对应具有访问权限的应用组件的软件开发工具包SDK或应用程序接口API,获得所述对应具有访问权限的应用组件;
基于容器技术,将所述基础镜像中的操作系统和所述对应具有访问权限的应用组件,以及所述程序包打包,获得所述应用的镜像文件。
5.如权利要求1所述的方法,其特征在于,对所述应用进行发布之后,进一步包括:
统计所述应用的发布后的运营信息;
对所述应用的运维情况进行监控,确定发生异常时,进行告警。
6.一种应用发布装置,其特征在于,包括:
第一获取模块,用于获取应用的程序包;
第二获取模块,用于获取所述应用对应的基础镜像,其中,所述基础镜像中包括所述应用对应预配置的应用环境;
打包模块,用于基于容器技术,将所述程序包和所述基础镜像打包,获得所述应用的镜像文件;
发布模块,用于启动所述镜像文件,对所述应用进行发布。
7.如权利要求6所述的装置,其特征在于,所述应用环境中至少包括应用组件和操作系统;进一步包括,处理模块,用于:
获取所述应用的应用接入请求时,为所述应用分配应用标识,并创建容器空间;
获取用户按照提供的应用组件和操作系统列表所选择的应用组件和操作系统;
根据所选择的应用组件和操作系统,生成所述应用的基础镜像,并将所述应用标识和生成的基础镜像进行关联。
8.如权利要求7所述的装置,其特征在于,获取所述应用的应用接入请求时,处理模块具体用于:
获取所述应用通过提供的对接服务接口发送的应用接入请求;
获取所述应用的应用接入请求时,处理模块进一步用于:
对所述应用对应的用户身份进行认证,认证通过后确定执行为所述应用分配应用标识的步骤。
9.如权利要求7所述的装置,其特征在于,基于容器技术,将所述程序包和所述基础镜像打包,获得所述应用的镜像文件时,打包模块具体用于:
根据所述应用标识,确定与应用标识关联的基础镜像,并确定所述应用对所述关联的基础镜像中的应用组件具有访问权限;
通过所述应用标识,调用所述对应具有访问权限的应用组件的软件开发工具包SDK或应用程序接口API,获得所述对应具有访问权限的应用组件;
基于容器技术,将所述基础镜像中的操作系统和所述对应具有访问权限的应用组件,以及所述程序包打包,获得所述应用的镜像文件。
10.如权利要求6所述的装置,其特征在于,对所述应用进行发布之后,进一步包括:
统计模块,用于统计所述应用的发布后的运营信息;
监控模块,用于对所述应用的运维情况进行监控,确定发生异常时,进行告警。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-5任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1-5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010087020.2A CN111338641A (zh) | 2020-02-11 | 2020-02-11 | 一种应用发布方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010087020.2A CN111338641A (zh) | 2020-02-11 | 2020-02-11 | 一种应用发布方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111338641A true CN111338641A (zh) | 2020-06-26 |
Family
ID=71182637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010087020.2A Pending CN111338641A (zh) | 2020-02-11 | 2020-02-11 | 一种应用发布方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111338641A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111796863A (zh) * | 2020-07-10 | 2020-10-20 | 四川中电启明星信息技术有限公司 | 一种跨环境的项目版本的管理方法 |
CN112486523A (zh) * | 2020-12-18 | 2021-03-12 | 航天信息股份有限公司 | 容器镜像创建方法和装置、存储介质和电子设备 |
CN113268312A (zh) * | 2021-05-14 | 2021-08-17 | 济南浪潮数据技术有限公司 | 一种应用迁移方法及系统 |
CN113721945A (zh) * | 2021-09-08 | 2021-11-30 | 福建库克智能科技有限公司 | 一种平台部署方法及装置、平台 |
CN113821219A (zh) * | 2020-11-16 | 2021-12-21 | 北京沃东天骏信息技术有限公司 | 一种实现应用程序容器化的方法及系统 |
CN114416218A (zh) * | 2021-12-31 | 2022-04-29 | 北京五八信息技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
WO2022199136A1 (zh) * | 2021-03-23 | 2022-09-29 | 华为云计算技术有限公司 | 应用改造方法、系统、集群、介质及程序产品 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107220100A (zh) * | 2016-03-22 | 2017-09-29 | 中国移动(深圳)有限公司 | 一种开发运维方法、装置及云计算PaaS平台 |
CN107786367A (zh) * | 2016-08-31 | 2018-03-09 | 中兴通讯股份有限公司 | 一种虚拟网元的配置方法和装置 |
US10055200B1 (en) * | 2016-03-29 | 2018-08-21 | EMC IP Holding Company LLC | Creation and use of development packages |
CN108984268A (zh) * | 2018-07-13 | 2018-12-11 | 郑州云海信息技术有限公司 | Docker系统中容器管理的方法和装置 |
CN109271198A (zh) * | 2018-08-16 | 2019-01-25 | 中国平安人寿保险股份有限公司 | 基于Docker容器的镜像打包方法、装置及电子设备 |
CN109358858A (zh) * | 2018-09-19 | 2019-02-19 | 网易(杭州)网络有限公司 | 自动化部署方法、装置、介质及电子设备 |
CN109871560A (zh) * | 2017-12-05 | 2019-06-11 | 北京京东尚科信息技术有限公司 | 一种运行目标模型的方法和装置 |
-
2020
- 2020-02-11 CN CN202010087020.2A patent/CN111338641A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107220100A (zh) * | 2016-03-22 | 2017-09-29 | 中国移动(深圳)有限公司 | 一种开发运维方法、装置及云计算PaaS平台 |
US10055200B1 (en) * | 2016-03-29 | 2018-08-21 | EMC IP Holding Company LLC | Creation and use of development packages |
CN107786367A (zh) * | 2016-08-31 | 2018-03-09 | 中兴通讯股份有限公司 | 一种虚拟网元的配置方法和装置 |
CN109871560A (zh) * | 2017-12-05 | 2019-06-11 | 北京京东尚科信息技术有限公司 | 一种运行目标模型的方法和装置 |
CN108984268A (zh) * | 2018-07-13 | 2018-12-11 | 郑州云海信息技术有限公司 | Docker系统中容器管理的方法和装置 |
CN109271198A (zh) * | 2018-08-16 | 2019-01-25 | 中国平安人寿保险股份有限公司 | 基于Docker容器的镜像打包方法、装置及电子设备 |
CN109358858A (zh) * | 2018-09-19 | 2019-02-19 | 网易(杭州)网络有限公司 | 自动化部署方法、装置、介质及电子设备 |
Non-Patent Citations (2)
Title |
---|
知乎用户XF2196: "如何快速部署容器化应用", 《HTTPS://ZHUANLAN.ZHIHU.COM/P/89040855》 * |
蓝绿色~菠菜: "python项目打包成docker镜像并发布", 《HTTPS://BLOG.CSDN.NET/BOCAI_XIAODAIDAI/ARTICLE/DETAILS/92838984》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111796863A (zh) * | 2020-07-10 | 2020-10-20 | 四川中电启明星信息技术有限公司 | 一种跨环境的项目版本的管理方法 |
CN111796863B (zh) * | 2020-07-10 | 2024-04-05 | 四川中电启明星信息技术有限公司 | 一种跨环境的项目版本的管理方法 |
CN113821219A (zh) * | 2020-11-16 | 2021-12-21 | 北京沃东天骏信息技术有限公司 | 一种实现应用程序容器化的方法及系统 |
CN112486523A (zh) * | 2020-12-18 | 2021-03-12 | 航天信息股份有限公司 | 容器镜像创建方法和装置、存储介质和电子设备 |
WO2022199136A1 (zh) * | 2021-03-23 | 2022-09-29 | 华为云计算技术有限公司 | 应用改造方法、系统、集群、介质及程序产品 |
CN113268312A (zh) * | 2021-05-14 | 2021-08-17 | 济南浪潮数据技术有限公司 | 一种应用迁移方法及系统 |
CN113721945A (zh) * | 2021-09-08 | 2021-11-30 | 福建库克智能科技有限公司 | 一种平台部署方法及装置、平台 |
CN114416218A (zh) * | 2021-12-31 | 2022-04-29 | 北京五八信息技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN114416218B (zh) * | 2021-12-31 | 2022-11-01 | 北京五八信息技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111338641A (zh) | 一种应用发布方法及装置 | |
US11842221B2 (en) | Techniques for utilizing directed acyclic graphs for deployment instructions | |
US10637796B2 (en) | Linking instances within a cloud computing environment | |
CN112104723B (zh) | 一种多集群的数据处理系统及方法 | |
KR102391806B1 (ko) | 상이한 분산 네트워크 사이에서 서비스를 소비하는 통합형 api 및 ui 제공 기법 | |
US8122282B2 (en) | Starting virtual instances within a cloud computing environment | |
US20190253481A1 (en) | Hybrid cloud applications | |
US9086897B2 (en) | Method and architecture for virtual desktop service | |
US9245126B2 (en) | Protection of user data in hosted application environments | |
US20120042033A1 (en) | Migrating virtual machines across network separated data centers | |
US10996997B2 (en) | API-based service command invocation | |
US11017387B2 (en) | Cryptographically assured zero-knowledge cloud services for elemental transactions | |
US9922181B2 (en) | Security model for network information service | |
JP2019511785A (ja) | モバイルクラウドサービスのための予め形成された命令 | |
US12015613B2 (en) | Method and system for secure container application framework | |
JP2023511113A (ja) | 宣言型プロビジョニングツールを使用してインフラストラクチャリソースを展開するための技術 | |
US20210226929A1 (en) | Techniques for transferring data across air gaps | |
WO2020182642A1 (en) | Starting a secure guest using an initial program load mechanism | |
JP2023511114A (ja) | デプロイ命令のために有向非巡回グラフを利用するための技術 | |
JP2023511117A (ja) | 分散バージョン制御システムにおけるコードの更新 | |
CN115964120A (zh) | 用于工作负载执行的动态缩放 | |
CN114902252A (zh) | 用于检测部署编排器中的漂移的技术 | |
US10599492B2 (en) | Context-aware connectors in integration | |
US20230155830A1 (en) | Cloud to cloud test set up for authentication and monitoring | |
CN117407141A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40024726 Country of ref document: HK |