在过去几年的DevOps的浪潮中,自动化、持续集成这两个概念早已深入人心(互联网技术人)。比尔盖茨先生曾经都说过:“任何技术在一个业务中使用的第一条规则就是,将自动化应用到一个高效的操作上将会放大高效。第二条就是自动化应用到一个低效操作上,则放大了低效率。”自动化部署也逐渐成为各中小型企业追求的方向,那么,今天民工哥就自动化部署的概述、自动化部署的工具、自动化部署的流程、自动化部署实践等4个方面,与大家一同来讨论、交流一下关于中小企业自动部署的问题。
运维人员手工使用Scp、Xftp等方式来传输数据 手工登录服务器执行Git pull 、svn update等命令进行更新代码的操作 开发人员手工编译打包,然后通过内网传输给运维人员 运维人员通过rz上传的方式上传到目标服务器,然后,执行重命名原包、拷贝新包到目标目录,再执行服务应用重启命令完成整个部署过程 看似非常简单,也不是很麻烦,但是一旦项目多,部署频繁,这种情况下就会大大降低工作效率。民工哥之前工作中就有这类体验,公司的活动类项目高达100+,很多都是需要快速上线及下线、或者更新的,手工部署真的累。
整个过程都需要人员参与,占用大量的时间,效率低下 上线、更新、回滚速度慢 存在一定的管理混乱,人为误操作的机率增大
有自动动部署的概念,就需要自动化部署的工具,今天来介绍下一些这方面的工具给大家,怎么用?如何用?大家根据实际需求来定,一切不以需求来定的工具、流程、方法等都是耍流氓。
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins应该说是目前最好用的持续集成工具之一,它的插件非常多,安装也很方便,功能相当的强大、灵活,最大的缺点就是学习成本较高。
微软DevOps产品的基础之一是 Visual Studio。 Visual Studio允许用户定义版本定义,自动化运行,跟踪版本等等。
Octopus Deploy创建目的是为了用的自动化部署。你可以在一台服务器安装或在Azure里做成实例。
2013年被IBM公司收购,米乐M6 M6米乐UrbanCode 自动化部署到本地或云环境。
Amazon的自动化部署工具CodeDeploy,有着令人印象深刻的客户名单、平台与语言无关。
DeployBot 可以链接任何Git存储库,并且允许手动或自动部署到多种环境。DeployBot提供大量集成,包括通过Slack部署的能力。
Shippable 规定了它们自己的“DevOps支柱”和它们自己的CI平台,运行依靠称为minions的基于Docker的容器。
CircleCI 是一个CI解决方案,强调灵活性、可靠性和速度。CircleCI提供从资源到创建到部署的解决方案,并且支持大量的语言和应用。
Gradle 是一个被一些业内最有名的例如LinkedIn, Netflix, 和Adobe所使用的创建工具。Gradle使用Groovy创建脚本,按惯例构建框架,并认为构建工具同时作为Apache的Ant的通用工具。
Automic 试图应用DevOps原理给一些后端应用,允许他们从已经在过去几年里许多前端、基于web的应用相同的实践上受益。
XL Deploy 是一个来自XebiaLabs的应用发布自动化工具,支持大量插件和环境,使用无代理架构。
Codeship是服务器托管CI解决方案,通过原生Docker支持定制。
一个CD服务器,强调可视化工作流,GoCD 是一个开源项目,由ThoughtWorks公司赞助开发。
Capistrano 是一个开源部署工具,使用Ruby开发。Capistrano 文档具有脚本语言和“理智的,富有表现力的API。”
Travis CI 可以同步到你的gitHub账户,允许自动化测试和部署。Travis CI是一个免费的开源项目。
BuildBot 是一个开源的基于Python的持续集框架,自称为“内含有电池的框架”。BuildBot是面向罐装的解决方案用例,目前还不够灵活。
获取代码 编译打包 移除目标服务器 解压文件到目标目录 拷贝差异化文件 重启服务 测试 重新加入集群 继续下一个节点或一组节点

一般可以将需要回滚的版本先列出来,然后将现有的软链接文件删除,重新将上一个版本的源文件生成一个软链接至目标目录,然后重新启动服务,进行自动化测试,最终加入集群。

1、 发布机器需要能够解析web服务器主机名,并且配置ssh通信 2、 变量中的目录以及用户等信息需要自己创建,脚本没有做判断自己创建。我这里web服务器是
3、代码的部署使用tag,但是代码的更新使用软连接来控制,回滚则切换到上一个软连接 4、由于java是编译型语言,我们使用maven来进行编译,所以需要安装maven环境。 5、关于环境配置文件:配置文件为自己手动维护,每次都是删除git仓库拉取下来的配置文件,把
1、操作系统:centos 6.5 64位 2、代码使用gitlab进行管理 3、代码每次上线和回滚通过tag控制
补充:如果需要在企业使用这种部署方式,还需要有相应环境规范以及git分支管理规范。
M6 米乐
电话:13644723777
传 真:+86-173-4169
手 机:13644723777
邮 箱:mile@nmgdp.net
地 址:内蒙古包头市昆区昆工路光彩商业街99号