[发明专利]代码发布方法、代码发布机和代码发布系统有效
| 申请号: | 201310190079.4 | 申请日: | 2013-05-21 | 
| 公开(公告)号: | CN103226485A | 公开(公告)日: | 2013-07-31 | 
| 发明(设计)人: | 孙全刚 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 | 
| 主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F11/36 | 
| 代理公司: | 北京市隆安律师事务所 11323 | 代理人: | 权鲜枝;何立春 | 
| 地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 代码 发布 方法 系统 | ||
技术领域
本发明涉及计算机技术领域,具体涉及一种代码发布方法、代码发布机和代码发布系统。
背景技术
在互联网行业中,做服务端开发的工程师将程序开发完毕后,需要将程序代码或者编译结果部署到服务器上运行,才能间接的为用户提供服务,这个过程称为代码发布。
代码开发时所使用的机器称为开发机,运行代码并为用户提供服务的服务器称为线上服务器。因此代码发布这个应用场景可以抽象为:将程序代码从开发机拷贝到线上服务器。最简单的是可以采用复制、粘贴等。对于Linux服务器,其一般采用scp(Linux下的远程文件拷贝命令)方式。但是当机器数量超过十台,达到数十台时,这个工作就会非常的繁琐。同时,在部署代码时通常需要执行一些特定的操作,从而导致整个代码发布过程异常艰辛。
为了解决这个问题,现有的解决方式是编写shell脚本,采用scp方式,对所有服务器依次执行代码文件比对和代码文件拷贝工作,同时可以执行一些特定的脚本,以将代码文件发布到线上服务器。这可以解决一部分问题,但当机器数量达到上百台时,这个串行发布的过程会达到数十分钟甚至数小时。
由于发布过程的持续时间长,会导致线上代码的不一致时间会很长,进而影响用户的使用。且由于代码直接上线,没法进行测试,如果代码存在漏洞,会直接影响用户的使用。此外,现有的代码发布过程不利于管理和操作。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种代码发布方法、代码发布机和代码发布系统。
依据本发明的一个方面,提供了一种代码发布方法,用于将待发布的代码文件发布到线上服务器,该方法包括:
创建发布任务;
将所述发布任务待发布的代码文件上传到与多个服务器集群对应的多个回归机,其中,所述回归机用于模拟与其对应的服务器集群中的线上服务器的环境运行代码文件以对所述代码文件进行回归测试;
待所述多个回归机回归测试通过后,将所述多个回归机上的代码文件同步到与所述多个回归机对应的多个服务器集群中的各线上服务器。
可选地,所述将所述发布任务待发布的代码文件上传到与多个服务器集群对应的多个回归机进一步包括:
对于第一回归机,在其上查找所述待发布的代码文件的旧版本代码文件;
如果未查找到,则将所述待发布的代码文件上传到所述第一回归机;否则,将所述待发布的代码文件与所述旧版本代码文件进行比较;
如果所述待发布的代码文件与所述旧版本代码文件存在差异,则将所述待发布的代码文件上传到所述第一回归机。
可选地,将所述发布任务待发布的代码文件上传到与多个服务器集群对应的多个回归机进一步包括:
对于除所述第一回归机之外的每个其它回归机,在其上查找所述待发布的代码文件的旧版本代码文件;
如果未查找到,则将所述待发布的代码文件上传到所述其它回归机;否则,将在所述其它回归机上查找到的旧版本代码文件与在所述第一回归机上查找到的旧版本代码文件进行比较;
如果在所述其它回归机上查找到的旧版本代码文件与在所述第一回归机上查找到的旧版本代码文件相同,则按照对所述第一回归机那样对所述其它回归机进行上传;否则将所述待发布的代码文件与在所述其它回归机上查找到的旧版本代码文件进行比较;
如果所述待发布的代码文件与在所述其它回归机上查找到的旧版本代码文件存在差异,则将所述待发布的代码文件上传到所述其它回归机。
可选地,将所述多个回归机上的代码文件同步到与所述多个回归机对应的多个服务器集群中的各线上服务器包括:
将每个回归机上的代码文件通过同时同步的方式,并行地同步到与每个回归机对应的服务器集群中的各线上服务器。
可选地,所述将所述多个回归机上的代码文件同步到与所述多个回归机对应的多个服务器集群中的各线上服务器包括:
对于每个回归机,将该回归机上的代码文件先同步到与该回归机对应的服务器集群中的部分线上服务器,之后当所述代码文件在所述部分线上服务器上的运行达到预设要求时,再逐步将该回归机上的代码文件同步到与该回归机对应的服务器集群中的其余线上服务器。
可选地,所述创建发布任务之前还包括:对待发布的代码文件进行语法错误检查,把没有语法错误的待发布的代码文件作为本次发布任务待发布的代码文件。
依据本发明的一个方面,提供了一种代码发布机,用于将待发布的代码文件发布到线上服务器,其包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310190079.4/2.html,转载请声明来源钻瓜专利网。





