Jenkins - 持续集成工具Jenkins简介
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 英文官网
- HomePage:https://jenkins.io/
- Documentation:https://jenkins.io/doc/
- Developer:https://www.jenkins.io/doc/developer/
- Tutorials:https://jenkins.io/doc/tutorials/
- getting-started:https://jenkins.io/doc/pipeline/tour/getting-started/
- Wiki:https://wiki.jenkins.io/
2.2 中文官网
- 中文主页:https://jenkins.io/zh/
- 用户文档:https://jenkins.io/zh/doc/
- 入门指南:https://jenkins.io/zh/doc/pipeline/tour/getting-started/
- 教程:https://jenkins.io/zh/doc/tutorials/
- 用户手册:https://jenkins.io/zh/doc/book/
2.3 下载、镜像与包
- Download:https://jenkins.io/download/
- Mirrors:http://mirrors.jenkins.io/
- Package:https://pkg.jenkins.io/
- Plugins:https://plugins.jenkins.io/
Jenkins下载包的发布版本
- Weekly:每周发布,包含最新问题的修正和最新功能
- Long-term Support(LTS):从最近12周的发布版中选出的比较稳定的版本,适合保守的客户,提供更加稳定的功能
3 - 参考信息
- Jenkins中文网:http://www.jenkins.org.cn/
Jenkins2权威指南
行动是绝望的解药!
欢迎转载和引用,但请在明显处保留原文链接和原作者信息!
本博客内容多为个人工作与学习的记录,少数内容来自于网络并略有修改,已尽力标明原文链接和转载说明。如有冒犯,即刻删除!
以所舍,求所得,有所获,方所成。