CN104793946B - 基于云计算平台的应用部署方法和系统 - Google Patents
基于云计算平台的应用部署方法和系统 Download PDFInfo
- Publication number
- CN104793946B CN104793946B CN201510206584.2A CN201510206584A CN104793946B CN 104793946 B CN104793946 B CN 104793946B CN 201510206584 A CN201510206584 A CN 201510206584A CN 104793946 B CN104793946 B CN 104793946B
- Authority
- CN
- China
- Prior art keywords
- source code
- application
- computing platform
- cloud computing
- cloud
- 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
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种基于云计算平台的应用部署方法和系统,方法包括以下步骤:生成与需要部署的应用对应的配置文件;其中,所述配置文件包括:所述应用的源代码地址、编写语言及其运行环境;通过云计算平台根据所述源代码地址从源代码仓库下载所述应用的源代码,根据所述编写语言和运行环境从源代码仓库下载所需的编译工具包;创建应用容器,并将所述源代码和编译工具包在所述应用容器中进行编译,得到编译代码,根据所述编译代码对所述应用进行部署。上述方法和系统,通过生成与需要部署的应用对应的配置文件,根据配置文件的源代码地址、编写语言及其运行环境下载需要的源代码和编译工具包进行部署,部署的过程比较简便,效率较高。
Description
技术领域
本发明涉及云计算技术领域,特别是涉及一种基于云计算平台的应用部署方法和系统。
背景技术
在云计算兴起的环境下,应用托管的模式逐渐成为趋势。PaaS(Platform-as-a-Service,平台即服务)服务提供商把服务器平台作为一种服务,使中小型企业和普通用户能够快速部署、配置、使用应用。在这种服务模式中,用户不需要购买硬件和软件,只需要利用PaaS平台系统,就能够创建、测试和部署应用和服务。
一般在云计算平台进行应用部署时,需要将应用的源代码上传后进行部署,比如在Cloud Foundry的框架中,用户通过在系统的平台界面或者通过命令行的形式,上传应用软件包(war格式或其他源代码格式的压缩包),把web应用系统托管在厂商的服务器上运行,平台厂商为web应用准备应用运行需要的软件环境,然后进行应用部署。这种应用部署方式需要提供源代码或者通过命令行的形式调出源代码,然后上传至平台进行部署,部署的过程比较繁琐,效率较低。
发明内容
基于此,有必要针对现有在云计算平台进行应用部署时,部署的过程比较繁琐,效率较低的问题,提供一种基于云计算平台的应用部署方法和系统。
一种基于云计算平台的应用部署方法,包括以下步骤:
生成与需要部署的应用对应的配置文件;其中,所述配置文件包括:所述应用的源代码地址、编写语言及其运行环境;
通过云计算平台根据所述源代码地址从源代码仓库下载所述应用的源代码,根据所述编写语言和运行环境从源代码仓库下载所需的编译工具包;
创建应用容器,并将所述源代码和编译工具包在所述应用容器中进行编译,得到编译代码,根据所述编译代码对所述应用进行部署。
一种基于云计算平台的应用部署系统,包括:
生成模块,用于生成与需要部署的应用对应的配置文件;其中,所述配置文件包括:所述应用的源代码地址、编写语言及其运行环境;
下载模块,用于通过云计算平台根据所述源代码地址从源代码仓库下载所述应用的源代码,根据所述编写语言和运行环境从源代码仓库下载所需的编译工具包;
编译模块,用于创建应用容器,并将所述源代码和编译工具包在所述应用容器中进行编译,得到编译代码,根据所述编译代码对所述应用进行部署。
上述基于云计算平台的应用部署方法和系统,通过生成与需要部署的应用对应的配置文件,根据配置文件的源代码地址、编写语言及其运行环境下载需要的源代码和编译工具包,然后在新建的应用容器中进行编译,并根据编译结果进行部署,部署的过程比较简便,效率较高。
附图说明
图1为一实施例基于云计算平台的应用部署方法流程图;
图2为另一实施例基于云计算平台的应用部署方法流程图;
图3为一实施例用户部署流程示意图;
图4为一实施例部署应用界面示意图
图5为一实施例版本更新流程图;
图6为一实施例基于云计算平台的应用部署系统结构示意图;
图7为另一实施例基于云计算平台的应用部署系统结构示意图。
具体实施方式
为了详细说明本发明的基于云计算平台的应用部署方法和系统,下面将结合附图进行说明。
请参阅图1,图1为一实施例基于云计算平台的应用部署方法流程图。
一种基于云计算平台的应用部署方法,包括以下步骤:
步骤S101:生成与需要部署的应用对应的配置文件;其中,所述配置文件包括:所述应用的源代码地址、编写语言及其运行环境;
在步骤S101中,源代码地址指源代码存放的地址,生成与应用对应的配置文件是为了后续根据配置文件信息部署提供依据。
在一实施例中,配置文件可以是YAML(Yet Another Markup Language,另一种标记语言)格式的配置文件。
步骤S103:通过云计算平台根据所述源代码地址从源代码仓库下载所述应用的源代码,根据所述编写语言和运行环境从源代码仓库下载所需的编译工具包;
在步骤S103中,源代码仓库指存储源代码和编译工具包的代码仓库。
在一实施例中,所述编写语言和运行环境从源代码仓库下载所需的编译工具包的步骤之前还可以包括:
调用云计算平台的云控制器对所述源代码进行压缩打包处理,得到源代码压缩包;
所述将所述源代码和编译工具包在所述应用容器中进行编译的步骤可以包括:
调用云计算平台的执行代理组件将所述源代码压缩包和编译工具包在所述应用容器中解压并进行编译。
上述实施例,通过对源代码进行压缩打包处理可以加快源代码从云控制器到执行代理组件的传递效率。
在一实施例中,所述调用云计算平台的执行代理组件将所述源代码压缩包和编译工具包在所述应用容器中解压并进行编译的步骤可以包括:
调用执行代理组件创建部署的脚本文件,将所述源代码压缩包、编译工具包和脚本文件置入所述应用容器中,解压所述源代码压缩包和编译工具包,根据所述脚本文件对所述应用容器进行配置。
通过生成的脚本文件对应用容器进行配置可以更效率的配置应用容器。
在一实施例中,所述调用云计算平台的云控制器对所述源代码进行压缩打包处理,得到源代码压缩包的步骤可以包括:
调用云计算平台的云控制器对所述源代码进行压缩打包处理,将源代码压缩包保存在本地缓存文件中并以识别码命名。
上述实施例,通过对源代码压缩包进行识别码命名,可以统计每个源代码压缩包,在需要部署应用时可以更快的下载到对应源代码。
在一实施例中,以十六位通用唯一识别码命名源代码压缩包。
进一步的,还可以根据时间的先后,赋予每个版本一个版本号V1、V2……Vn。
步骤S105:创建应用容器,并将所述源代码和编译工具包在所述应用容器中进行编译,得到编译代码,根据所述编译代码对所述应用进行部署。
在一实施例中,所述根据所述编译代码对所述应用进行部署的步骤之后还可以包括:
检测源代码数据的更新状态,在源代码数据发生更新时,根据新的源代码进行应用的重新部署。
上述实施例,在通过鉴权之后,云控制器将新版的代码下载并打包把旧版源码包移出部署目录,重新执行创建新应用容器和编译过程,实现新版本软件的部署。
上述基于云计算平台的应用部署方法,通过生成与需要部署的应用对应的配置文件,根据配置文件的源代码地址、编写语言及其运行环境下载需要的源代码和编译工具包,然后在新建的应用容器中进行编译,并根据编译结果进行部署,部署的过程比较简便,效率较高。
为了更详细的说明本发明的基于云计算平台的应用部署方法,下面将结合具体应用实例进行说明。
请参见图2,图2为一实施例用户部署流程示意图。
本具体应用实例以在CloudFoundry平台的应用为例进行说明,并设计云应用商店模块来生成与需要部署的应用对应的配置文件,源代码仓库包括Git应用源代码仓库和编译工具包仓库,用于存储源代码和编译工具包。
本具体应用实例基于CloudFoundry平台应用托管的能力,云应用商店模块提供类似苹果App(应用程序商店)的服务,借助CloudFoundry平台的快速部署能力和多语言框架设计,云应用商店模块中集成大量不同语言框架的web应用程序模板,向普通用户提供“开箱即用”的收费和免费的应用。用户无需太多专业开发知识,通过云应用商店模块订阅应用程序得到一个可访问的链接地址和登陆凭证,通过浏览器即可访问web应用程序。
用户通过浏览器登陆访问本发明中的web界面,在云应用商店中,选择合适的应用程序。用户选择部署后,触发CloudFoundry平台工作,平台的服务组件从源代码仓库签出代码,打包,下载到容器中;并选择合适的编译工具,在容器中搭建合适该web应用程序运行的软件环境,并启动应用程序。
作为有开发能力的用户和开发者,可以通过平台预置的应用模板,进行web应用的开发。好处在于开发者可以在平台支持的框架之下进行开发,无需担心兼容问题。本具体应用实例涉及开源PaaS(Platform-as-a-Service,平台即服务)平台CloudFoundry的功能扩展,在原有平台上新增云应用商店模块。设计上主要包括三部分,1)云应用商店通过CloudFoundry平台提供的服务接口,对接其租户和用户接口,实现授权和验证的功能;通过对接应用管理的接口,由云应用商店模块触发新建部署应用的操作,应用部署遵循CloudFoundry的规范;2)对CloudFoundry平台组件执行代理组件(Droplet ExecutionAgent,简称DEA)功能扩展,使之适应云应用商店的业务需求。3)通过修改源代码仓库,更新已经部署的应用程序。根据技术要求,具体实现方法和步骤如下:
根据技术方案中第一点的所述内容,云应用商店模块和CloudFoundry对接需要调用两个接口,一个是授权和验证功能接口,另一个是应用管理接口。
云应用商店模块使用Node.js框架开发,基于JavaScript,通过Node.js框架可以简化搭建服务器集群的工作量。Node.js服务器集群的基本原理如下:Node.js在入口程序中读取系统配置文件,并提供一个分支判断(除非强制关闭),默认启动服务器集群模式,首先启动一个主节点(master node),然后根据主机的中央处理器(CPU)数目N,启动N个工作节点(worker node)。通过Node.js的内在机制实现负载均衡。
系统的用户角色权限管理使用CloudFoundry的uua接口,简化平台的开发量。
云应用商店模块采用轻量级的设计,仅需要维护若干个Yaml(Yet AnotherMarkup Language,另一种标记语言)Yet Another Markup Language,另一种标记语言)格式的配置文件。系统通过读取解析应用商店模块的配置文件,在界面上展示平台中可用的应用的详细信息。Yaml文件可以通过平台上传,也可以在平台上新建保存,支持多个配置文件同时并存。配置信息基本格式如下:
-name:汇率转换器/*应用名称*/
id:bottle-currency/*应用id,具有唯一性*/
desc:一个用Python开发的汇率转换工具/*应用的描述*/
framework:python/*应用的编写语言*/
runtime:python27/*应用的运行环境*/
services:redis/*应用所需服务*/
commit:master/*应用在git服务器上的分支*/
src:http://$git服务器ip地址/root/bottle-currency.git/*应用源代码url地址*/
icon:http://$文件服务器ip地址/files/icon/currency.png/*应用的图标*/
mem:128/*应用所需的内存*/
平台中的解析器设计针对上述配置进行解析,将信息提取并分为两部分:应用名称、描述、编程语言、使用的服务、内存需求信息作为应用的基本描述,展示在页面上;应用的源代码地址和分支信息作为高级选项,供用户需要克隆签出代码时使用。解析成功的配置,如图3所示。
在界面上点击某个应用的部署按钮,系统调用CloudFoundry的应用管理REST接口进行新建应用的操作,REST接口URL(Uniform Resource Locator,统一资源定位符)为/v2/app/create。
根据技术方案中第二点所述内容,开源平台CloudFoundry只能通过命令行形式“vmc push application”上传本地应用程序包(war格式或是软件代码编译压缩包),云应用商店模块通过对DEA的扩展和修改,使CloudFoundry对接云应用商店模块进行应用部署,主要的改良工作在CloudFoundry的云控制器(Cloud Controller,简称CC)和执行代理组件(Droplet Execution Agent,简称DEA)上,具体步骤如下:
通过鉴权之后,如图4所示;容器环境下载源代码后,在容器中运行编译工具的工作原理。源代码中有一个配置文件,配置项声明web应用程序所使用的开发语言,以及对应的编译工具所在的仓库地址。通过解析得到的URL地址,下载对应的编译工具到容器中。编译工具包含两个自动化脚本,检测web应用源代码具体所使用的开发框架,不同开发框架对应下载不同的软件包进行运行环境的部署,下载的内容可以是:tomcat(汤姆猫)、spring(开源框架)、hibeinate(对象关系映射框架)、python(蟒蛇)、ruby(一种脚本语言)、nginx(服务器)、php(Hypertext Preprocessor,超文本预处理器)等,下载完成后,安装并启动服务容器环境。
具体步骤为:云控制器执行如下操作:读取请求新建的应用程序的所有配置信息,根据源代码地址,执行“git clone$源码仓库url/tmp/code/”,把源代码下载到本地目录;
执行压缩命令,为本web应用的源代码目录生成一个随机16位的uuid(Universally Unique Identifier,通用唯一识别码),把下载的源代码进行压缩打包,以uuid的值作为命名并保存在/data文件夹下待用,并通知DEA组件源码打包完成,进入下一个步骤;
DEA组件接收到新建应用的请求时,进行以下操作:
DEA通过warden(CloudFoundry LXC容器管理)新建一个应用容器;
DEA根据应用的配置信息判断应用的类型、所需要的编译工具包和工具所在的代码仓库地址,签出编译工具仓库中相应的编译工具包,下载到应用容器中的/tmp/.buildpacks文件夹中;
DEA从/data文件夹中获取源代码压缩包,加上下载的编译工具包,并创建部署的自动脚本文件。把所有文件压缩打包,得到一个应用程序包,称为droplet;
DEA将droplet拷贝到应用容器中,在应用容器环境中解压droplet,执行编译工具包的脚本文件。DEA向刚创建的应用容器中导出环境变量“EXPORT_BUILDPACK_ENV_VARIABLES_SCRIPT”,此变量生成了自动运行脚本的代码,其目的是为执行编译工具包目录下的所有sh脚本;
编译工具脚本包括获取应用程序运行所需要的软件包,通过本具体应用实例中的文件服务器快速完成下载,执行脚本文件对软件包进行解压到适当位置、修改配置文件、和其他文件的执行权限;
环境配置完成后,脚本最后将应用程序的源代码拷贝到适当的位置,启动应用程序。应用程序已经完成部署,用户可以通过界面返回的链接进行访问;
根据技术方案中第三点所述内容,通过修改仓库源代码,实现应用的更新和版本控制。用户下载源代码,完成修改并推送更新至代码仓库后,具体步骤如下:
如图5所示,源代码仓库使用git传输协议搭建,git支持一种称为“钩子(hook)”程序的操作,在代码仓库每次发生一次推送和更新的时候,此钩子程序都自动执行。本具体应用实例充分利用了钩子程序的作用,在钩子中写入了代码更新之后,自动调用CloudFoundry中的重新部署应用的接口,接口为/v2/app/restage;
同样通过鉴权之后,云控制器将新版的代码下载并打包,赋予重新生成的16位随机uuid,把旧版源码包移出部署目录,重新执行新建应用容器和编译的流程,实现新版本软件的部署。
云控制器中记录了所有应用部署的元数据,在每个应用部署的时候,云控制器将web应用程序的uuid和应用名称记录在数据库中,根据时间的先后,在界面上赋予每个版本一个版本号V1、V2……,在界面上展示并提供回滚版本的功能。回滚的操作不需要下载代码包,只需要从本地替换源码包即可;
本具体应用实例涉及web应用托管和一种具备云能力(cloud-ready)的应用商店系统设计方案,本具体应用实例的关键在于:
首先是一种支持多语言的部署环境系统,借助CloudFoundry的PaaS能力,构建一个适合于普通用户和开发者共同使用的PaaS领域的软件系统。通过预置的源代码仓库,平台可以构建丰富的“开箱即用”的web应用程序;
其次,可配置的云应用商店模块的设计模型。云应用商店通过yaml格式的配置文件,将每个web应用的元数据信息(应用名称、应用类型、硬件需求、源代码仓库、编译工具仓库)保存在系统中,并展示在界面上。这意味着系统不会存储任何web应用程序的源代码或者编译包,这样大大降低了系统的存储压力;
本具体应用实例中的CloudFoundry连接两个源代码仓库和一个文件服务器:web应用程序源代码仓库和编译工具所在的脚本仓库,文件服务器上存放所有在运行环境中需要用到的软件包。代码仓库支持使用SVN(Subversion,版本管理工具)和Git的协议实现,云控制器和DEA通过下载web应用源代码和编译工具,并安装相应的软件包,实现web应用在容器中的部署。
源代码仓库通过“钩子”程序(hook)倒挂在CloudFoundry平台,源代码仓库发生改变后,触发平台的编译系统,更新已经部署的应用,实现系统应用的版本管理;
本具体应用实例是借助CloudFoundry平台应用托管能力构建的云应用商店平台系统,属于云计算平台即服务(Platform-as-a-Service)的一部分功能实现。云应用商店集成CloudFoundry的多租户能力和验证系统,实现系统的多租户能力。用户以租户的形式在平台上注册使用,通过订阅部署web应用程序,平台提供程序运行时的环境,所有应用共享容器节省资源的开销,进程隔离保证各自应用系统的安全性。
采用本具体应用实例的系统,结合平台的源代码仓库,不同租户用户根据各自的需求和能力,在订阅使用web应用的过程中,可以签出应用程序的源代码,使用通用的编程工具修改源代码,重新部署和更新web应用程序,满足个人和企业的需求。本具体应用实例在原有CloudFoundry的基础上进行了云应用商店的扩展,填补了普通用户在PaaS领域的空缺。
请参阅图6,图6为一实施例基于云计算平台的应用部署系统结构示意图。
一种基于云计算平台的应用部署系统,包括:
生成模块310,用于生成与需要部署的应用对应的配置文件;其中,所述配置文件包括:所述应用的源代码地址、编写语言及其运行环境;
下载模块330,用于通过云计算平台根据所述源代码地址从源代码仓库下载所述应用的源代码,根据所述编写语言和运行环境从源代码仓库下载所需的编译工具包;
编译模块350,用于创建应用容器,并将所述源代码和编译工具包在所述应用容器中进行编译,得到编译代码,根据所述编译代码对所述应用进行部署。
上述基于云计算平台的应用部署系统,通过生成与需要部署的应用对应的配置文件,根据配置文件的源代码地址、编写语言及其运行环境下载需要的源代码和编译工具包,然后在新建的应用容器中进行编译,并根据编译结果进行部署,部署的过程比较简便,效率较高。
在一实施例中,所述下载模块330可以包括:
压缩模块,用于调用云计算平台的云控制器对所述源代码进行压缩打包处理,得到源代码压缩包;
所述编译模块350执行所述将所述源代码和编译工具包在所述应用容器中进行编译的过程可以进一步用于:
调用云计算平台的执行代理组件将所述源代码压缩包和编译工具包在所述应用容器中解压并进行编译。
上述实施例,通过对源代码进行压缩打包处理可以加快源代码从云控制器到执行代理组件的传递效率。
在一实施例中,所述编译模块350可以进一步用于:
调用执行代理组件创建部署的脚本文件,将所述源代码压缩包、编译工具包和脚本文件置入所述应用容器中,解压所述源代码压缩包和编译工具包,根据所述脚本文件对所述应用容器进行配置。
上述实施例,通过生成的脚本文件对应用容器进行配置可以更效率的配置应用容器。
在一实施例中,所述压缩模块可以进一步用于:
调用云计算平台的云控制器对所述源代码进行压缩打包处理,将源代码压缩包保存在本地缓存文件中并以识别码命名。
上述实施例,通过对源代码压缩包进行识别码命名,可以统计每个源代码压缩包,在需要部署应用时可以更快的下载到对应源代码。
在一实施例中,本实施例的基于云计算平台的应用部署系统还可以包括:
更新模块370,用于检测源代码数据的更新状态,在源代码数据发生更新时,根据新的源代码进行应用的重新部署。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于云计算平台的应用部署方法,其特征在于,包括以下步骤:
生成与需要部署的应用对应的配置文件;其中,所述配置文件包括:所述应用的源代码地址、编写语言及其运行环境;所述配置文件是由云应用商店模块生成的;
通过云计算平台根据所述源代码地址从源代码仓库下载所述应用的源代码,根据所述编写语言和运行环境从源代码仓库下载所需的编译工具包;
创建应用容器,并将所述源代码和编译工具包在所述应用容器中进行编译,得到编译代码,根据所述编译代码对所述应用进行部署;
在通过云计算平台根据所述源代码地址从源代码仓库下载所述应用的源代码之前,还包括:
从云应用商店模块中选择需要部署的应用,触发云计算平台工作;
其中,云应用商店模块通过授权和验证功能接口以及应用管理接口与云计算平台对接,所述授权和验证功能接口用于与用户对接,所述应用管理接口用于触发云计算机平台工作。
2.根据权利要求1所述的基于云计算平台的应用部署方法,其特征在于,所述根据编写语言和运行环境从源代码仓库下载所需的编译工具包的步骤之前还包括:
调用云计算平台的云控制器对所述源代码进行压缩打包处理,得到源代码压缩包;
所述将所述源代码和编译工具包在所述应用容器中进行编译的步骤包括:
调用云计算平台的执行代理组件将所述源代码压缩包和编译工具包在所述应用容器中解压并进行编译。
3.根据权利要求2所述的基于云计算平台的应用部署方法,其特征在于,所述调用云计算平台的执行代理组件将所述源代码压缩包和编译工具包在所述应用容器中解压并进行编译的步骤包括:
调用执行代理组件创建部署的脚本文件,将所述源代码压缩包、编译工具包和脚本文件置入所述应用容器中,解压所述源代码压缩包和编译工具包,根据所述脚本文件对所述应用容器进行配置。
4.根据权利要求2所述的基于云计算平台的应用部署方法,其特征在于,所述调用云计算平台的云控制器对所述源代码进行压缩打包处理,得到源代码压缩包的步骤包括:
调用云计算平台的云控制器对所述源代码进行压缩打包处理,将源代码压缩包保存在本地缓存文件中并以识别码命名。
5.根据权利要求1所述的基于云计算平台的应用部署方法,其特征在于,所述根据所述编译代码对所述应用进行部署的步骤之后还包括:
检测源代码数据的更新状态,在源代码数据发生更新时,根据新的源代码进行应用的重新部署。
6.一种基于云计算平台的应用部署系统,其特征在于,包括:
生成模块,用于生成与需要部署的应用对应的配置文件;其中,所述配置文件包括:所述应用的源代码地址、编写语言及其运行环境;所述配置文件是由云应用商店模块生成的;
下载模块,用于通过云计算平台根据所述源代码地址从源代码仓库下载所述应用的源代码,根据所述编写语言和运行环境从源代码仓库下载所需的编译工具包;
编译模块,用于创建应用容器,并将所述源代码和编译工具包在所述应用容器中进行编译,得到编译代码,根据所述编译代码对所述应用进行部署;
还包括触发模块,所述触发模块用于从云应用商店模块中选择需要部署的应用,触发云计算平台工作;
其中,云应用商店模块通过授权和验证功能接口以及应用管理接口与云计算平台对接,所述授权和验证功能接口用于与用户对接,所述应用管理接口用于触发云计算机平台工作。
7.根据权利要求6所述的基于云计算平台的应用部署系统,其特征在于,所述下载模块包括:
压缩模块,用于调用云计算平台的云控制器对所述源代码进行压缩打包处理,得到源代码压缩包;
所述编译模块执行所述将所述源代码和编译工具包在所述应用容器中进行编译的过程进一步用于:
调用云计算平台的执行代理组件将所述源代码压缩包和编译工具包在所述应用容器中解压并进行编译。
8.根据权利要求7所述的基于云计算平台的应用部署系统,其特征在于,所述编译模块进一步用于:
调用执行代理组件创建部署的脚本文件,将所述源代码压缩包、编译工具包和脚本文件置入所述应用容器中,解压所述源代码压缩包和编译工具包,根据所述脚本文件对所述应用容器进行配置。
9.根据权利要求7所述的基于云计算平台的应用部署系统,其特征在于,所述压缩模块进一步用于:
调用云计算平台的云控制器对所述源代码进行压缩打包处理,将源代码压缩包保存在本地缓存文件中并以识别码命名。
10.根据权利要求6所述的基于云计算平台的应用部署系统,其特征在于,还包括:
更新模块,用于检测源代码数据的更新状态,在源代码数据发生更新时,根据新的源代码进行应用的重新部署。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510206584.2A CN104793946B (zh) | 2015-04-27 | 2015-04-27 | 基于云计算平台的应用部署方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510206584.2A CN104793946B (zh) | 2015-04-27 | 2015-04-27 | 基于云计算平台的应用部署方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104793946A CN104793946A (zh) | 2015-07-22 |
CN104793946B true CN104793946B (zh) | 2018-07-06 |
Family
ID=53558762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510206584.2A Active CN104793946B (zh) | 2015-04-27 | 2015-04-27 | 基于云计算平台的应用部署方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104793946B (zh) |
Families Citing this family (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105094851A (zh) * | 2015-09-06 | 2015-11-25 | 浪潮软件股份有限公司 | 一种基于Git随时发布代码的实现方法 |
CN106610853A (zh) * | 2015-10-26 | 2017-05-03 | 阿里巴巴集团控股有限公司 | 一种应用部署方法和装置 |
CN105867990A (zh) * | 2015-11-20 | 2016-08-17 | 乐视云计算有限公司 | 软件开发一体化的方法及装置 |
CN105490860B (zh) * | 2015-12-24 | 2019-03-05 | 北京奇虎科技有限公司 | 部署应用程序运行环境的方法、装置及系统 |
CN105843881B (zh) * | 2016-03-21 | 2019-04-26 | 北京搜狐新媒体信息技术有限公司 | 一种图片处理url映射方法和装置 |
CN106095522A (zh) * | 2016-06-03 | 2016-11-09 | 北京奇虎科技有限公司 | 一种实现分布式编译的方法和分布式编译系统 |
CN106095442B (zh) * | 2016-06-13 | 2021-07-02 | 福州智永信息科技有限公司 | 基于web的自动高速出包方法 |
CN106055388A (zh) * | 2016-06-25 | 2016-10-26 | 国云科技股份有限公司 | 一种云平台应用自动部署框架 |
CN106293701A (zh) * | 2016-07-26 | 2017-01-04 | 浪潮软件股份有限公司 | 基于云端服务器的多租户版本管理的应用引擎设计方法 |
CN106445515A (zh) * | 2016-09-18 | 2017-02-22 | 深圳市华云中盛科技有限公司 | 一种基于容器的PaaS云的实现方法 |
CN106406971B (zh) * | 2016-09-26 | 2019-05-07 | 杭州迪普科技股份有限公司 | 一种代码文件的编译方法及装置 |
CN106598841B (zh) * | 2016-11-07 | 2020-05-01 | 上海斐讯数据通信技术有限公司 | 一种自动化测试框架的自安装方法及系统 |
CN107070964B (zh) * | 2016-12-08 | 2020-03-13 | 上海找钢网信息科技股份有限公司 | 基于异构环境的远程通信打包方法及系统 |
CN106843991A (zh) * | 2016-12-13 | 2017-06-13 | 北京元心科技有限公司 | 程序编译方法及系统 |
CN106598681A (zh) * | 2016-12-21 | 2017-04-26 | 北京恒华伟业科技股份有限公司 | 开发环境构建方法及装置 |
CN106775730A (zh) * | 2016-12-21 | 2017-05-31 | 深圳Tcl数字技术有限公司 | 程序发布方法及系统 |
CN108241793A (zh) * | 2016-12-23 | 2018-07-03 | 大唐移动通信设备有限公司 | 一种生成Web网页应用系统的方法及装置 |
CN108270728B (zh) * | 2016-12-30 | 2020-10-30 | 上海华讯网络系统有限公司 | 基于容器的混合云管理系统及方法 |
CN106775760B (zh) * | 2017-01-04 | 2020-02-14 | 郑州云海信息技术有限公司 | 基于源码库上传容器镜像至镜像仓库的方法及系统 |
CN106815052A (zh) * | 2017-01-10 | 2017-06-09 | 南威软件股份有限公司 | 一种适配多环境配置的快速部署系统的方法 |
CN106802807B (zh) * | 2017-02-20 | 2020-07-24 | 深圳市冬泉谷信息技术有限公司 | 基于容器平台的应用交付方法、容器平台及应用交付系统 |
CN108574702A (zh) * | 2017-03-08 | 2018-09-25 | 中兴通讯股份有限公司 | 一种云应用部署方法和系统 |
CN108073426B (zh) * | 2017-03-29 | 2021-07-06 | 北京青云科技股份有限公司 | 一种基于云计算的软件管理方法、装置及系统 |
CN107885658B (zh) * | 2017-10-31 | 2019-06-21 | 平安科技(深圳)有限公司 | 测试前置实现方法、装置、终端设备及存储介质 |
EP3486772A1 (en) * | 2017-11-16 | 2019-05-22 | Siemens Aktiengesellschaft | Method for reciprocally integrating applications in an industrial program-control system |
CN107979493B (zh) * | 2017-11-21 | 2019-10-29 | 平安科技(深圳)有限公司 | 平台即服务paas容器平台的构建方法、服务器及存储介质 |
CN110018857B (zh) * | 2018-01-05 | 2022-08-16 | 武汉斗鱼网络科技有限公司 | 应用组件化中分支自动管理方法、存储介质、设备及方法 |
CN108196843B (zh) * | 2018-01-09 | 2021-03-26 | 成都睿码科技有限责任公司 | 可视化Docker容器自动编译部署的运维方法 |
CN110018951B (zh) * | 2018-01-10 | 2022-12-27 | 武汉斗鱼网络科技有限公司 | 一种js代码的测试方法、存储介质、设备和系统 |
CN108833482B (zh) * | 2018-05-21 | 2020-12-08 | 平安科技(深圳)有限公司 | Mdl文件自动下载方法、系统、计算机设备和存储介质 |
CN109408038B (zh) * | 2018-09-20 | 2022-04-08 | 摩尔元数(福建)科技有限公司 | 一种开源app个性化定制方法以及系统 |
CN111198721A (zh) * | 2018-10-30 | 2020-05-26 | 北京国双科技有限公司 | 应用程序运行方法和装置 |
CN111124596A (zh) * | 2018-11-01 | 2020-05-08 | 千寻位置网络有限公司 | 基于容器的发布管理方法及其系统 |
CN109614109B (zh) * | 2018-11-16 | 2022-02-01 | 中国银行股份有限公司 | 应用部署方法、装置和系统 |
CN111324412A (zh) * | 2018-12-13 | 2020-06-23 | 阿里巴巴集团控股有限公司 | 服务部署方法、设备及存储介质 |
CN109783076A (zh) * | 2018-12-14 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 基于git的代码管理方法、装置、设备和存储介质 |
CN111488254A (zh) * | 2019-01-25 | 2020-08-04 | 顺丰科技有限公司 | 一种机器学习模型的部署与监控装置和方法 |
CN109933329A (zh) * | 2019-03-01 | 2019-06-25 | 深圳微品致远信息科技有限公司 | 一种软件产品通过云端进行智能部署运维的方法 |
CN109976739A (zh) * | 2019-03-29 | 2019-07-05 | 山东浪潮云信息技术有限公司 | 一种基于docker的前端开发方法 |
CN110008073B (zh) * | 2019-04-11 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 硬件平台差异化屏蔽方法、装置、设备及可读存储介质 |
CN110177144B (zh) * | 2019-05-27 | 2021-10-08 | 万惠投资管理有限公司 | 一种基于私有云一键复制应用环境的方法 |
CN110366186B (zh) * | 2019-06-06 | 2022-04-12 | 佛山职业技术学院 | 一种传感器执行器网络应用程序的部署方法及系统 |
CN112581201A (zh) * | 2019-09-29 | 2021-03-30 | 中国科学院沈阳自动化研究所 | 一种面向工业互联制造的移动开放平台及实现方法 |
CN110795105A (zh) * | 2019-10-29 | 2020-02-14 | 许昌许继软件技术有限公司 | 一种配电自动化主站系统自动编译部署方法与系统 |
CN110851211A (zh) * | 2019-11-13 | 2020-02-28 | 北京云途腾科技有限责任公司 | 用于显示应用信息的方法、装置、电子设备和介质 |
CN111083054B (zh) * | 2019-11-15 | 2021-11-30 | 浙江大搜车软件技术有限公司 | 路由配置处理方法、装置、计算机设备和存储介质 |
CN111142884B (zh) * | 2019-12-12 | 2024-03-26 | 北京达佳互联信息技术有限公司 | 小程序的版本部署方法、装置、电子设备及存储介质 |
CN111061642B (zh) * | 2019-12-19 | 2021-02-02 | 北京智能工场科技有限公司 | 一种基于用户数据的全自动竞赛数据处理系统以及方法 |
CN113127136B (zh) * | 2019-12-30 | 2023-12-12 | 北京懿医云科技有限公司 | Docker镜像生成方法及装置、存储介质、电子设备 |
CN111198726B (zh) * | 2019-12-30 | 2023-07-14 | 中科星图股份有限公司 | 一种适应传统应用云化的配置系统及方法 |
CN111506322B (zh) * | 2020-04-16 | 2023-03-14 | 瑞纳智能设备股份有限公司 | 一种自动化集成构建开发部署平台及方法 |
CN111399865A (zh) * | 2020-04-21 | 2020-07-10 | 贵州新致普惠信息技术有限公司 | 一种基于容器技术自动构建目标文件的方法 |
CN111752830B (zh) * | 2020-06-22 | 2022-08-16 | 中国第一汽车股份有限公司 | 汽车诊断系统、汽车诊断系统的更新方法、装置和设备 |
CN112162753B (zh) * | 2020-09-28 | 2024-08-09 | 腾讯科技(深圳)有限公司 | 软件部署方法、装置、计算机设备和存储介质 |
CN112114904B (zh) * | 2020-09-28 | 2024-07-09 | 中国建设银行股份有限公司 | 系统配置信息的处理方法及装置 |
TWI759096B (zh) * | 2021-02-04 | 2022-03-21 | 中華電信股份有限公司 | 共享軟體方案之建置與部署系統、方法及電腦可讀媒介 |
CN113064630B (zh) * | 2021-03-30 | 2024-02-23 | 北京智慧星光信息技术有限公司 | 移动端app自动打包方法、系统、电子设备及存储介质 |
CN113467931B (zh) * | 2021-06-04 | 2023-12-22 | 中国联合网络通信集团有限公司 | 算力任务的处理方法、装置及系统 |
CN113254356B (zh) * | 2021-07-16 | 2021-10-29 | 浩鲸云计算科技股份有限公司 | 一种基于Knative的测试环境管理方法 |
CN113407194B (zh) * | 2021-07-26 | 2024-08-16 | 北京京东乾石科技有限公司 | 一种部署软件的方法和装置 |
CN113849184A (zh) * | 2021-08-25 | 2021-12-28 | 武汉搜卡科技有限公司 | 业务项目运维方法、装置、设备及存储介质 |
CN114879984B (zh) * | 2022-07-07 | 2022-10-18 | 杭州阿启视科技有限公司 | 动态构建docker镜像减少离线文件体积的方法 |
CN115373727B (zh) * | 2022-08-08 | 2024-08-09 | 深圳安巽科技有限公司 | Http应用及后台脚本的部署方法、系统及存储介质 |
CN115469878B (zh) * | 2022-09-13 | 2023-11-24 | 上海掌御信息科技有限公司 | 一种Android代码多样性编译方法 |
CN118295731A (zh) * | 2024-04-03 | 2024-07-05 | 摩尔线程智能科技(北京)有限责任公司 | 一种云安卓应用运行方法及系统、电子设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103608773A (zh) * | 2011-04-12 | 2014-02-26 | 威睿公司 | 用于多节点应用的部署系统 |
CN104391689A (zh) * | 2014-11-04 | 2015-03-04 | 中国石油天然气股份有限公司 | 一种物联网应用的开发方法、中间件及PaaS平台 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9170797B2 (en) * | 2012-01-31 | 2015-10-27 | Red Hat, Inc. | Automated deployment of an application in a computing platform |
-
2015
- 2015-04-27 CN CN201510206584.2A patent/CN104793946B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103608773A (zh) * | 2011-04-12 | 2014-02-26 | 威睿公司 | 用于多节点应用的部署系统 |
CN104391689A (zh) * | 2014-11-04 | 2015-03-04 | 中国石油天然气股份有限公司 | 一种物联网应用的开发方法、中间件及PaaS平台 |
Also Published As
Publication number | Publication date |
---|---|
CN104793946A (zh) | 2015-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104793946B (zh) | 基于云计算平台的应用部署方法和系统 | |
JP6463393B2 (ja) | テナント移行にわたるテナント・データのリカバリ | |
CN106371940B (zh) | 一种程序崩溃解决方法及装置 | |
CN106610839B (zh) | 发布升级包的方法、轻量升级方法、装置及系统 | |
US8489922B2 (en) | Networked recovery system | |
US8983935B2 (en) | Methods for utilizing a javascript emulator in a web content proxy server and devices thereof | |
CN109491695A (zh) | 一种集成安卓应用的增量更新方法 | |
CN107506221A (zh) | 应用程序升级方法、装置及设备 | |
CN104517181B (zh) | 一种核电站企业内容管理系统及方法 | |
US8856740B2 (en) | Implementing multiple versions of a plug-in concurrently | |
CN112286829B (zh) | 测试脚本生成方法及装置 | |
CN106598657A (zh) | 一种云平台应用一键部署的方法 | |
US11922146B2 (en) | Systems and method for creating enterprise software | |
CN106559484A (zh) | 实例系统免安装运行应用的方法 | |
CN111782207B (zh) | 任务流代码生成方法、装置、设备及存储介质 | |
CN107391112A (zh) | 一种文件版本检测方法及其专用装置 | |
WO2017020459A1 (zh) | 一种为宿主配置插件包的方法与装置 | |
US9513762B1 (en) | Static content updates | |
CN102147734B (zh) | 运行时类提取的方法和系统 | |
US20170329698A1 (en) | System and Method for Provisioning a Virtual Machine Test Environment | |
CN106649081B (zh) | 一种调试运行在客户端应用内离线包的方法及装置 | |
US8615751B2 (en) | Seeding product information | |
CN111683091A (zh) | 一种访问云主机控制台方法、装置、设备及存储介质 | |
CN117707543A (zh) | 一种应用安装包制作和安装方法、计算设备及存储介质 | |
CN109298883A (zh) | 一种教育平台下的自动生成组件文件的方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |