柒's Blog - 部署
type: channel
link: https://blog.52itstyle.vip/tag/部署/
items: SVN自动化部署全流程之架构之美

SVN自动化部署全流程之架构之美
type: item
date: 2017-03-09T10:45:00+00:00
description: 公司一直没有一个完善的部署流程，基本都是通过上线打包以后SSH手动拖拽部署项目。当然网上也有现成的持续集成工具，比如jenkins。Jenkins是一个开源软件项目，旨在提供一个开放易用的软件平台，使软件的持续集成变成可能。Jenkins是基于Java开发的一种持续集成工具，用于监控持续重复的工作，功能包括：1、持续的软件版本发布/测试项目。2、监控外部调用执行的工作。尽管jenkins有很丰富的功能。然而，暂时并没用使用倒它，这是后话，以后再谈。上图，是一个生产环境上线的一个基本流程图。当然，这里忽略了测试环境的流程。一、开发人员提交代码到SVN项目分支二、SVN服务器执行代码检出功能，并使用rsync同步至生产环境服务器A(线上测试环境)三、服务器A使用ANT以及shell脚本执行打包、备份、部署、重启操作四、线上测试环境进行UI功能的测试五、测试无误，服务器A使用rsync推送代码至线上集群服务器B和服务器C(事先备份)六、测试人员进行简单的测试即可注意完善使用说明步骤二中，其实可以用到svn的钩子功能，但是目前使用的脚本手动执行，同步代码库到生产环境。还有所谓的线上测试环境，是为了真实模拟生产环境，部署以及测试不至于影响正式环境，测试无误后再同步代码。基本解决的问题，脚本化部署，虽然有少量人工参与，但是免去了以前部署人员对照目录，拖拽的问题(少部署，漏部署，集群下复制，参数漏改的问题)，最主要的还是TM网速问题。由于增加了线上测试环境，避免了部分功能回滚麻烦的问题。