基于Jenkins构建Devops

Jenkins主引擎+Jenkins众多插件+定制化功能开发+Git仓库+... = Devops

  关键字:CI/CD持续集成/持续交付/持续部署

 定制化功能开发:指企业集成jenkins后,进行的适合本企业的开发,比如集成账号管理,任务分发等功能

Jenkins主引擎

         Jenkins是一个用Java编写的开源的持续集成工具。在于Oracle发生争执后,项目从Hudson项目独立。官方网站:  Jenkins

         Jenkins提供了软件开发的持续集成服务。它运行在Servlet容器中(Tomcat)。它支持软件配置管理(SCM)工具(包括AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase和RTC),可以执行基于Apache Ant和Apache Maven的项目,以及任意的Shell脚本和Windows批量处理命令。Jenkins的主要开发者是川口耕介。Jenkins是在MIT许可证下发布的自由软件。

        Jenkins能实时监控持续集成过程中所有存在的问题,提供详细的日志文件和提醒功能,还能用图表的形式,形象地展示项目构建的趋势和稳定性。

Jenkins包含以下几个特点:

易安装:仅仅一个jenkins.war,从官网下载该文件后,直接运行,无需额外的安装,更无需安装数据库;
易配置:提供友好的GUI配置界面;
变更支持:Jenkins能从代码仓库(SVN/Git)中获取并产生代码更新列表,并输出到编辑输出信息中;
支持永久连接:用户是通过Web来访问Jenkins的,而这些Web页面的连接地址都是永久连接地址,可以在各种文档中直接使用该连接;
集成E-Mail/RSS/IM:当完成一次集成时,可以通过这些工具实时收集成结果(构建一次集成需要花费一定时间,有了这个功能,就可以在等待结果过程中,干点别的事情);
Junit/TestNG测试报告:也就是用以图表等形式提供详细的测试报表功能;
支持分布式构建:Jenkins可以把集成构建等工作分发到多台计算机中完成;
文件指纹信息:Jenkins会保存构建集成所产生的jars文件、集成构建使用了哪个版;
支持第三方插件:Jenkins支持第三方插件,这使得Jenkins功能变得越来越大。

持续集成是什么?CI

1:持续集成的概述:
      持续集成(英语:Continuous integration,缩写为CI),一种软件工程流程,将所有工程师对于软件的工作复本,每天集成数次到共用主线(mainline)上。

      这个名称最早由葛来迪·布区(Grady Booch)在他的布区方法中提出,但是他并没有提到要每天集成数次。之后成为极限编程(extreme programming,缩写为XP)的一部分。在测试驱动开发(TDD)的做法中,通常还会搭配自动单元测试。

      持续集成的提出,主要是为了解决软件进行系统集成时面临的各项问题,极限编程称这些问题为集成地狱(integration hell)。

 (注:开发人员写好代码,然后将代码放入代码仓库里面,代码仓库可以是Git,Gitlab和svn,CI服务器就是我们的Jenkins,他可以从我们的代码仓库里面拉去代码,拉去代码之后对代码进行build,也就是进行构建,构建完之后就进行测试,测试代码的一个可用状态,CI就是他部署,测试,反馈串起来。)

       持续集成主要是强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。简单来讲就是:频繁地(一天多次)将代码集成到主干,然后进行自动的服务器部署测试后,反馈结果给开发人员,进行后续调整工作。

2:持续集成的效益
及早发现集成错误且由于修订的内容较小所以易于追踪,这可以节省项目的时间与成本。
避免发布日期的前一分钟发生混乱,当每个人都会尝试为他们所造成的那一点点不兼容的版本做检查。
当单元测试失败或发生错误,若开发人员需要在不除错的情况下还原代码库到一个没有问题的状态,只需要放弃一小部分的更改(因为集成的次数频繁)。
让“最新”的程序可保持可用的状态供测试、展示或发布用。
频繁的提交代码会促使开发人员创建模块化,低复杂性的代码。
防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。

3:持续集成的作用
保证团队开发人员提交代码的质量,减轻了软件发布时的压力;
持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量。

4:持续集成的特点
是一个自动化的、周期性的集成测试过程,从检出代码、编译构建、运行测试、结果记录、测试统计等都是自动完成的,无需人工干预;
需要有专门的集成服务器来执行集成构建;
需要有代码托管工具支持;

持续交付是什么?CD


     持续交付(英语:Continuous delivery,缩写为CD),是一种软件工程手法,让软件产品的产生过程在一个短期内完成,以保证软件可以稳定、持续的保持在随时可以释出的状况。它的目标在于软件的建置、测试与释出变得更快以及更频繁。这种方式可以减少软件开发的成本与时间,减少风险。

 

(注:开发人员开发代码,提交代码,然后CI进行拉去代码,进行构建,测试,反馈,然后改代码,这都是在开发环境,为了看看代码是否在测试环境中正常运行,所以自动拉去到测试环境中,然后进行部署,这个部署偏向于手动。)

         持续交付是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的【类生产环境】(production-like environments)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的类生产Staging环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境production中。

 持续部署是什么?CD

      持续部署也与持续交付经常混淆,交付是手动部署,部署是自动部署。


      持续部署(英语:Continuous Deployment,缩写为CD),是持续交付的下一步,值的是代码通过评审以后,自动部署到生产环境。

     有时候,持续部署也与持续交付混淆。持续部署意味着所有的变更都会被自动部署production生产环境中。持续交付意味着所有的变更都可以被部署到产生环境中,但是出于业务考虑,可以选择不部署即手动控制。如果要实施持续部署,必须先实施持续交付。

 

   持续部署即在持续交付的基础上,把部署到产生环境的过程自动化。即从staging到production自动化。

Jenkins的插件

四个常用的插件:

Maven Integration

 添加此插件,就可以构建一个maven项目

例如:类似使用mvn package命令进行打包,mvn clean清理

 Publish over SSH 

添加此插件,就可以配置与远程服务器构建连接,实现文件传输,在远程服务器执行命令。
具体使用参考:jenkins 插件【Publish Over SSH】的使用说明_小明大强的博客-CSDN博客_jenkins over ssh

 Git Parameter

添加此插件,就可以在构建项目的时候自由地选择分支去构建。
具体使用参考:
Jenkins git 多分支选择 - 黒貓 - 博客园 

NodeJS Plugin

添加此插件,就可以使用nodejs打包编译一个node项目
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值