SVN版本管理与大型代码上线方案(9)

二.搭建SVN服务器

(1)安装依赖包

   yum -y install subversion

  mkdir -p /application/svndata

  mkdir -p /application/svnpasswd

编辑svn配置文件

cp /application/svndata/yunjisuan/conf/authz  /application/svnpasswd/

cp /application/svndata/yunjisuan/conf/passwd  /application/svnpasswd/

启动服务

passwd文件及密码设置

authz的授权

搭建SVN客户端(windows)

svn客户端在linux上的使用

钩子脚本测试

大中小型企业上线解决方案

小型公司代码上线方案(20台服务器以下)

小型企业,二十台服务器内由开发人员自己来代码上线。 
这样的优点:Web出了问题,是开发的责任,而运维只负责服务器的安全稳定,不宕机

特点及问题

  1. 发布快,及时,随时随地就可以发布代码
  2. 开发人员发布的代码不经过测试人员,且用户访问页面刷新后页面即改变,也可能刷新瞬间程序在更新,导致无法访问,对网站用户的体验比较差,如果开发写错了代码造成的影响就更大了,这是拿用户作为测试的上线方案
  3. 网站中大概50%以上的故障是和开发程序代码有关系的。如:开发写错了一个循环代码,导致了死循环,此时大量用户访问这个程序,就能把服务器拖垮
  4. 在中兴公司网站出了问题一般是运维的责任(例如:服务器宕机),但这种情况下,问题的原因大多可能是由开发人员代码引起的,这里比较好的策略是开发项目负责制思想

中型企业代码上线

中型企业上线,一般是规范运维人员操作步骤,指定同一的上线操作脚本,备份文件名称,备份文件路径。使操作人性化,统一化,自动化。

大型企业代码上线

IDC统一分发管理器向IDC正式环境代码上线时: 
(1)如果WEB是PHP那么就直接用ansible+rsync去推送, 
(2)如果是tomcat那它的代码是java,那么就要用A/B代码上线的方式(因为上线完成后需要肖红新启动web服务器) 
PHP:在上线的过程前每台Web服务器都会必须执行一个备份脚本。(如:管理服务器不是直接把数据推送到web服务器的网页目录,而是推送到web服务器的其它目录(如:/root/www),之后再把原网页目录打包,进入/root/www目录下,之后把/root/www中的数据覆盖到原网页目录)

 

 A/B分组代码上线

例如上图 
如果web服务器共有100台,都是tomcat,那么可以把它100台分为A组:50台,B组:50台,可以先把A组服务器从交换机上拔下来,插入到连接IDC测试的交换机上,B组来提供服务,然后通过IDC测试服务器对A组进行测试,如果没有问题那么再把它插回去,把B组的连接交换机的线拔下来连接到测试服务器。如果没有问题,再把B组的线再插回去。这样就完成了代码上线,并且不会影响用户。

 

 A/B分组上线注意的问题

全部服务器能分成2组(A、B组),但是不能分成3组。 
如果分成3组,那么A组上线(上线的过程中是需要去掉服务器组中的A组)完成,在上线B的过程中,A组的代码和C组的代码会不一致

原文地址:https://www.cnblogs.com/zhangtao11/p/10012718.html