关于如何做版本发布

问题:

最近的项目经常需要做版本发布,但是版本发布老是出现问题,问题如下:

比如,新手小接了一个新需求,一个功能开发完了,在本地环境和测试环境都测试通过了,

把版本更新包提交到运维或者一线开发手上,

发布到线上,

通知开发,测试人员进行功能更新的确认;

如果确认ok,更新结束;

如果确认不ok,进入下面的循环;

while(线上测试确认结果不OK)

//温习下开发的功能的流程

//在出错的代码行前后加上日志

//部署到线上

//测试确认?OK:NO;

if(OK) break;

else {

//查看日志

//重新进入循环

}

总之,相当的繁琐;


思考: 这是一个版本发布不规范引起的问题,问题的根源在哪呢?

在下认为,原因有2;

  1. 本地环境,测试环境,生成环境的代码(除了数据库配置文件,缓存配置文件),存在差异;
  2. 相关的错误信息没有放到容易查看的位置,出现问题无法直观明显的看出问题,从问题中的加日志可以看出,这是一种很低效率的方法;

解决方案:

针对这种现象和产生这种问题的原因,解决方案非常简单;

1,首先是代码错误信息的整理,最好是在数据库中弄一张或者若干张日志表,当程序发生错误或者异常,或者功能逻辑错误的时候,把相关的判断结论和异常信息,数据进行存库,如果出现问题,可以快速的找到产生问题的原因,和依据;

这点非常重要,可以大大减轻开发人员成为救火队长的压力,把相关的权限在后台开发给业务人员,让他们自己去协调解决问题;

2,版本控制工具的使用,比如svn, 首先,在本地弄一个功能完全覆盖的测试,通过之后把源码分别发布到测试环境,正式环境(数据库配置文件,缓存配置文件除外),打出一个分支来作为一个主分支;

后续的功能开发,在这个主分支上复制出一个来进行开发,开发完成,测试环境测试完之后,合并到主分支上去,通过文件比较,找出更新的文件列表;

把这些文件整理,更新到线上,进行版本发布;

3,更新的一个好习惯;

首先有一个主目录, 名称是 站点域名或者应用名_时间_开发人员_需求名称

然后里面是3个目录,作用分别是:

序号 目录名或者文件名 作用
1 bak 备份目录,里面分为all(全部备份),sub(部分备份)
2 program 按照程序的部分备份目录,进行部分文件的替换
3 sql 需求需要sql脚本
4 readme.txt 更新的说明,文件列表,验证方法

这些文件准备好之后,进行两次对比;

一个是全部备份跟本地源码或者运行包的对比,这可以找出是否有文件遗漏的情况出现;

第二个是部分备份跟program的更新文件进行对比,查看修改的地方,再次进行确认;

如果对比都没有问题,直接把program目录整个覆盖到线上的程序目录;

最后是按照确认步骤,让测试和开发人员进行确认;

如果没问题,则更新完毕;

这样做下来,一般都不会出现版本更新的问题;

若有想法,欢迎交流;卡特 505847426

posted @ 2015-09-18 03:25  李福春  阅读(3937)  评论(0编辑  收藏  举报