zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Jenkins - 持续集成工具Jenkins简介

Jenkins集成工具 简介 持续
2023-09-14 09:00:40 时间

1 - Jenkins简介

Jenkins是一个开源项目,其前身为Hudson,旨在提供一个开放易用的持续集成工具,用于监控持续重复的工作。
主要用于自动而持续地构建/测试软件项目;监控外部调用执行的工作。
Jenkins是驱动整个持续交付和DevOps的核心组件,能够实现项目的自动构建、打包、测试、发布等。

  • 易于安装、易于配置、插件众多、具有分布式主从结构
  • 提供了不同类型、不同规模的项目的CI/CD解决方案
  • 版本迭代和维护速度快
  • 作为易用的CI系统,有助于开发者从繁杂的集成中解脱出来,专注更为重要的业务逻辑实现
  • 监控集成中存在的错误,提供详细的日志文件和提醒功能
  • 以图表的形式形象地展示项目构建的趋势和稳定性

1.1 Jenkins的用途

总的说来,使用Jenkins的流水线处理可以定义各种各样的操作(比如构建、测试等),并将这些操作像管道(pipe)一样自由地组合,从而自动、流畅地执行一系列处理。
不仅可以轻松地管理或执行构建、测试等单个工作,还能将这些工作连接起来批量执行,确保操作的安全性和准确性,减少操作负担,提高操作效率。

  • 可以将操作以项目(project)为单位整合到一起运行,更加简单地进行命令操作。
  • 消除了手工操作,是操作变得更加安全、可靠。
  • 可以将项目的运行记录和结果保存下来,以供整个团队查看。

具体说来,就是完成了如下操作:

  • 流水线列表 :显示每个流水线的总体状态
  • 构建项目:自动化打包,避免本地配置出错而导致打包失败等异常情况
  • 跑测试用例检测bug:自动化测试,例如:只要代码发生改动,就运行回归测试的所有用例
  • 静态代码检测:检测基本的代码问题,比如潜在的内存泄露等
  • 部署:随时部署,可以设定在打包完成之后的操作
  • GUI:支持在GUI上对命令的参数进行修改,并在改写后运行

1.2 与任务和配置管理工具的区别

如果服务规模不大,可以将流水线工具同时当成任务和配置管理工具来使用。
但在大规模服务情况下,Jenkins并不具备执行处理的节点从整体上进行管理的功能,无法对支持服务运行的所有节点进行集中管理。
流水线工具不擅长执行节点管理等批处理任务,应当将此类操作从构建流水线工具中分离出来。

1.3 Jenkins的部署

单节点(Master)部署

这种部署适用于大多数项目,其构建任务较轻,数量较少,单个节点就足以满足日常开发所需。

多节点(Master-Slave)部署

通常规模较大,代码提交频繁(意味着构建频繁),自动化测试压力较大的项目都会采取这种部署结构。
在这种部署结构下,Master通常只充当管理者的角色,负责任务的调度,slave节点的管理,任务状态的收集等工作,而具体的构建任务则会分配给slave节点。
一个Master节点理论上可以管理的slave节点数是没有上限的,但通常随着数量的增加,其性能以及稳定性就会有不同程度的下降,具体的影响则因Master硬件性能的高低而不同。
多节点(Master-Slave)部署通常以“Jenkins + Docker”的方式来部署,可以避免当测试用例变得海量以后可能会造成的一些问题。

1.4 Jenkins的插件

插件是为了适应组织或用户的需求,增强Jenkins环境的功能的主要手段。
有 上千的插件可以安装在Jenkins主机上,来集成不同的构建工具, 云提供程序, 分析工具等。
插件以及它们的依赖能够自动地从更新中心下载。
更新中心 是一个由Jenkins项目运营的服务,提供了一个开源插件的清单,这些插件是由Jenkins社区的成员共同开发和维护的。

Jenkins 提供了几个不同的的方法在主机上安装插件:

  • 在web UI使用 "插件管理器"。
  • 使用Jenkins CLI install-plugin 命令。
    最普遍的方式是 通过 Manage Jenkins > Manage Plugins (系统管理->管理插件)视图,选中相应插件,然后安装。
    参考信息:https://jenkins.io/zh/doc/book/managing/plugins/

2 - 官网信息

2.1 英文官网

2.2 中文官网

2.3 下载、镜像与包

Jenkins下载包的发布版本

  • Weekly:每周发布,包含最新问题的修正和最新功能
  • Long-term Support(LTS):从最近12周的发布版中选出的比较稳定的版本,适合保守的客户,提供更加稳定的功能

3 - 参考信息

Jenkins2权威指南