关于jenkins持续集成、目录结构、分布式架构原理及构建方面介绍

软件概述

Jenkins是一个基于MIT License协议的开源软件项目,是基于Java开发的一种持续集成(CI)工具,用于监控持续重复的工作,它可以集成各种插件完成持续编译、部署、测试,并将Job运行结果通过邮件发送给相关人员或者展示相关数据报告。

提到持续集成免不了谈及Hudson,Hudson是由 Sun Microsystems 开发的一个非常流行的开源的基于Java 的持续集成工具,后来Sun被Oracle收购,从Hudson 源代码的分支诞生了Jenkins。


重要概念

持续集成:是一个开发的实践过程,软件开发过程中往往需要开发人员定期集成代码到共享存储库(SVN/GIT/Maven等),集成时必须要做相关的构建以消除发现的问题。持续集成要求开发人员有频繁的构建,一般情况下每当一个代码提交时,构建应该被手动或自动触发。


Jenkins的目录结构

和CruiseControler一样,Jenkins需要一个目录来存储相关文件:JENKINS_HOME。默认为 ~/.jenkins。即为user的home目录下的一个隐藏目录。我们也可以更改JENKINS_HOME,指向我们希望的地方。

(注意因为是隐藏目录,所以需要使用ls -al 才能看到)

关于jenkins持续集成、目录结构、分布式架构原理及构建方面介绍

如果有权限管理,则在HOME目录下还会有users目录。

从目录结构来看,和CruiseController非常相似。其中config.xml是Jenkins重要的配置文件。我们都知道Jenkins用于monitor多个build,而jobs这个目录无疑就是存储每个build相关信息的地方。

总的来说,Jenkins目录结构非常直白,简洁。

Jenkins-分布式架构原理

分布式构建通常用来吸收额外的负载,例如通过动态添加额外的机器应对构建作业中的高峰期,或者在特定的操作系统或环境运行专门的构建作业。

例如:你可能需要在一个特定机器或者操作系统上运行特定的构建作业。

例如:如果你需要使用Internet Explorer运行Web测试,则需要使用Windows机器。

例如:你的构建作业之一可能消耗大量资源,并且需要在自己专用的机器上运行,而不影响你其他的构建作业。

构建服务器的需要随着时间的推移会波动。例如在产品发布周期,在周期快结束时可能需要运行更多的构建作业,比如更多的综合功能测试和回归测试套件可能会更加频繁。


Jenkins分布式构建架构

Jenkins使用主/从架构来管理分布式构建。

主节点:处理调度构建作业,把构建分发到从节点来进行实际执行,监视从节点,并且记录和发布构建产物。

从节点:按照被告知的工作,即主节点分派的构建作业。配置可分为如下三种情况:

  • 配置一个项目总是在特定的从节点运行
  • 在某个特定类型的从节点运行
  • 让Jenkins挑选下一个可用的从节点

一旦从节点实例运行,它就通过TCP/IP连接主实例进行通信。

Jenkins主/从策略

Jenkins可用通过很多不同的方式设置分不只构建,取决于操作系统和网络架构。

构建作业运行在从节点的方式及怎么被管理对于终端用户来说都是透明的:构建结果和构建产物最后总是会在主服务器上。


了解jenkins对我们去理解devops是很有帮助的,jenkins也是实现devops的一个很有效的工具,可以更好的帮助我们去实现代码一键构建。

后面会分享更多关于devops方面的内容,感兴趣的朋友可以关注下!!

关于jenkins持续集成、目录结构、分布式架构原理及构建方面介绍


分享到:


相關文章: