借助svn进行半自动多台服务器上线部署
传统简单保留
如果web服务器就那么几台,大致可以在测试服务器上测试好以后,直接在正式的web服务器 压缩拷贝一个,然后再覆盖下,进行简单暴力的发布。 这种纯手工发布往往会带来几个问题
- 压缩一不小心把压缩包放到了web根目录,要是命名不注意直接比如 www.rar ,这种致命的错误让人把文件下载去那就追悔莫及了
- 出现问题要还原的时候 得把备份的重新解压 还原繁琐
- 所有操作都是没有记录的 操作行为不能跟踪
- 开发、测试、运维 流程相当混乱,什么时候测试完了需要靠喊话
改造优化
最新在规范上线流程的时候思考出一套比较合适的上线方案,分几步走
- 开发机、一台本地测试机、 一台线上测试机、10台正式web
- 开发机和 测试机公用一个svn服务器, 线上测试机和正式机公用一个公网的svn服务器
- 写一套自动更新的脚步(在测试只要开发机已发布 直接通知测试机上服务器 执行svn update)
- 公司项目都是走产道,这个脚本直接在禅道发布管理里面操作,开发人员完成一个功能模块时候 手动点下发布(当然.net程序同步的肯定是发布后的文件夹) 把开发好的代码同步到测试服务器上
- 测试组本地测试没问题时候,在产道点下发布到线上与上线环境(这个过程目前可以手动拷贝,也可以通过ftp服务器自动上传)
- 线上测试没问题以后,禅道里面点击发布到正式服务器。
大概流程如下图
后记问题
- 随着svn的使用正式web服务器上会多一些不必要的文件浪费了部分硬盘空间
- 如果一旦svn服务器出现问题整个更新过程瘫痪 特别是在更新过程中出现问题更是致命的(更新到一半突然出问题)
无生,无灭,看似最高境界