开发者社区> 余二五> 正文

SVN代码上线流程

简介:
+关注继续查看

为了确保维护svn代码的正确性,特制定上传代码流程如下:

开发人员开发:

开发人员本地分支----取得svn最新代码(根据前一天的最后tag合并)-----代码开发----提交分支。

合并时候注意事项,对于冲突的文件看是不是自己本地正在修改的文件,不是的话就按照诛仙的tag来覆盖,否则按照本地,最好提前解决冲突问题(不好操作的话就被分好自己本地代码,讲SVN代码拿过来,好好看一下冲突冲突的问题),这样在回合的时候就可以按照自己分支来操作了(当然我们也要看一下,以防止别人先合并)

开发人员代码合并:

开发人员本地svn主线---》取得svn最新代码---》从本人分支合并到本地svn主线---》提交到svn主线(小心谨慎的)

每周值班人员代码取得、本地编译增量包

取得上线列表----->检查svn开发人员提交日志---->取得最新代码---->值班人员打标签----->本地编译增量包

打标签的工作在检查后提交sa前进行,每次提交给sa都打个tag

这部分工作做种是自动化,经每次打包的文件放在固定目录下共sa使用,在打包后注意一些目录和文件不要打包进去一时占空间,而是冲掉网站的文件。

1.2.1小型公司代码上线

wKioL1iirTaz1GUyAAEndVjOzI0094.jpg-wh_50

现状:

此类公司一般有3-5个开发人员,程序多位PHP程序,直接通过FTP直接上传代码到线上服务器,随时随地上线更新

此上线方法存在的问题:

1.开发不经过测试人员测试,用户访问页面刷新后页面即改变,对用户体验比较差,如果开发写错了代码造成的影响就更大了。

2.大概百分之50以上的故障直接和开发程序代码相关(比如:开发1写错了一个循环代码,此时用户访问就能把服务器搞死)

3.网站出了问题一般是运维人员的问题(例如宕机)但这种情况下,问题大多strace可能有开发人员引起的

解决方案

1.开发人员需在个人电脑搭建LAMP环境测试网站代码,并且在办公室或IDC机房测试环境。

2.代码上线规定时间,例如:三天上线一次,如网站需经常更新可每天下午17点上线(看网站业务性质而定,原则就是影响用户最小)

3.代码上线之前需备份,网站程序除了问题方便回退,另外,上传代码时尽可能先传到临时目录,完整后MV过去。

4.由运维人员管理上线,对于代码的功能性,开发更在意,而对于代码的性能和服务的稳定,运维更在意,因此,运维上线这样更规范科学

1.2.2中型企业上线解决方案

规范运维人员操作步骤,制定统一的操作脚本,备份文件名称,备份文件路径。使操作人性化,统一化。

Web代码的上线流程演示图:

wKiom1iirabhTeBtAAC4lqvZjRM903.jpg-wh_50

1.2.3 大型企业上线解决方案

wKioL1iircbDBPhMAAEwG7ilOJc924.jpg-wh_50

提示:

特别是JAVA代码环境,上线时,有数台机器同时需要更新:

1.本地开发人员取SVN代码。当天上线提交到trunk,否则,长期项目单开分支开发,然后再合并上线(trunk)。

2.办公室内网开发测试环境时,有开发人员或配置人员通过部署平台jenkins实现统一部署,(即在部署平台上控制开发及其从SVN取代码,编译,打包,发布开发几包名如idc_dep.war)。

3.开发人员通知测试人员或仪器测试,没有问题后,大上tag标记。

4.配置管理员,根据上部的tag标记,checkout出代码,并配置好IDC环境的所有配置,执行编译,打包(mvn,ant)(php不需要),然后发布到IDC内的统一分发服务器

5.配置管理员或SA上线人员,把分发的内容图送到相关测试的服务器(报名:idc_test.war)然后通知开发测试。如果有问题向上回退。

6.如果没有问题,继续打好tag,此时,配置管理员,根据上步的tag标记,checkout出代码,并配置好IDC正是环境的所有配置,执行编译,打包(mvn,ant)(php不需要),然后发不到IDC内的同意分发服务器。

7.配置管理员或SA上线人员,把分发的内容推送到相关正式服务器(报名:idc_product.war),然后通知开发及测试人员进行测试,如果有问题直接发布回滚指令。

IDC正式上线的过程对于JAVA程序,可以是AB组分组上线的思路,即平滑下线一半的服务器,然后发布更新代码测试,五问题后,挂上服务器,同时在平滑下线另一半的服务器,然后发布更新代码测试(或者直接发布后就挂上线)

对于PHP上线的方法:发布时可以用发布到正式线临时目录,然后mv或更改link的方式发不到正式线目录,不需要重启。

对于java上线方法:需要分组平滑下上线(如从负载均衡上摘掉部分服务器),发布代码后,重启服务器测试。

注意事项:

wKioL1iirlOSQJSAAAKn9nHylP8837.jpg-wh_50

SVN上包含代码和配置

wKioL1iirtOQkhioAAEPmmlkm3o208.jpg-wh_50

上线单:


wKiom1iirwnQ2k9FAADuE5KjEpk375.jpg-wh_50

什么是平滑代码上线?

最简单的讲,平滑代码上线就在网站代码更新时,不影响正在浏览用户的正常浏览网页或其正在使用的其他相关应用。

平滑上线的概念解析

为了说清楚这个问题,我们还是举例说明。

wKiom1iir02DbO4pAAFvbhTfoKk965.jpg-wh_50

wKioL1iir2Xhyqb0AAFbuHo9qPQ668.jpg-wh_50

一些软件的平滑重启的方式

wKiom1iir4_R5_SOAACaLsXIfvk093.jpg-wh_50

门户网站是如何做到平滑上线的呐?

wKioL1iir7rAcmYLAADPAacwRYo911.jpg-wh_50

wKiom1iir9PxugqXAAGrPbBNjBo201.jpg-wh_50

集群后端分为两组:一组平滑下线一端,上传下线的代码进行测试。测试完毕平滑上线,然后在进行另一组下线进行上传代码。进行测试然后平滑上线










本文转自 妙曼  51CTO博客,原文链接:http://blog.51cto.com/yanruohan/1897645,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
[Android]Android焦点流程代码分析
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/7286503.html 通过View的View::focusSearch进行焦点搜索对应方向上的下一个可以获取焦点的View: public View focus...
1067 0
记一次使用 Arthas 热更新线上代码
引用参考第二条 - Arthas提醒您:诊断千万条,规范第一条,热更不规范,同事两行泪
58 0
Andriod 通话处理流程
Andriod通话处理流程 一、总览 1、从java端发送at命令的处理流程。 2、unsolicited 消息从modem上报到java的流程。 3、猫相关的各种状态的监听和通知机制。 4、通话相关的图标变换的工作原理。
722 0
asp.net常用javascript封装代码
using System;using System.Text;using System.Data;using System.Configuration;using System.Web;using System.
880 0
git学习------>从SVN迁移到Git之后,项目开发代码继续在SVN提交,如何同步迁移之后继续在SVN提交的代码到Git?
最近逐步逐步的将公司的项目都从SVN往Git迁移了,但是想团队成员都能够一步到位就迁移到Git是不可能的,因为还有大部分人都还不会Git,所以整个过渡过程估计得大半年。
1644 0
+关注
20381
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载