01、Jenkins简介

  构建企业自动化部署平台,可以大大的提升企业网站部署效率,企业生产环境每天需要更新各种系统,传统更网站的方法是使用Shell+Rsync实现网站代码备份、更新,更新完之后,运维人员手动发送邮件给测试人员、开发人员以及相关的业务人员,传统更新网站耗费大量的人力,同时偶尔由于误操作会出现细小问题。构建自动化部署平台变得迫在眉睫。

  本章向读者介绍传统网站部署方法、企业主流部署方法、Jenkins持续集成简介、持续集成平台构建、Jenkins插件部署、Jenkins自动化部署网站、Jenkins多实例及Ansible+Jenkins批量自动部署等。

1.1  传统网站部署的流程

  服务器网站部署是运维工程师的主要工作之一,传统运维网站部署主要靠手动部署,手工部署网站的流程大致分为:需求分析à原型设计à开发代码à提交测试à内网部署à确认上线à备份数据à外网更新à发布完毕à网站测试等,如果发现外网部署的代码有异常,需要及时回滚。

服务器部署基于YUM安装LAMP架构,并且部署Discuz,最终效果如图

通过SecureCRT登陆网站服务器,并将logo.png文件上传至网站目录,手动备份网站,并且更新网站的logo。

1.2 目前主流网站部署的流程

传统部署网站的方法对于单台或者几台服务器更新很容易,如果服务器规模超过百台或者千台,或者更新网站代码很频繁,手工更新就非常消耗时间成本。

基于主流的Hudson/Jenkins工具平台实现全自动网站部署、网站测试、网站回滚会大大的减轻网站部署的成本,Jenkins的前身为Hudson,hduson主要用于商业版,Jenkins为开源免费版。

Jenkins是一个可扩展的持续集成引擎、框架,是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。而且Jenkins平台的安装和配置非常的容易,使用也非常简单。构建Jenkins平台可以解放如下人员的双手

1、开发人员,对于开发人员来说,只需负责网站代码的编写,不需要手动再对源码进行编译、打包、单元测试等工作,开发人员之间将写好的代码分支存放在SVN、GIT仓库即可

2、运维人员,对于运维人员来说,使用Jenkins自动部署,可以减轻人工干预的错误率,同事解放运维人员繁杂的上传代码、手动备份、手动更新。

3、测试人员,对于测试人员来说,可以通过Jenkins进行代码测试、网站功能或者性能测试。

基于Jenkins自动部署网站的流程大致分为:需求分析-原型设计-开发代码-提交测试-Jenkins内网部署-确认上线-Jenkins备份数据-Jenkins外网发布-发布完毕-Jenkins网站测试等,如果发现外网部署的代码有异常,可通过Jenkins及时回滚,如图

 

 

1.3  Jenkins持续集成简介

持续集成(Continuous Integration,CI|CD)是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础,持续集成意义如下:

  • 持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量
  • 持续集成保障了每个时间点上团队成员提交的代码是能成功集成的。换言之,任何时间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能;
  • 持续集成还能利用软件本身的发展趋势,这点在需求不明确或是频繁性变更的情景中尤其重要,持续集成的质量能帮助团队进行有效决策,同时建立团队对产品的信心

 

1.4  Jenkins持续集成组件

 

自动构建过程JOB,JOB的功能主要是:获取svn、git源码、自动编译、自动打包、部署分发和自动测试等

源代码存储库,开发编写代码需上传至svn、git代码库中,供Jenkins来获取;

Jenkins持续集成服务器,用于部署Jenkins UI、存放JOB工程、各种插件、编译打包的数据等。

posted @ 2020-03-24 15:06  流氓徐志摩  阅读(427)  评论(0)    收藏  举报