SVN版本管理与大型代码上线方案
Posted zhangtao11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SVN版本管理与大型代码上线方案相关的知识,希望对你有一定的参考价值。
二.搭建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出了问题,是开发的责任,而运维只负责服务器的安全稳定,不宕机
特点及问题
- 发布快,及时,随时随地就可以发布代码
- 开发人员发布的代码不经过测试人员,且用户访问页面刷新后页面即改变,也可能刷新瞬间程序在更新,导致无法访问,对网站用户的体验比较差,如果开发写错了代码造成的影响就更大了,这是拿用户作为测试的上线方案
- 网站中大概50%以上的故障是和开发程序代码有关系的。如:开发写错了一个循环代码,导致了死循环,此时大量用户访问这个程序,就能把服务器拖垮
-
在中兴公司网站出了问题一般是运维的责任(例如:服务器宕机),但这种情况下,问题的原因大多可能是由开发人员代码引起的,这里比较好的策略是开发项目负责制思想
中型企业代码上线
中型企业上线,一般是规范运维人员操作步骤,指定同一的上线操作脚本,备份文件名称,备份文件路径。使操作人性化,统一化,自动化。
大型企业代码上线
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组的代码会不一致
以上是关于SVN版本管理与大型代码上线方案的主要内容,如果未能解决你的问题,请参考以下文章