一、开发模型

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包分发到测试环境或生产环境进行部署,测试人员或用户就能通过服务器访问应用。

Jenkins——为什么使用持续集成?的更多相关文章

  1. 基于 Jenkins 快速搭建持续集成环境

      什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火 ...

  2. jenkins + Git 搭建持续集成环境

    持续集成通过自动化构建.自动化测试以及自动化部署加上较高的集成频率保证了开发系统中的问题能迅速被发现和修复,降低了集成失败的风险,使得系统在开发中始终保持在一个稳定健康的集成状态.jenkins是目前 ...

  3. Jenkins+Gitlab搭建持续集成(CI)环境

    利用Jenkins+Gitlab搭建持续集成(CI)环境 Permalink: 2013-09-08 22:04:00 by hyhx2008in intern tags: jenkins gitla ...

  4. 基于 Jenkins 快速搭建持续集成环境--转

    源地址:http://www.ibm.com/developerworks/cn/java/j-lo-jenkins/ 持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础 ...

  5. Jenkins 快速搭建持续集成环境

    持续集成概述 什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域 ...

  6. Jenkins快速搭建持续集成

    基于Jenkins快速搭建持续集成环境 Jenkins+tortoisesvn+MSBuild做到持续集成 附Jenkins的使用:http://www.infoq.com/cn/articles/M ...

  7. 构建基于Jenkins + Github的持续集成环境

    搭建持续集成首先要了解什么是持续集成,带着明确的目标去搭建持续集成环境才能让我们少走很多弯路.持续集成(Continuous integration)简称CI,是一种软件开发的实践,可以让团队在持续集 ...

  8. Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(三):搭建jenkins集群环境

    写在前面 大家可以看到本文的配图,左边是jenkins单机环境,右边是jenkins集群.个中区别,不言而喻,形象生动. 前面我分别介绍了.net core 程序的多种部署方式(无绝对孰优孰劣): 1 ...

  9. Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(二):部署

    前面又是废话 我之前写过: Asp.Net Core 程序部署到Linux(centos)生产环境(一):普通部署 Asp.Net Core 程序部署到Linux(centos)生产环境(二):doc ...

  10. Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(一):Jenkins安装

    2019/1/31更新,经过我一段时间的使用 建议大家的jenkins还是不要使用docker方式安装 建议大家的jenkins还是不要使用docker方式安装 建议大家的jenkins还是不要使用d ...

随机推荐

  1. gin框架中HTTP请求和参数的解析

    1. 方法一: 通用的处理方法---Handle package main import ( "fmt" "github.com/gin-gonic/gin" ...

  2. golang中字符串-字节切片,字符串-字符切片的互转

    package main import ( "fmt" "reflect" ) func B2S(bs []uint8) string { // 将字节切片转换 ...

  3. CentOS升级polkit版本,解决 Linux Polkit 存在权限提升的漏洞 (CVE-2021-4034)

    漏洞描述 受影响版本的 pkexec 无法正确处理调用参数计数,最终尝试将环境变量作为命令执行,攻击者可以通过修改环境变量来利用此漏洞,诱使 pkexec 执行任意代码,从而导致将本地权限提升为 ro ...

  4. Fiddler初学笔记

    Fiddler简介 Fiddller官网: www.fiddler2.com Fiddler是客户端与服务器端的http代理,是目前最常用的http抓包工具之一. Fiddler能够监听客户端和服务器 ...

  5. JavaScript之Promise实现原理(手写简易版本 MPromise)

    手写 Promise 实现 Promise的基本使用 Promise定义及用法详情文档:Promise MAD文档 function testPromise(param) { return new P ...

  6. Linux 配置 dubbo 和 dubbo的简单介绍。

    一.是么是  dubbo? 一.dubbo? 1.因为项目之间需要相互调用,达到某种预期的结果 1.1 restful? 门户网站必须要知道用户的登录状态,但是用户的登录状态在登录项目中,所以门户网站 ...

  7. Caffeine缓存 最快缓存 内存缓存

    一.序言 Caffeine是一个进程内部缓存框架. 对比Guava Cache Caffeine是在Guava Cache的基础上做一层封装,性能有明显提高,二者同属于内存级本地缓存.使用Caffei ...

  8. ApacheCN 数据科学译文集 20211109 更新ApacheCN 数据科学译文集 20211109 更新

    计算与推断思维 一.数据科学 二.因果和实验 三.Python 编程 四.数据类型 五.表格 六.可视化 七.函数和表格 八.随机性 九.经验分布 十.假设检验 十一.估计 十二.为什么均值重要 十三 ...

  9. webpack搭建react+ts+eslint项目

    [初始化项目] mkdir react_ts_eslint cd react_ts_eslint npm init [生成ts配置文件] tsc --init [安装相关依赖] npm install ...

  10. [源码解析] 模型并行分布式训练 Megatron (3) ---模型并行实现

    [源码解析] 模型并行分布式训练 Megatron (3) ---模型并行实现 目录 [源码解析] 模型并行分布式训练 Megatron (3) ---模型并行实现 0x00 摘要 0x01 并行Tr ...