SVN与TortoiseSVN实战系列》已写完,今天新开一个《Jenkins自动化构建系列》,上周听了Bob Jiang老师的Agile1001公开课,一直想写个总结,这篇关于敏捷开发、自动化构建与持续集成的思考就作为开题篇吧。

敏捷是什么?

敏捷是一把伞,这把伞下边有XP、Scrum、FDD。。。,当然也包括自动化构建、持续集成,其实符合敏捷思想的开发方法、工具,如Jenkins都可以属于敏捷开发的范畴,上课时的PPT:

敏捷到底是什么?

其实关于敏捷的定义有很多,Bob Jiang的解释是:尽早地交付商业价值。

为什么需要敏捷开发?

敏捷之所以流行,是因为传统的瀑布式开发方式导致大项目的失败率很高(与小项目对比),而敏捷的解决思路是将大项目分解为小项目(也可以理解为阶段里程碑)来提高项目的成功率,尽早地、频繁地、持续的交付。

大项目与小项目成功率对比图:

为什么需要自动化构建?

传统的开发流程:

敏捷的开发流程:

由于敏捷的开发方式改变了传统的开发流程,需要持续频繁的对代码进行集成、构建、发布,所以就产生了自动化构建与持续集成的需求。

想想每次发布所需的工作:构建、交付准备环境、代码发布全由手工完成,同样还有运行测试、备份旧版本、新版本打标签以及许多其他重复的事情。

计算机就是用来解决重复性工作的,同一项工作重复3次以上就应该使用工具来解决。

Jenkins能解决什么?

Jenkins 是一个开源项目,提供了一种易于使用的自动化构建和持续集成系统。

软件构建自动化:配置完成后,Jenkins会依照预先制定的时间表,或者针对某一特定事件触发,对源代码编译构建;

可持续的自动化检查:Jenkins能持续地获取新增或修改后签入的源代码,并对这些代码使用预先设定的规则进行代码质量检查;

可持续的自动化测试:构建检查的扩展部分,构建后执行预先制定的一套测试规则,如项目中的单元测试、集成测试代码,并收集测试代码覆盖率、结果;

生成后后续过程的自动化:当自动化检查和测试成功完成,软件构建的周期中可能也需要一些额外的任务,诸如生成文档、打包软件、部署构件到一个运行环境或者软件仓库。

Jenkins是框架式的,大部分功能通过插件的方式来实现,可扩展性非常高。

手贱百度了下Jenkins的百度指数,大家看出点什么没?


记录,为更好的自己!

Jenkins自动化构建系列:01敏捷开发、自动化构建与持续集成的更多相关文章

  1. Android敏捷开发、CI(持续集成)探究

    比较老的几篇文章,依旧有学习价值 http://blog.csdn.net/baodinglaolang/article/details/9530695 http://blog.csdn.net/ba ...

  2. HUDSON(Java开发的一种持续集成工具)

    Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工作,包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作. Hudson的特性 1.易于 ...

  3. Jenkins敏捷开发 自动化构建工具

    一.序言 Jenkins 是一款自动化构建工具,能够基于 Maven 构建后端 Java 项目,也能够基于 nodejs 构建前端 vue 项目,并且有可视化 web 界面. 所谓自动化构建是按照一定 ...

  4. 基于Jenkins的开发测试全流程持续集成实践

    今年一直在公司实践CI,本文将近半年来的一些实践总结一下,可能不太完善或优美,但的确初步解决了我目前所在项目组的一些痛点.当然这仅是一家之言也不够完整,后续还会深入实践和引入Kubernetes进行容 ...

  5. 入门系列之在Ubuntu上安装Drone持续集成环境

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由小铁匠米兰的v 发表于云+社区专栏 介绍 Drone是一个流行的持续集成和交付平台.它集成了许多流行的版本控制存储库服务,如GitHu ...

  6. 【DevOps】团队敏捷开发系列--开山篇

    随着软件发布迭代的频率越来越高,传统的「瀑布型」(开发-测试-发布)模式已经不能满足快速交付的需求.2009 年左右 DevOps 应运而生,开发运维一体化,通过自动化工具与流程让整个软件开发构建.测 ...

  7. .NET持续集成与自动化部署之路第一篇——半天搭建你的Jenkins持续集成与自动化部署系统

    .NET持续集成与自动化部署之路第一篇(半天搭建你的Jenkins持续集成与自动化部署系统) 前言     相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛 ...

  8. .NET 半天搭建Jenkins持续集成与自动化部署系统

    前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛.由于我们所做的系统业务复杂,系统庞大,设计到多个系统之间的合作,而核心系统更是采用分布式系统架构,由 ...

  9. 接口自动化平台搭建(四),自动化项目Jenkins持续集成

    一.Jenkins的优点 1.传统网站部署流程   一般网站部署的流程 这边是完整流程而不是简化的流程 需求分析—原型设计—开发代码—内网部署-提交测试—确认上线—备份数据—外网更新-最终测试 ,如果 ...

随机推荐

  1. 《C++常见问题及解答》

    一.类 1. 常数据成员的初始化只能在构造函数的初始化列表中进行 2. 静态数据成员不可以在类内初始化 3. 创建一个对象时的构造函数的调用次序:对象成员的构造函数.对象自身的构造函数 4. 创建一个 ...

  2. TensorFlow高级API(tf.contrib.learn)及可视化工具TensorBoard的使用

    一.TensorFlow高层次机器学习API (tf.contrib.learn) 1.tf.contrib.learn.datasets.base.load_csv_with_header 加载cs ...

  3. Java中的线程的优先级

    Java 中线程优先级简介: 1. Java 提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程. 按照线程的优先级决定应该调度哪个线程来执行. 2. 线程的优先级用数字表示, 范围从 1 到 ...

  4. 3dContactPointAnnotationTool开发日志(二二)

      昨天是实现了显示GameObject子GameObject的选项卡功能,今天就是要让statusPanel可以控制它们的位置.旋转和缩放了.   没什么难的,对应选项卡绑定上对应的物体或子物体即可 ...

  5. WE团队团队汇总

    WE团队目录 一.博客汇总 团队展示 选题报告 二.文档汇总 选题报告

  6. PHPCMS登录后不是进入会员中心而是转入登录前页最新代码

    phpcms比如会员在登录前是停留在下载页面的,但是下载页面是要求会员登录后才能下载,所以会员就有这个登陆过程,但是一般的会员系统是登录进会员中心的,就会有点体验不好  这里教大家修改下 能达到登录后 ...

  7. Go语言【第十三篇】:Go语言递归函数

    Go语言递归函数 递归,就是在运行的过程中调用自己,语法格式如下: func recursion() { recursion() /* 函数调用自身 */ } func main() { recurs ...

  8. vue-cli项目打包出现空白页和路径错误问题

    vue-cli项目打包: 1. 命令行输入:npm  run  build 打包出来后项目中就会多了一个文件夹dist,这就是我们打包过后的项目. 第一个问题,文件引用路径.我们直接运行打包后的文件夹 ...

  9. 锁-lock,信号量4

    1. 全局解释器锁,保证同一时间只有一个线程在执行,但是由于它是把数据copy成了两份,所以 只有全局解释器锁的时候,数据加减照样出错了. 2.用户态的锁,保证同一时间,只有一个线程在真真正正地修改数 ...

  10. bzoj1588 [HNOI2002]营业额统计 (treap)

    平衡树裸题 只需要求前驱后驱 treap写法 const mm=<<; maxnumber=; maxn=; var left,right,fix,key:..maxn]of longin ...