[发明专利]一种程序的部署方法在审
申请号: | 201610751076.7 | 申请日: | 2016-08-29 |
公开(公告)号: | CN107797806A | 公开(公告)日: | 2018-03-13 |
发明(设计)人: | 董明鑫;高磊;王栋 | 申请(专利权)人: | 北京雪球信息科技有限公司 |
主分类号: | G06F8/60 | 分类号: | G06F8/60;G06F8/61 |
代理公司: | 北京德琦知识产权代理有限公司11018 | 代理人: | 张晓峰,宋志强 |
地址: | 100102 北京市朝阳区阜*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 程序 部署 方法 | ||
1.一种程序的部署方法,其特征在于,包括:
对程序及其运行环境进行从底层到上层的层级划分,依照所述层级关系构建对应层级的镜像,其中上一层级的镜像数量大于等于下一层级的镜像数量;
分层存储所述层级的镜像,标记出层级镜像之间的从属关系;
根据需要部署的程序项目和运行环境,选择并读取对应层级的镜像,将所读取的镜像部署到指定的物理机上。
2.根据权利要求1所述的方法,其特征在于,所述依照所述层级关系构建对应层级的镜像,具体包括:
构建操作系统对应的干净镜像;
基于所述干净镜像,进一步安装指定的库和指定的工具,构建对应的基础镜像;
基于所述基础镜像,进一步安装指定计算机语言所需的运行时环境,构建对应的语言镜像;
基于所述语言镜像,进一步添加业务代码,构建业务镜像。
3.根据权利要求2所述的方法,其特征在于,所述基于所述语言镜像,进一步添加业务代码,构建业务镜像,具体包括:
接收到业务代码的提交指令;
获取所述业务代码所基于的语言镜像;
将业务代码从代码仓库中获取到本地;
打包编译所述业务代码;
将可以运行的业务代码植入到所述语言镜像中;
将启动停止脚本植入到所述语言镜像当中;
将植入到所述语言镜像的内容固化为新一层的镜像,该新一层的镜像为构建成功的业务镜像。
4.根据权利要求2或3所述的方法,其特征在于,该方法进一步包括:使用项目名加代码版本加时间戳的方式命名业务镜像。
5.根据权利要求1所述的方法,其特征在于,所述分层存储所述层级的镜像,标记出层级镜像之间的从属关系,具体包括:
计算每个镜像的内容的哈希值,根据该哈希值决定该镜像的存储位置;
对于层级之间具有从属关系的镜像,每个上层的镜像存储其所从属的下一层镜像的哈希值,利用层级之间的哈希值所组成的序列来标记层级镜像之间的从属关系;
所述读取镜像,具体包括:按照所述哈希值所组成的序列,从最上一层镜像开始读取每一层的镜像,得到一个完整的镜像。
6.根据权利要求1所述的方法,其特征在于,所述选择并读取对应层级的镜像,将所读取的镜像部署到指定的物理机上,具体包括:
A、读取当前需要部署的最高层级的镜像,将该镜像作为当前镜像,执行步骤B;
B、判断当前镜像所基于的下一层镜像是否已经部署在指定的物理机上,如果是,则将当前镜像部署到该指定的物理机上,或者将当前镜像及其上层的镜像部署到所述指定的物理机上;否则执行下一步;
C、判断当前镜像是否为最底层的镜像,如果是则将当前镜像部署到所述指定的物理机上,或者将当前镜像及其上层的镜像部署到所述指定的物理机上;否则,读取当前镜像所基于的下一层镜像,并将该下一层镜像作为当前镜像,执行步骤B。
7.根据权利要求1所述的方法,其特征在于,在所述构建镜像之前,进一步包括:对当前需要构建镜像的程序及其运行环境进行测试,在测试通过后,再构建对应层级的镜像。
8.根据权利要求1所述的方法,其特征在于,该方法进一步包括:
利用引用计数标记镜像被引用的次数,当收到对某一镜像的删除指令时,先判断该镜像的引用计数是否为零,如果是则删除该镜像,且将该镜像所从属的下一层镜像的引用计数减1;否则不删除该镜像。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京雪球信息科技有限公司,未经北京雪球信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610751076.7/1.html,转载请声明来源钻瓜专利网。