[发明专利]一种程序的部署方法在审
申请号: | 201610751076.7 | 申请日: | 2016-08-29 |
公开(公告)号: | CN107797806A | 公开(公告)日: | 2018-03-13 |
发明(设计)人: | 董明鑫;高磊;王栋 | 申请(专利权)人: | 北京雪球信息科技有限公司 |
主分类号: | G06F8/60 | 分类号: | G06F8/60;G06F8/61 |
代理公司: | 北京德琦知识产权代理有限公司11018 | 代理人: | 张晓峰,宋志强 |
地址: | 100102 北京市朝阳区阜*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 程序 部署 方法 | ||
技术领域
本申请涉及计算机程序的处理领域,尤其涉及一种程序的部署方法。
背景技术
目前,对于计算机程序开发已经越来越系统化和规模化,这就导致了大量的计算机程序需要进行相应的部署。所述的部署就是将程序及其运行环境安装到指定的物理机上。所述的物理机是具有数据计算处理能力的计算机或智能设备。
在现有技术中,程序的部署方式主要分为两种。
第一种方式是现在大多数公司所使用的。使用svn、git等版本控制工具,将需要部署的程序代码获取到。如果是解释型的语言,如PHP则可以直接将代码发布到生产环境的机器中运行;如果是编译型的语言,如C/C++则需要经过一个编译的过程,编译出可执行文件,然后将该文件发布到生产环境的机器中运行。这种方式的问题在于程序所需的配置文件与程序是互相分离的,有可能造成配置文件与程序不匹配导致故障。同时由于需要精细控制被替换的文件,有时候经常需要替换多个文件,不容易管理,对于开发和运维人员来说,使用成本相对较高,部署效率低下。
第二种方式是将代码与配置统一打包为一个软件包,这样就避免了配置文件与程序不匹配导致的问题,同时该软件包可以既可以安装在测试环境,也可以安装在生产环境,部署起来也比较方便。但是由于测试环境与生产环境存在巨大差异,运行时依赖的库文件,甚至操作系统版本都有可能不一样,所以通过测试环境测试的软件包,在生产环境中运行还是有可能会发生各种各样的问题,故障率较高。
发明内容
有鉴于此,本发明的主要目的是提供一种程序的部署方法,以提高部署效率、降低故障率。
本发明的技术方案是这样实现的:
一种程序的部署方法,包括:
对程序及其运行环境进行从底层到上层的层级划分,依照所述层级关系构建对应层级的镜像,其中上一层级的镜像数量大于等于下一层级的镜像数量;
分层存储所述层级的镜像,标记出层级镜像之间的从属关系;
根据需要部署的程序项目和运行环境,选择并读取对应层级的镜像,将所读取的镜像部署到指定的物理机上。
在一种优选实施例中,所述依照所述层级关系构建对应层级的镜像,具体包括:
构建操作系统对应的干净镜像;
基于所述干净镜像,进一步安装指定的库和指定的工具,构建对应的基础镜像;
基于所述基础镜像,进一步安装指定计算机语言所需的运行时环境,构建对应的语言镜像;
基于所述语言镜像,进一步添加业务代码,构建业务镜像。
在一种优选实施例中,所述基于所述语言镜像,进一步添加业务代码,构建业务镜像,具体包括:
接收到业务代码的提交指令;
获取所述业务代码所基于的语言镜像;
将业务代码从代码仓库中获取到本地;
打包编译所述业务代码;
将可以运行的业务代码植入到所述语言镜像中;
将启动停止脚本植入到所述语言镜像当中;
将植入到所述语言镜像的内容固化为新一层的镜像,该新一层的镜像为构建成功的业务镜像。
在一种优选实施例中,该方法进一步包括:使用项目名加代码版本加时间戳的方式命名业务镜像。
在一种优选实施例中,所述分层存储所述层级的镜像,标记出层级镜像之间的从属关系,具体包括:
计算每个镜像的内容的哈希值,根据该哈希值决定该镜像的存储位置;
对于层级之间具有从属关系的镜像,每个上层的镜像存储其所从属的下一层镜像的哈希值,利用层级之间的哈希值所组成的序列来标记层级镜像之间的从属关系;
所述读取镜像,具体包括:按照所述哈希值所组成的序列,从最上一层镜像开始读取每一层的镜像,得到一个完整的镜像。
在一种优选实施例中,所述选择并读取对应层级的镜像,将所读取的镜像部署到指定的物理机上,具体包括:
A、读取当前需要部署的最高层级的镜像,将该镜像作为当前镜像,执行步骤B;
B、判断当前镜像所基于的下一层镜像是否已经部署在指定的物理机上,如果是,则将当前镜像部署到该指定的物理机上,或者将当前镜像及其上层的镜像部署到所述指定的物理机上;否则执行下一步;
C、判断当前镜像是否为最底层的镜像,如果是则将当前镜像部署到所述指定的物理机上,或者将当前镜像及其上层的镜像部署到所述指定的物理机上;否则,读取当前镜像所基于的下一层镜像,并将该下一层镜像作为当前镜像,执行步骤B。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京雪球信息科技有限公司,未经北京雪球信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610751076.7/2.html,转载请声明来源钻瓜专利网。