自动化发布-1.初探

92 阅读2分钟

原文日期:2017-01-26


由于工作需要,被分配到运营部门搞系统运维,刚开始还是有点抵触的,毕竟进来时是开发岗位,现在却来搞系统运维,心里还是有点小落差、小抵触。但是没办法,只能硬着头皮顶上试试咯!

还记得第一个任务就是发布一个新改版的核心系统(测试环境),这系统有三个应用节点和三个数据库(现在想想不知为啥有三个数据库?应该是三个环境给不同人)。发布步骤大致是这样:

  1. 开发人员提出发布邮件。
  2. 运维人员就将svn里的发布包(sql和程序)解压下来。
  3. 然后停止一台机器。
  4. 复制所有SQL文件到plsql中,然后一个个执行。
  5. 执行完后,上传应用代码到服务器上。
  6. 备份原应用程序代码。
  7. 覆盖代码文件,启动程序。
  8. 步骤2重复执行2次

就这样,一个发布流程下来,要疯了吧。

秉着偷懒的精神,首先想到的就是将服务器的指令做成shell脚本。就这样,将上传代码到服务器和发布应用这过程做成一个脚本,每次上传完代码后,执行脚本即可。最后步骤如下。

  1. 开发人员提出发布邮件。
  2. 运维人员就将svn里的发布包(sql和程序)解压下来。
  3. 然后停止一台机器。
  4. 复制所有SQL文件到plsql中,然后一个个执行。
  5. 执行完后,上传应用代码到服务器上。
  6. 执行shell发布脚本。
  7. 步骤2重复执行2次

大概这样发布了四五次,还是感觉繁琐,感觉还有其他更简单的方式,首先想到的就是jenkins。它可以做到执行本地和远程shell命令,通过ssh等方式远程连接服务器、传输文件。