关于如何作版本发布

问题:sql

最近的项目常常须要作版本发布,可是版本发布总是出现问题,问题以下:数据库

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

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

发布到线上,svn

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

若是确认ok,更新结束;测试

若是确认不ok,进入下面的循环;版本控制

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

blog

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

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

//部署到线上

//测试确认?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

相关文章
相关标签/搜索