转载注明出处,欢迎关注微信小程序小白AI博客 微信公众号小白AI或者网站 https://xiaobaiai.net

文章目录

  • 1 什么是持续集成?
  • 2 什么是Jenkin?
  • 3 Jenkin历史
  • 4 为什么选择Jenkins做持续集成服务器?
  • 5 持续集成的实际案例研究
  • 6 Jenkins插件
  • 7 使用Jenkins的优点
  • 8 使用Jenkins的缺点
  • 9 总结
  • 10 参考链接

1 什么是持续集成?

持续集成(Continuous Integration)即是发生在每一次的代码提交后,立即开始软件的构建(Build)和测试(Test),在一个拥有许多开发人员的大型项目中,一天中会多次提交,伴随着每个提交代码的构建和测试,如果测试通过,则测试构建以进行部署。如果部署成功,则代码将推送到生产环境。提交(commit),构建(build),测试(test)和部署(deploy)是一个连续的过程,因此称为持续集成/部署。

持续集成流水线是一种功能强大的工具,由一组用于托管,监控,编译和测试代码或监控代码更改的工具组成,比如:

  • 持续集成服务器有:Jenkins, Bamboo, CruiseControl, TeamCity等等
  • 源码版本控制工具:GIT,CVS, SVN, Mercurial, Perforce, ClearCase等等
  • 编译构建工具:Make, CMake, ANT, Maven, Ivy, Gradle等等
  • 自动测试框架:Selenium, Appium, TestComplete, UFT等等

在本文中,你将学会:

  • 什么是持续集成?
  • 什么是Jenkin?
  • Jenkin历史
  • 为什么选择Jenkins做持续集成服务器?
  • 持续集成的实际案例研究
  • 使用Jenkins的优点
  • 使用Jenkins的缺点

2 什么是Jenkin?

Jenkins是一个开源的持续集成服务器,能够编排一系列操作,用自动化方式帮助你实现持续集成过程。Jenkins完全用Java编写。Jenkins是世界上广泛使用的应用程序,安装量约为300k,并且日益增长。它是一个基于Web服务器的应用程序,需要像Apache Tomcat这样的Web服务器。Jenkins变得如此受欢迎的原因在于它监督项目开发过程中出现的重复任务。例如,如果你的团队正在开发项目,Jenkins将不断测试你的项目,并在开发的早期阶段向你显示相关错误。

通过使用Jenkins,软件公司可以加速他们的软件开发过程,因为Jenkins可以快速自动化构建和测试。Jenkins通过构建,测试,文档化软件,部署和软件开发生命周期的其他阶段来支持软件的完整开发生命周期。

3 Jenkin历史

  • Kohsuke Kawaguchi, 一个Java开发者,在SUN Microsystems工作,厌倦了重复构建代码和修复错误。2004年,创建了一个名为Hudson的自动化服务器,可自动构建和测试开发任务。
  • 2011年,拥有Sun Microsystems的Oracle与Hudson开源社区存在争议,因此分叉的Hudson将其重命名为Jenkins。
  • Hudson和Jenkins都继续独立运作。但是在短时间内,Jenkins得到了了很多项目的应用并有大量开源贡献者共享代码,而Hudson只剩下32个应用项目。随着时间的推移,Jenkins变得更受欢迎,而Hudson则不再受到维护。

4 为什么选择Jenkins做持续集成服务器?

有些人可能会认为开发软件的老式方法是更好的方法。让我们通过以下示例了解CI与Jenkins的优势。

让我们想象一下,大约有10个开发人员在共享存储仓库上工作。一些开发人员在25天内完成任务,而其他人则需要30天才能完成任务。

不使用Jenkins 使用Jenkins后
一旦所有开发人员完成了他们分配的编码任务,他们就会同时提交他们的代码。稍后,将进行测试和部署。 代码提交已建立,测试周期非常罕见,并且在多天后完成了单个构建 一旦Developer提交代码,代码就会构建并测试。Jenkin将在白天多次构建和测试代码;如果构建成功,则Jenkins会将源代码部署到测试服务器并通知部署团队;如果构建失败,那么Jenkins会将错误通知给开发人员团队。
由于代码是一次性构建的,一些开发人员需要等到其他开发人员完成编码才能检查他们的构建 代码是在任何Developer提交后立即构建的。
隔离,检测和修复多次提交的错误并不是一件容易的事情。 由于代码是在每次提交单个开发人员之后构建的,因此很容易检测到哪些代码导致构建失败
代码构建和测试过程完全是手动的,因此存在很多失败的可能性。 自动构建和测试过程可节省时间并减少缺陷。
修复并测试所有错误后,才能部署代码。 每次成功构建和测试后都会部署代码。
开发周期缓慢 开发周期很快。

用户可以更轻松地使用新功能。
增加利润。

5 持续集成的实际案例研究

我相信大家都知道诺基亚的旧手机。诺基亚曾经实施过称为夜间构建的程序。在白天多次提交多个开发人员后,每晚都会构建软件。由于该软件仅在一天内构建一次,因此在大型代码库中隔离,发现和修复错误是一件非常大的难事。

后来,他们采用了持续集成方法,一旦开发人员提交了代码,就会构建并测试该软件,如果检测到任何错误,相应的开发人员可以快速修复缺陷。

6 Jenkins插件

默认情况下,Jenkins提供一组有限的功能。如果你想在Jenkins中安装Git等版本控制工具集成,那么就需要安装与Git相关的插件。实际上,为了集成Maven,Amazon EC2等工具,你也需要在Jenkins中安装相应的插件。

7 使用Jenkins的优点

  • Jenkins由社区管理,非常开放。每个月,他们都会举行公开会议并接受公众的意见,以促进Jenkins项目的发展。
  • 到目前为止,Github上大约有4000多个issues被关闭,500多个贡献者,10000+star,该项目每3个月发布一次稳定版本,每个月都会有小版本发布
  • 随着技术的发展, Jenkins也是如此。到目前为止,Jenkins在其插件数据库中发布了大约超过1000个插件。借助插件,Jenkins变得更加强大,功能丰富。
  • Jenkins还支持基于云的架构,因此你可以在基于云的平台中部署Jenkins
  • Jenkins之所以流行,是因为它是由开发人员为开发人员创建的。

8 使用Jenkins的缺点

尽管Jenkins是一个非常强大的工具,但是它也有它的缺陷:

  • 与当前的前端UI趋势相比,它的界面过时且不便于用户使用
  • 尽管Jenkins受到许多开发人员的喜爱,但维护它并不容易,因为Jenkins在服务器上运行并需要一些技能作为服务器管理员来监控其活动
  • 许多人没有实现Jenkins的原因之一是由于难以安装和配置Jenkins
  • 由于一些小的设置变化,连续集成会定期中断。持续集成将暂停,因此需要一些开发人员的注意

9 总结

  • 在持续集成中,代码提交后,软件即刻构建和测试
  • Jenkins是一个开源的持续集成服务器,能够协调一系列操作
  • 在没有Jenkins之前,当所有开发人员完成他们分配的编码任务时,他们过去常常同时提交他们的代码,然后才进行测试和部署。
  • 在使用Jenkins之后,代码构建并在开发者提交代码后立即进行测试。Jenkin将在白天多次构建和测试代码
  • 默认情况下,Jenkins提供一组有限的功能。如果你想将Jenkins安装与Git等版本控制工具集成,那么你需要安装与Git相关的插件
  • Jenkins最大的优点是它由社区管理,该社区举行公开会议并接受公众对Jenkins项目开发的意见
  • Jenkin的最大特点是它的界面已经过时,与当前的UI趋势相比不是用户友好的

10 参考链接

  • https://jenkins.io/zh/
  • https://github.com/jenkinsci/jenkins

3天学会Jenkins_1_Jenkin与CI(Continuous Integration,持续集成)?相关推荐

  1. CI/CD(持续集成构建/持续交付):如何测试/集成/交付项目代码?(Jenkins,TravisCI)

    Table of Contents CI(Continuous integration,持续集成) CD(Continuous Delivery, 持续交付) Different types of t ...

  2. 持续集成与持续部署(三)——实现持续集成的效率工具对比之Jenkins、Travis CI、Circle CI和其他持续集成工具

    持续集成与持续部署(三)--实现持续集成的效率工具对比之Jenkins.Travis CI.Circle CI和其他持续集成工具 效率工具对比 点击查看效率工具 1. Jenkins Jenkins, ...

  3. 基于K8s的CI/CD自动化持续集成部署框架

    文章目录 什么是CI/CD? 1 环境准备 2 组件部署 2.1 jenkins快速部署 2.2 gitlab快速部署 2.3 harbor快速部署 3 CI/CD交付 什么是CI/CD? CI/CD ...

  4. CI服务器-Hudson持续集成服务器的安装配置与使用

    第一章 Hudson持续集成服务器的安装配置 IP:192.168.4.221  8G内存(Hudson多个工程在同时构建的情况下比较耗内存)  环境:CentOS 6.6.JDK7  Hudson不 ...

  5. 【云原生】DevOps(三):CI、CD持续集成|交付|部署

    本文目录: 一. 持续集成 二. 持续交付.部署 `[系列好文推荐]` 前言:

  6. 持续集成、持续交付(CI/CD)开篇,先来唠唠嗑

    前言 现在稍微有点规模的系统,很多都是采用分布式/微服务架构,将一个大系统拆分为很多个功能模块进行开发.测试.发布.管理等,如果全部流程都采用人工的形式进行的话,效率肯定是超级不高效滴.而且现在很多项 ...

  7. CI/CD是什么?如何理解持续集成、持续交付和持续部署

    CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法.CI/CD 的核心概念是持续集成.持续交付和持续部署.作为一个面向开发和运营团队的解决方案,CI/CD 主要针对在集成新代码时 ...

  8. 什么是 CI 持续集成

    现在做测试,经常听到一个概念 持续集成 CI Continuous Integration. 那什么是持续集成呢?相信大家看了不少文章之后依然是一脸懵逼. 这里呢,用我自己的理解谈一下,不正确的地方还 ...

  9. 测试开发必会:正确理解持续集成和持续交付 CI/CD

    正确理解并掌握持续集成和持续交付(CI/CD)是当下测试和质量保障相关同学的必备技能.本文作者为霍格沃兹测试学院特邀嘉宾,资深技术专家蒋刚毅,原文首发 TesterHome 社区,标题为<持续交 ...

最新文章

  1. linux互斥锁和条件变量,如何理解互斥锁和条件变量?
  2. linux 下的lamp的简单安装
  3. (0047)iOS开发之nil/Nil/NULL的区别
  4. spring30: 事务
  5. java笔记4-类型转换
  6. OpenYurt 单元化部署新增 Patch 特性
  7. dlopen dlsym dlclose加载动态链接库
  8. 查看深信服上网管理版本号和登陆流程
  9. 雷林鹏分享:MySQL ALTER命令
  10. 奶粉中的php是什么,婴儿配方奶粉的分类及用途
  11. 浙大python判断两个字符串是否为变位词_算法2----------变位词
  12. ES6的promise对象应该这样用
  13. 2017行进中的杂想,做一个极少数的历史
  14. Linux终端控制台console和earlycon分析
  15. Maven项目中父子项目互相找不到的解决方法
  16. 你只管打开这个视频,剩下的交给「卧槽」
  17. 服务器配置Token验证失败
  18. python有道云笔记_Python自动同步有道云笔记到Hexo
  19. CSDN博客如何更换皮肤
  20. Pandas DataFrame切片器的基本操作及应用

热门文章

  1. 肩部三角肌锻炼方法大全
  2. 卫龙招股书再“失效”:上市二次遇挫,业绩增长迅猛,新增低俗标签?
  3. python资料全集
  4. Java API 1.8 中文版 免费下载
  5. 无人机光流模块的选择
  6. 魔兽世界燃烧的远征最新服务器,6月2日加入“燃烧的远征” 立刻了解《魔兽世界》经典怀旧服的服务器抉择...
  7. 关于微信公号自定义菜单链接,跳转到历史消息界面URL
  8. GBase 8a mpp 在线节点替换功能
  9. 神经网络中的网络优化和正则化(二)之参数初始化/数据预处理/逐层归一化
  10. Keil安装stm库文件方法及下载地址