jenkins介绍ppt初稿_第1页
jenkins介绍ppt初稿_第2页
jenkins介绍ppt初稿_第3页
jenkins介绍ppt初稿_第4页
jenkins介绍ppt初稿_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流jenkins介绍ppt初稿.精品文档.持续集成Continuous integration简介(持续集成是什么).持续集成源于极限编程(XP),是一种软件实践,软件开发过程中集成步骤是一个漫长并且无法预测的过程。集成过程中可能会爆发大量的问题,因此集成过程需要尽可能小而多,实际上持续集成讲的是不断的去做软件的集成工作。持续集成作用(使用持续集成和不适用持续集成的区别)l 场景一、某项目最后做模块集成的时候,发现很多接口都不通,甚至有的模块连安装包都没有。l 场景二、没有可用的软件包,需要人手动去编译打包最新的代码。l 场景三、搭建测试环境的

2、时候需要手动去解压包然后一系列拷贝修改配置等等。l 场景四、团队成员或者teamleader想了解当前项目的状态,该如何去展示这些信息。持续集成就是用来解决以上问题,它的价值主要在于减少重复的步骤,降低项目的风险,任何时间任何地点生成可用的软件,增强项目的可见性等。持续集成实践(持续集成怎么做)持续集成,最简单的形式是包括一个监控版本控制系统(SVN等等)变化的工具。当变化被发觉时,这个工具可以自动的编译并测试你的应用。下面是持续集成中一些良好的实践l 维护一个单一的代码库l 使构建自动化l 使构建自测试l 每人每天都向主线提交代码l 每次提交都应在集成机上进行构建l 快速构建l 使任何人都能

3、轻易获得可执行文件l 人人都能看到正在发生什么l 自动化部署(上面是持续集成介绍,下面引出jenkins)jenkins简介持续集成是一种实践,而jenkins可以帮助团队去尽量好的去完成这种实践l Jenkins是基于java语言的开源持续集成工具,提供了一套非常易用的用户界面l jenkins类似于eclipse,基于插件化的架构,方便功能的扩展,目前有几百个现成插件可以使用,这些插件涵盖从版本控制、构建工具、代码质量、构建通知、集成外部系统、UI定制、游戏等等各个方面安装jenkinsjenkins默认提供了三种安装方式1.最简单的方式是通过java web的启动方式,访问2.下载可执行

4、的war包启动jenkins3.部署到tomcat中(推荐)一个最简单的jenkins应用在介绍该应用前,先提及两个非常重要的概念l job一个完整的构建可能需要很多步骤,每个步骤都称作是一个job。一个 job是一个专一做某事的步骤,比如编译,测试,打包,部署等等。jenkins中默认提供了四种不同类型的jobl Jenkins家目录jenkins为每个项目都会建立一个workspace目录,源码会下载到这个目录下,然后编译等动作都在该目录中进行。下面是一个jenkins的家目录结构jobs下面按照项目的维度进行划分,每个项目下有builds和workspace目录,其中源码会保存在各个项目

5、的workspace中,builds目录包含构建的历史记录。假设项目基于svn控制系统,并且有简单的编译打包脚本。该应用要实现的功能是检测到代码提交后触发构建动作,调用已有的编译打包脚本生成可用的软件包。(上面的配置步骤就不列出来了,想讲的话可以大概讲讲也可以截图)这个最简单的jenkins应用执行的原理是应用svn的插件,当有代码提交的时候被插件检测到,jenkins将源码下载到本地的workspace(包括编译打包脚本),此时jenkins调用本地项目源码中的编译打包脚本(在配置job的时候指定)。这就是最简单的一个流程,复杂的流水线构建都是基于此而完善的。触发构建的条件除了上面提到的提交

6、构建,能够触发构建的方式还有以下几种l 隔某段时间构建一次,比如隔一小时自动构建一次。l 定时轮询SCM的改变去触发构建,比如隔一小时去轮询一次svn是否有更改,有的话触发构建,否则不做处理。l 手动构建自动化测试Jenkins不仅仅能做源码编译打包的动作,Jenkins中有很多插件可以方便的实现自动化测试。l 单元测试l 功能测试l 集成测试l 性能测试l 验收测试进行自动化测试仅仅是一部分功能,关于测试结果的收集和展示jenkins也能够做到,并且是以图形化的方式展示出来。只需要告诉jenkins测试结果在哪里,它会自动去取,并生成可视化的图形。另外一种关于自动化测试的是代码的覆盖率,je

7、nkins同样支持对代码覆盖率的统计。上图中的自动化测试给出详细的失败列表通知持续集成讲究的是快速的发现问题,尽早的发现问题,因此当出现问题(编译失败,用例通过率不足等)时需要有通知的手段让相关的人员了解情况。Jenkins提供了丰富的通知插件,最常用的是Email通知,当然除此之外还有l 即时通讯软件l IRCl 桌面通知代码质量代码质量的度量同样也非常重要,比如圈复杂度,checkstyle,findbugs等等的静态检查。这些检查都可以使用jenkins的插件完成,jenkins负责收集质量结果,做图形展示,很方便开发人员根据质量结果进行代码重构。自动化部署自动化部署目的就是减少不必要的

8、时间。最简单的是自己实现部署的脚本然后供jenkins去调用,但是对于复杂的部署需求,自己实现脚本恐怕有些力不从心,我们可以借助插件完成Puppet或者Chef。对于数据库的自动化部署同样有插件供我们选择比如Liquibase。Jenkins的高级功能l 高级构建参数构建类似普通的构建任务,但是功能更强大。可以为本次构建指定一些参数,这些参数可能会在某几个构建中被使用到,参数的传递由jenkins去维护。由此一个普通的构建通过获取不同的参数能够表现的更多样化。更强大的是多配置构建,类似参数构建,提供一个配置列表,比如针对不同的数据库或者浏览器的列表,jenkins会自动的执行不同场景下的测试,

9、这些测试可以并行的执行,从而大大的减少了测试的时间。l 分布式构建jenkins也支持master/slave的分布式方式,master主要用来分发构建任务给slave,实际的执行在slave中。Master监控slave的状态,并收集展示构建的结果。但是在实际情况中master同样可以执行构建任务。可以通过master指定某个项目总是运行在特定的slave或者某类slave或者简单的任何一台slave中。分布式构建中,jenkins提供了对代理节点的监控,如果发现某台slave不可用,则会主动将其下线,避免后续的任务被分配到该节点上。l 流水线所谓的流水线很容易理解,就是整个构建流程按照一定

10、的流程去构建。当你的构建步骤变得复杂的时候,并且并行和串行都有的时候,通常就不太容易管理了。流水线能够方便的定义某个构建后要触发的下一个构建,或者同时触发的后面几个构建。当然也能够等待某几个构建执行完毕后去执行某一个构建。其中TheDependency Graph View插件能够帮助你分析构建任务之间的关系。并且如果涉及到构建的资源竞争,也提供了锁的功能。l jenkins安全管理jenkins中有多个维度来管理安全,一个是安全域,一个是授权。安全域能够识别出合法的用户,授权则是针对合法的用户给出不同的权限。最简单的授权是允许所有的合法用户做任何事情。最简单的管理用户账号的方式是使用jenk

11、ins内建的数据库,但是也能够和其他的用户管理系统做集成。针对授权有好多种不同的策略,比如基于项目,基于角色。另外一种重要的功能是审计,也就是记录用户的操作日志。有两种插件能够实现该功能。Audit Trail插件能够记录用户的操作动作。JobConfigHistory插件能够存储前一个版本系统的变化和job的配置文件。后面的内容是可选的,可以讲也可以不讲。总结:持续集成一般会经历一下几个阶段l 阶段一没有构建服务器最初的阶段,团队没有任何一种构建服务器。软件由开发人员手动的去构建,尽管使用的是Ant脚本或者类似的东西。源码可能存储在一个中央源码仓库中,但是开发者未必要定期的提交更改后的代码。

12、有时候在一个版本要发布的时候,开发人员手动的去集成这些变化,这是一个非常痛苦的过程。l 阶段二夜间的构建在这个阶段,团队有一台构建服务器,并且定时的去执行构建任务(通常在夜里)。因为并没有一个可靠的可重复的单元测试,所以这里的构建通常只是代码编译。如果有自动化测试,也并没有强制集成到构建阶段,也许根本不会正确的运行。但是现在开发人员已经能够有规律的定期提交代码了,至少在每天下班前。如果一个开发人员提交的代码和另外一个人有冲突,构建服务器会在第二天的早上将告警通过邮件发出来。然而,整个团队只是将构建服务器作为一个参考如果构建挂了,他们并没有意识去立即把它修复好,因此构建可能会在一段时间内不可用。

13、l 阶段三夜间构建和基本的自动化测试团队现在已经更加严格的使用持续集成和自动化测试了。构建服务器被配置为当有代码提交的时候便会执行构建,团队的成员也可以很方便的看到是哪些代码中的变化引起了构建,这些变化引发了什么问题。除此之外,构建脚本编译应用并且自动的执行一些单元和集成测试。对于邮件,构建服务器能够更加积极主动的去呈现构建中出现的问题。失败的构建也能够被快速的修复。l 阶段四进入度量自动化的代码质量和覆盖率度量也能够执行了,并且可以帮助评估代码的质量和测试的相关性和有效性。代码质量的构建也能够为应用生成API文档。所有的这些帮助团队去维护高质量的代码。团队中可以设置一个醒目的屏幕去时刻展现项

14、目的状态。l 阶段五更严格的测试持续集成的好处是非常接近立体的测试。现在,测试驱动开发(TDD)被广泛的应用,对于自动构建的结果更加的有信心。对于应用程序不再是简单的编译和测试,而是会继续更复杂的端到端测试和性能测试。l 阶段六自动化验收测试和自动化部署验收测试驱动开发(Acceptance-Test Driven Development)在这个阶段被应用,引导开发的工作并且提针对项目的状态提供一个高层次的报告。这些自动化测试使用行为驱动测试(Behavior-Driven Development)和验收测试驱动开发工具,并且从商业的角度生成开发人员不理解的报告。因为这些高层次的测试在项目的早期开展,因此能够清晰的指出,哪些特性已经完成了,哪些需要后面去完成。每当代码有改变或者夜里,应用程序被自动的部署到QA的测试环境来完成测试。当测试人员完成了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论