`
gaojingsong
  • 浏览: 1158391 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【持续集成知识介绍】

阅读更多

1、持续集成介绍

持续集成(Continuous integration)简称CI,是一种软件开发的实践,可以让团队在持续集成的基础上收到反馈并加以改进,不必等到开发的后期才寻找和修复缺陷。当然要明白的是持续集成环境的搭建也不是一劳永逸的,随着软件项目复杂度的增加,持续集成的环境同样要加以维护以确保集成环境的可靠性。

 

2、持续集成价值

减少风险

一天中进行多次的集成,并做了相应的测试,这样有利于检查缺陷,了解软件的健康状况,减少假定。

减少重复过程

减少重复的过程可以节省时间、费用和工作量。说起来简单,做起来难。这些浪费时间的重复劳动可能在我们的项目活动的任何一个环节发生,包括代码编译、数据库集成、测试、审查、部署及反馈。通过自动化的持续集成可以将这些重复的动作都变成自动化的,无需太多人工干预,让人们的时间更多的投入到动脑筋的、更高价值的事情上。

任何时间、任何地点生成可部署的软件

持续集成可以让您在任何时间发布可以部署的软件。从外界来看,这是持续集成最明显的好处,我们可以对改进软件品质和减少风险说起来滔滔不绝,但对于客户来说,可以部署的软件产品是最实际的资产。利用持续集成,您可以经常对源代码进行一些小改动,并将这些改动和其他的代码进行集成。如果出现问题,项目成员马上就会被通知到,问题会第一时间被修复。不采用持续集成的情况下,这些问题有可能到交付前的集成测试的时候才发现,有可能会导致延迟发布产品,而在急于修复这些缺陷的时候又有可能引入新的缺陷,最终可能导致项目失败。

增强项目的可见性

持续集成让我们能够注意到趋势并进行有效的决策。如果没有真实或最新的数据提供支持,项目就会遇到麻烦,每个人都会提出他最好的猜测。通常,项目成员通过手工收集这些信息,增加了负担,也很耗时。持续集成可以带来两点积极效果:

(1)有效决策:持续集成系统为项目构建状态和品质指标提供了及时的信息,有些持续集成系统可以报告功能完成度和缺陷率。

(2)注意到趋势:由于经常集成,我们可以看到一些趋势,如构建成功或失败、总体品质以及其它的项目信息。

建立团队对开发产品的信心

持续集成可以建立开发团队对开发产品的信心,因为他们清楚的知道每一次构建的结果,他们知道他们对软件的改动造成了哪些影响,结果怎么样。

 

 

 

3、持续集成要素

1.统一的代码库

2.自动构建

3.自动测试

4.每个人每天都要向代码库主干提交代码

5.每次代码递交后都会在持续集成服务器上触发一次构建

6.保证快速构建

7.模拟生产环境的自动测试

8.每个人都可以很容易的获取最新可执行的应用程序

9.每个人都清楚正在发生的状况

10.自动化的部署

 

 

4、持续集成的重要要素

1.统一的代码库。

2.CI服务器

3.自动化测试和构建的脚本

4.Slaves

持续集成的流程:CI服务器控制持续集成的整个过程,轮询代码库更新,根据预定义的脚本进行项目的构建,服务器将任务分配到Slave端。这就是整个持续集成的过程,我们需要根据我们的项目需求,制定好一个完善的持续集成方案,然后根据方案选择CI服务器和版本管理软件,我们的项目选择了Jenkins+Github的持续集成环境,这也是我要主要和大家讲述的。

 

 

 

5、持续集成原则

1. 所有的开发人员需要在本地机器上做本地构建,然后再提交的版本控制库中,从而确保他们的变更不会导致持续集成失败。

2. 开发人员每天至少向版本控制库中提交一次代码。

3. 开发人员每天至少需要从版本控制库中更新一次代码到本地机器。

4. 需要有专门的集成服务器来执行集成构建,每天要执行多次构建。

5. 每次构建都要100%通过。

6. 每次构建都可以生成可发布的产品。

7. 修复失败的构建是优先级最高的事情。

8. 测试是未来,未来是测试

 



 

 

 

6、为什么要选择Jenkins

Jenins是现在非常流行的持续集成CI服务器,这与它的前身Hudson也有着很大的关系,Jenkins易于安装,不需要数据库的支持,直接通过Web界面进行配置,而且集成了RSS/Email的通知机制,支持分布式构建,具有丰富的插件,这些都是Jenkins相比其他持续集成服务器的优势所在。

对于版本控制软件的选择要看项目需要了,可能是SVN也可能是Git,一般来说Jenkins都有提供插件支持,下面讲解一下Jenins+Github持续集成环境搭建的细节。

这个持续集成环境构建的主要流程就是Jenins会在后台运行,轮询版本控制的存储库,当发现版本库出现变更,就会通过预定义的构建脚本进行项目的构建,Jenkins会根据项目需求将构建的任务分配到Slave端。一般的项目构建过程主要分为自动化编译和自动化测试两个阶段,这同样是你脚本发挥作用的阶段。

 

Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的"自动化"编译、打包、分发部署。jenkins可以很好的支持各种语言(比如:java, c#, php等)的项目构建,也完全兼容ant、maven、gradle等多种第三方构建工具,同时跟svn、git能无缝集成,也支持直接与知名源代码托管网站,比如github、bitbucket直接集成。

,jenkins本身是用java语言开发的,所以安装jenkins的机器至少要有jdk,另外建议git、ant、maven、gradle、groovy等工具也一并安装好,方便与这些构建工具集成。

 

Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:

1、持续的软件版本发布/测试项目。

2、监控外部调用执行的工作。

 

 

7、Jenkins和Hudson的关系

Jenkins的前身是Hudson(Sun开发),2010年从Hudson分支出来。由于Sun被Oracle收购,后者声称拥有Hudson的商标所有权,前者被迫这样做的。分支出来的Jenkins将继续走open source道路,而Hudson可能会用于商业用途,二者都在继续开发中

  • 大小: 52.7 KB
0
1
分享到:
评论

相关推荐

    论文研究-综合集成与知识科学.pdf

    论文研究-综合集成与知识科学.pdf, ...接着介绍了国内外一些综合与集成方法 ,并介绍了作者根据近年来的研究而提出的综合集成知识系统 ,最后以可持续发展和宏观经济决策 2个案例来说明两者的结合 .

    持续集成工具Jenkins书籍(2本)目录知识点整理(思维导图加图).rar

    持续集成工具Jenkins书籍(2本)目录知识点整理(思维导图加图).rar 版本全程自动化测试需要借助持续集成工具来实现,根据如下Jenkins书籍(2本)整理: 2019年《Jenkins 2.x 实践指南》 2019年《Jenkins 2权威...

    半天搭建你的Jenkins持续集成与自动化部署系统

    其中以Jenkins介绍较多,微软也提供一套自动化部署的方式,也有一些其他持续集成工具可以实现自动化的发布,但最终还是选择了Jenkins。主要有以下几个原因:代码开源、插件丰富完善、系统稳定社区活跃,成功实践和...

    知识领域: DevOps 技术关键词: 自动化、持续集成、容器化 内容关键词: 部署流程、监控与日志、云计算

    知识领域: DevOps 技术关键词: 自动化、持续集成、容器化 内容关键词: 部署流程、监控与日志、云计算 用途: 学习将开发和运维流程整合并自动化的方法 资源描述: Docker 官方文档和教程

    DevOps的基本知识

    主要内容包括:DevOps的起源,从头开发阐述程序员的诞生、测试工程师、运维工程师的细分岗位,从最初的瀑布模型到敏捷开发模型的过度,并且引入持续集成、持续部署的概念,以及最终DevOps的诞生、如何落地等等,最后...

    知识领域: DevOps 技术关键词: 自动化、持续集成、容器化、云计算 内容关键词: 部署流程、监控与日志、代码质量

    技术关键词: 自动化、持续集成、容器化、云计算 内容关键词: 部署流程、监控与日志、代码质量 用途: 学习将开发和运维流程整合并自动化的方法 资源描述: GitHub 上有各种开源的 DevOps 工具和项目,例如 Jenkins、...

    知识领域: DevOps 技术关键词: 自动化部署、持续集成、容器化 内容关键词: 部署流程、监控与日志、云计算 用途: 实现快

    技术关键词: 自动化部署、持续集成、容器化 内容关键词: 部署流程、监控与日志、云计算 用途: 实现快速、可靠的软件交付和运维流程,提高开发效率 资源描述: "Docker官方文档"包含了Docker容器技术的详尽说明和实用...

    软考中级系统集成十大知识域.zip

    软考中级系统集成科目十大知识域

    Jenkins权威指南中文版pdf-带标签

    《Jenkins权威指南》中首先介绍Jenkins以及持续集成、持续交付的基础知识;然后安装Jenkins和配置Jenkins服务器,使用Jenkins建立构建作业、进行自动化测试,介绍Jenkins支持的几种安全模式,如何使用Jenkins进行...

    node项目持续集成.zip

    网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络与通信是一个非常广泛的领域,它涉及到计算机科学、电子工程、数学等多个学科的知识。 云计算与大数据:包括云计算平台、大数据分析、人工...

    企业实战持续集成-Jenkins视频教程(必备技能)

    企业实战持续集成-Jenkins视频教程(必备技能)软件版本:Jenkins?1.625? Linux零基础、初学者、中级运维、高级运维,让你轻松突破高薪20K+,通过本套实战课程的全程学习,能力跨越一个台阶,选择和努力决定薪资,向...

    Jenkins权威指南.pdf

    《Jenkins权威指南》中首先介绍Jenkins以及持续集成、持续交付的基础知识;然后安装Jenkins和配置Jenkins服务器,使用Jenkins建立构建作业、进行自动化测试,介绍Jenkins支持的几种安全模式,如何使用Jenkins进行...

    Jenkins权威指南

    《Jenkins权威指南》中首先介绍Jenkins以及持续集成、持续交付的基础知识;然后安装Jenkins和配置Jenkins服务器,使用Jenkins建立构建作业、进行自动化测试,介绍Jenkins支持的几种安全模式,如何使用Jenkins进行...

    Jenkins+Jmeter+Ant持续集成那些事

    通过了解性能测试,知道了jmeter框架以及其扩展知识,jmeter不仅是性能测试利器而且还可以用于接口测试,经过近几周的学习,了解了jmeter的相关知识。但是在使用过程中还是遇到了问题,就是脚本较多时一一执行比较...

    GitLab CICD(持续集成部署)

    GitLab CI/CD是一个内置在GitLab中的强大工具,它允许您将所有的持续方法(持续集成、交付和部署)应用到您的软件中,而不需要第三方应用程序或集成。 本课程主要讲解了以下内容: ?1. GitLab CICD 的介绍以及 GitLab ...

    39页智能云网OB域集成培训材料---电联场景.pptx

    智慧城市通过物联网基础设施、云计算基础设施、地理空间基础设施等新一代信息技术以及维基、社交网络、Fab Lab、Living Lab、综合集成法、网动全媒体融合通信终端等工具和方法的应用,实现全面透彻的感知、宽带泛在...

Global site tag (gtag.js) - Google Analytics