✅ Jenkins 简介
Jenkins 是一个开源的自动化服务器,主要用于实现 持续集成(CI) 和 持续交付(CD) 。它帮助开发团队自动构建、测试、部署代码,提高开发效率、减少人为错误。
🔧 核心功能
| 功能模块 | 描述 |
|---|
| 💡 持续集成(CI) | 自动检测代码变更,自动构建和测试项目 |
| 🚀 持续交付(CD) | 自动将构建结果部署到测试或生产环境 |
| 🔁 流水线(Pipeline) | 支持声明式或脚本式流水线定义,复杂流程可视化 |
| 🔌 插件系统 | 拥有丰富插件库,支持 Git、Maven、Docker、Kubernetes 等 |
| 👥 多用户协作 | 支持权限控制与用户管理 |
| 📦 支持多语言构建 | Java、Python、Node.js、.NET 等主流语言均可使用 |
🏗️ 架构组成
- Jenkins Master:主节点,负责调度构建任务、分发任务、监控执行状态;
- Jenkins Agent(Slave) :工作节点,执行实际构建工作(支持分布式);
- 插件系统:实现构建工具、SCM、通知、部署等功能扩展。
📌 使用场景
- 自动化构建 Java/Python/Node.js 项目
- 自动化部署到测试/生产服务器(Docker/K8s)
- 与 Git(GitHub、GitLab)联动,触发构建
- 每日构建、定时构建、回归测试自动化
- 提交即测试、测试即部署
🧩 常用插件
| 插件名称 | 用途 |
|---|
| Git Plugin | 拉取 Git 仓库代码 |
| Pipeline Plugin | 编写流水线脚本 |
| Docker Plugin | 在容器中构建和部署 |
| Email Extension | 构建通知邮件发送 |
| Blue Ocean | 可视化流水线 UI |
| Credentials Plugin | 安全管理用户名、密码、密钥等 |
📦 Jenkins 与 CI/CD 工具对比
| 工具 | 特点 |
|---|
| Jenkins | 插件丰富、社区活跃、灵活性强 |
| GitLab CI | 集成于 GitLab,配置简单 |
| GitHub Actions | 与 GitHub 集成紧密,适合开源项目 |
| CircleCI | 云端友好、易于上手 |
✅ 总结
Jenkins 是构建自动化流程的利器,适用于中大型团队的 DevOps 实践。通过配置流水线脚本与插件扩展,可以实现从代码提交到自动部署的全链路自动化。