Apache Ant 实现自动化部署


  • 博客分类:


中国广东省深圳市龙华新区民治街道溪山美地

版权声明

转载请与作者联系,转载时请务必标明文章原始出处和作者信息及本声明。



这篇文章帮你解决下列问题:

源码获取,源码编译,处理配置文件,应用部署,远程备份,部署回撤,启动,服务器状态,停止

我的系列文档

编程语言

伦理片 http://www.dotdy.com/

1. 背景

在你的企业中是怎样完成从开发,测试到运维的?

很多企业的升级是这样做的,写完代码后编译打包,放到FTP上,同时发送一个升级邮件。然后让运维按照升级文档,一步一步操作。

这样的流程有很多问题

  1. 开发者通常是在Windows系统上完成开发与编译,而服务器通常是Linux操作系统,操作系统的差异可能导致编译后的程序运行不了。

  2. 安全角度,源码可以审查,但编译文件无法审查,打包过程可能被植入恶意代码

  3. 经常出现生产环境与本地开发环境不一致,运行有差异

  4. 浪费人力,理论上代码写完,就跟开发人员一点关系都没有了,但实际上每次升级过程开发与测试都需要在场

稍先进一点做法是使用Subversion/Git,开发将代码放到版本库中,运维直接使用 svn up / git pull 升级,这样做法也有很多问题存在

  1. 首次升级非常慢,svn 还好些,svn只取最后一次提交的版本;git 将所有的版本克隆到本地。
  2. 如果修改了本地文件,更新会产生冲突
  3. 配置文件无法个性化配置

2. 我们需要什么样的流程

我们需要什么样的流程或者什么样的流程才是最理想流程?

我认为:
  1. 开发人员不要做与开发无关的事情,代码写完就与开发没有半点关系了。通知测试人员,代码已经完成。

  2. 测试人员自己部署测试环境,不依赖开发人员,测试完成,通知运维人员可能升级了

  3. 运维人员不接受任何部门提供的打包或补丁程序,代码只能在配置管理服务器上完成编译打包以及部署。

  4. 升级应该由自动化工具完成,而不是人工操作。

开发,测试,运维各司其职,这就是DevOps。

3. 怎样实现自动部署

实现自动化部署有很多方法,很多年前笔者就开始研究总结,下面是一些经验分享。

3.1. 操作系统

开发,测试,生产三个环境的配置如果出自同一个模板会减少很多由于环境差异带来的困扰。

过程 1. 操作系统部署
  1. 无人值守安装

    通过无人值守脚本安装操作系统,减少人为安装造成的差异

  2. 运行环境

    统一配置运行环境,开发库以及版本统一

  3. 应用服务器统一

    应用服务器版本,安装标准,配置文件都需要统一,减少差异

3.2. 程序部署

实现应用程序自动部署,首先你要清楚自动部署所需要的流程,部署一个流程通常是这样的:

过程 2. 自动部署步骤
  1. 初始化

    建立工作环境,例如目录,检查所需环境

  2. 获取

    从版本库指定分支中获取代码并保存到本地

  3. 编译

    编译可执行代码

  4. 配置

    处理配置文件

  5. 备份

    备份应用程序

  6. 停止

    服务服务

  7. 部署

    部署应用程序到目的主机,如果已存在需要覆盖原来的程序

  8. 启动

    启动服务

  9.  影音先锋电影 http://www.iskdy.com/

3.3. 自动部署程序

自动部署程序完成上面的部署,还需要做下面一些事情。

日志功能
  1. 记录什么时间点做过部署
  2. 部署了那些文件

4. Apache Ant 实现自动化部署

4.1. 运行环境

准备一个全新的的服务器,最小化安装CentOS 7操作系统,然后运行下面脚本初始化

			
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值