zoukankan      html  css  js  c++  java
  • Jenkins——为什么使用持续集成?


    一、开发模型

    1.瀑布开发模型:过程线性不可逆的开发模型

    优势:

      1)简单易懂
      2)当前阶段完成后只需要关注后续阶段
      3)为项目提供了按阶段划分的检查节点

    劣势:

      1)各个阶段的划分完全固定,阶段之间产生大量文档,增加工作量
      2)由于是线性开发模型,用户只有到开发末期才能见到开发成果,从而增加了开发风险。
      3)瀑布模型的突出缺点是不能适应用户需求的变化。

    二、敏捷开发模型

    1.概念

      1)迭代开发:将开发过程拆分成多个小周期,即一次“大开发”变成多次小开发。
      2)增量开发:一个开发周期后交付给用户一个可用产品,按照新增功能划分迭代。

    2.优点

      1)早期交付:降低开发风险成本,减轻资金压力。
      2)降低风险:及时了解市场需求,降低产品不适用的风险。

    三、持续集成

    持续集成的目的是让产品可以快速迭代,同时还能保持高质量。

    1.Jenkins的特征

      1)开源:Jenkins是一款基于Java语言的开发持续集成工具,支持持续集成,持续部署。
      2)易于安装部署配置:可通过yum安装,或下载war包通过docker容器等快速实现安装部署,方便web界面配置管理。
      3)消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过E-mail通知,生成JUnit/TestNG测试报告。
      4)分布式构建:支持Jenkins能够让多台计算机一起构建/测试
      5)文件识别:Jenkins能够跟踪那次构建生成哪些Jar,哪次构建使用哪个版本的Jar等。
      6)丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。


    2.持续集成的组成要素

      1)一个自动构建过程:检出代码、编译构建、运行测试、结果记录、测试统计等都是自动完成的,无需人工干预。
      2)一个代码储存库:即需要版本控制器来保证代码的可维护性,同时作为构建过程的素材库,一般使用SVN或Git
      3)一个持续集成服务器:Jenkins就是一个配置简单和使用方便的持续集成服务器。

    3.持续集成的好处

      1)降低风险:由于持续集成不断去构建、编译和测试,可以很早期发现问题,所以修复的代价就少。
      2)减少重复性工作:自动合并代码,自动化构建,编译,测试节省了大量重复工作。
      3)持续检查:对系统健康持续检查。减少发布风险和其带来的问题
      4)持续部署:持续提供可部署单元包,
      5)持续交付:持续交付可使用版本。


    4.持续集成流程

      1)提交
        流程的第一步,是开发者向代码仓库提交代码。所有的步骤始于本地代码的一次提交。
      2)测试(第一轮)
        代码仓库对commit操作配置了钩子,只要提交代码或者合并进主干就会自动进行测试。
      3)构建
        通过第一轮测试,代码就可以合并进主干,就算可以交付了。
        交付后,就先进行构建,再进行第二轮测试。构建指的是将源码转化为实际代码,
        比如安装依赖,配置各种资源(样式表、js脚本、图片)
      4)测试(第二轮)
        构建完成,就进行第二轮测试。如果第一轮已经涵盖了所有测试内容,第二轮可以省略,这时构建步骤也要移到第一轮测试前面。
      5)部署
        经过第二轮测试,当前代码就是一个可部署的版本,将这个版本的所有文件打包发到生产服务器上。就是部署
      6)回滚
        一旦当前版本发生问题就要回滚到上一个版本的构建结果。最简单的方法就是修改符号链接,指向上一个版本的目录。


    5.持续集成流程说明

      1)开发人员每天进行代码提交,提交到Git仓库
      2)Jenkins使用Git工具到Git仓库拉取代码到集成服务器,配合JDK、Maven等软件完成代码编译、测试与省察。测试,打包等工作,
            在这个过程中每一个步骤出错都要重新执行整个流程
      3)Jenkins将生成的jar或war包分发到测试环境或生产环境进行部署,测试人员或用户就能通过服务器访问应用。

    stay hungry,stay foolish 我最喜欢的翻译是 “长进取,永执着” 永远渴望创新,才是人类进步的驱动力
  • 相关阅读:
    System.BadImageFormatException: Could not load file or assembly
    MSSQL数据库索引的应用
    快递api网接口快递调用方法
    winform的扩展的带有截图功能picturebox
    免费api大全
    C#使用百度API通过IP获取地理位置和坐标
    用淘宝ip地址库查ip
    开源相关社区/项目一览(备查,欢迎补充)(转)
    .NET系列文章——近一年文章分类整理,方便各位博友们查询学习(转)
    设计模式--状态模式C++实现
  • 原文地址:https://www.cnblogs.com/ayu305/p/Jenkins_Basic.html
Copyright © 2011-2022 走看看