新闻详情

新闻详情

首页 / 资讯中心 / 详情

90DaysOfDevOps 第 71 天:什么是 Jenkins?CI 服务器原理与架构拆解

发布时间:2026/10/1 9:50:32来源:尧图网络
90DaysOfDevOps 第 71 天:什么是 Jenkins?CI 服务器原理与架构拆解
文档/教程【免费下载链接】90DaysOfDevOpsThis repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things DevOps, including Principles, Processes, Tooling and Use Cases surrounding this vast topic.项目地址https://gitcode.com/gh_mirrors/90/90DaysOfDevOps点击查看免费下载导读本文是 90DaysOfDevOps 学习路线图中 CI/CD 阶段的开篇Day 71围绕「什么是 Jenkins」这一核心问题展开。文章先厘清持续集成Continuous Integration的两种落地模式——夜间构建与持续开发再对比 TravisCI、Bamboo、Buildbot、Apache Gump 等同类 CI 工具的定位随后深入 Jenkins 的核心特性、Pipeline 概念、Master/Slave 架构并结合仓库中 CICD/Jenkins 目录下的真实 YAML 配置与 Jenkinsfile给出从源码与配置层面理解 Jenkins 的完整路径。读完本文你将能解释 Jenkins 为何在 CI 工具中占据主流地位理解其构建-测试-部署流水线的执行闭环并为后续在 Kubernetes 中亲手部署 JenkinsDay 72 起建立知识基础。从「什么是 Jenkins」说起Jenkins 是一个持续集成Continuous IntegrationCI工具它让新编写的代码能够持续地完成开发、测试与部署。在 90DaysOfDevOps 的路线图里它属于 CI/CD 章节中承上启下的关键角色前面几周我们已经用 Git 管理代码、用 Terraform/Ansible 管理基础设施而 Jenkins 正是把「代码变更 → 自动化验证 → 交付部署」这条链路串起来的调度中枢。在本仓库中与本文主题对应的配套代码位于 2022/Days/CICD/Jenkins包括用于 Kubernetes 部署的命名空间、持久卷、服务账号等 YAML 文件以及 Pipeline/Jenkinsfile 这样的流水线定义它们是理解 Jenkins 实际工作方式的极佳素材。两种集成模式夜间构建 vs 持续开发要让代码库保持健康本质上只有两条路可选Jenkins 的出现正是为了解决第二条路的自动化问题。模式一夜间构建Nightly Builds这是传统意义上「较老」的代码集成方式开发者在白天各自开发自己的任务到当天结束时把变更统一推送到源代码仓库到了夜间CI 系统运行单元测试并构建软件第二天早上团队再根据结果修复问题。模式二持续开发Continuous Development这是更被推崇的方式开发者仍然随时向源代码仓库提交变更但每一次代码提交完成之后构建过程会立刻被触发而不是等到夜里。仓库配套流程图Day71_CICD2.png展示的就是这种「提交即构建」的形态。这两种模式的意义在于当开发团队分布在全球各地时我们不需要为「每天何时停止提交代码」设定一个固定时间。Jenkins 正是扮演那个 CI Server 的角色负责控制这些测试与构建过程。同类 CI 工具对照Jenkins 为什么主流Day 71 文档也列举了几个值得后续研究的同类工具理解它们的定位有助于解释「为什么 Jenkins 被普遍认为最流行」工具定位与特点TravisCI托管的分布式持续集成服务用于构建和测试托管在 GitHub 上的软件项目Bamboo支持并行运行多个构建以加快编译内置连接代码仓库的功能内置 Ant、Maven 构建任务Buildbot用 Python 编写的开源框架用于自动化软件的构建、测试与发布流程支持跨多平台的分布式、并行任务执行Apache Gump面向 Java 项目的专用工具设计为每夜构建并测试 Java 项目确保所有项目在 API 与功能层面相互兼容而 Jenkins 本身同样开源是用 Java 编写的自动化服务器automation server它通过持续集成来自动化软件开发过程并支持持续交付Continuous Delivery。注意文档中提到「看到 Jenkins 作为整体上最流行的 CI 工具」是作者的个人观察与判断属于经验性陈述而非精确的量化结论此处仅转述原文档的观点不作额外的排名或数据断言。Jenkins 的核心特性Jenkins 的特性覆盖很广Day 71 文档归纳为五点每一点的背后都有对应的工程含义易于安装Easy InstallationJenkins 是一个自包含self-contained的基于 Java 的程序为 Windows、macOS 和 Linux 提供现成的安装包开箱即用。易于配置Easy Configuration通过 Web 界面即可完成设置与配置界面内置错误检查与帮助文档降低上手门槛。插件Plug-insUpdate Centre 提供了大量插件可与 CI/CD 工具链中的许多工具集成。仓库的 jenkins-values.yml 就是一个典型例子它通过controller.installPlugins声明了 Kubernetes、workflow-aggregator、git、configuration-as-code 等插件及其版本installPlugins: - kubernetes:1.31.3 - workflow-aggregator:2.6 - git:4.10.2 - configuration-as-code:1.55.1可扩展Extensible除了现成插件Jenkins 的插件架构本身提供了近乎无限的扩展可能性这是它能覆盖海量使用场景的根本原因。分布式DistributedJenkins 可以轻松地将工作分发到多台机器上执行从而加速跨多平台的构建、测试与部署。Jenkins Pipeline把流程自动化Day 71 文档提到的 Pipeline 概念在仓库配套的 Pipeline 目录 中有非常具体的呈现。整体流程是你向 Jenkins 提交代码Jenkins 构建出应用、运行全部自动化测试当每个步骤完成后发布并部署代码——Jenkins 正是让这个流程自动化的引擎。在仓库中Pipeline/Jenkinsfile 展示了一个使用 Kubernetes 动态 Agent 的真实流水线它通过podTemplate定义了一个包含maven:3.8.1-jdk-8与 kaniko 两个容器的 Pod然后按「Clone Repository → Build Image → Test Image」的阶段依次执行其中 kaniko 容器负责真正地把应用构建为容器镜像/kaniko/executor --context \pwd --destination ...。这正体现了 Jenkins Pipeline 的典型形态流水线即代码Pipeline as Code。Jenkins 架构从 CI 闭环到 Master/Slave安装与部署的多种可能Jenkins 可以安装在多种操作系统上Windows、Linux、macOS也支持以 Docker 容器方式部署以及部署进 Kubernetes。本文后续路线会在 minikube 集群中安装 Jenkins 来模拟 Kubernetes 部署场景。仓库中 CICD/Jenkins 目录下的 YAML 文件正是为这一目标准备的。CI 流水线的完整闭环Day 71 文档用七步拆解了 Jenkins 驱动的持续集成闭环仓库中的流程图Day71_CICD5.png与这一描述完全对应Step 1开发者将变更提交到源代码仓库。Step 2Jenkins 按固定间隔检查仓库拉取任何新代码。Step 3构建服务器把代码构建为可执行产物——示例中使用 Maven 作为广为人知的构建服务器。Step 4如果构建失败反馈被送回开发者。Step 5Jenkins 将构建好的应用部署到测试服务器——示例中使用 Selenium 作为测试服务器。Step 6如果测试失败反馈被传递给开发者。Step 7如果测试全部成功就可以发布到生产环境。这个循环是持续不断的正是它让应用可以在「分钟级」而非「小时、天、月、年」内完成更新。Master/Slave 与企业版Jenkins 架构中还有更多的内容它具备 master-slave 能力master 可以把任务分发到 slave Jenkins 环境执行。仓库 jenkins-values.yml 中的agent配置块正是对这套分布式能力的具体化——它定义了 Jenkins 的 inbound agent 镜像jenkins/inbound-agent、agent 命名空间、资源请求/限制、podRetention: Never构建完成后即回收 agent Pod等参数并允许通过podTemplates为默认 Kubernetes cloud 自定义 Pod 模板。另外作为开源项目很多企业需要商业支持CloudBees 就是 Jenkins 的企业版本为付费企业客户提供支持与更多功能。Day 71 文档以博世Bosch作为企业级落地案例的示例。下一步从理解走向动手Day 71 的核心是建立「Jenkins 是什么、为什么、怎么工作」的概念框架。Day 72 将进入动手环节用 Helm 在 minikube 上真正部署 Jenkins、创建第一个 Pipeline。你可以提前浏览 steps.md 了解部署步骤概览并对照 jenkins-namespace.yml、jenkins-volume.yml、jenkins-sa.yml 三个清单理解命名空间、持久化与 RBAC 权限三个关键设计。参考资源仓库中的完整部署步骤 steps.mdHelm values 详解jenkins-values.yml流水线示例Jenkinsfile持续集成概念可结合本仓库 CI/CD 章节的其他文档与 2022/Days/CICD 目录配套阅读。继续学习请进入 Day 72上手 Jenkins。赞分享文档/教程【免费下载链接】90DaysOfDevOpsThis repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things DevOps, including Principles, Processes, Tooling and Use Cases surrounding this vast topic.项目地址https://gitcode.com/gh_mirrors/90/90DaysOfDevOps点击查看免费下载相关推荐Mooncake架构设计原理为什么KVCache中心化是LLM服务的未来Mooncake架构设计原理为什么KVCache中心化是LLM服务的未来 Mooncake作为专为LLM推理场景设计的高性能分布式键值KV Cache存储引擎人工智能大模型模型推理服务后端90DaysOfDevOps 第 66 天Ansible Playbooks 进阶——任务与处理器拆分、Roles 与 Ansible Galaxy 实战90DaysOfDevOps 第 66 天Ansible Playbooks 进阶——任务与处理器拆分、Roles 与 Ansible Galaxy 实战 本文档/教程90DaysOfDevOps 第 35 天Git 版本控制全景图——从为什么到第一个 Commit90DaysOfDevOps 第 35 天Git 版本控制全景图——从为什么到第一个 Commit 在进入 Git 的具体命令之前先回答两个根本问题什么是文档/教程上一篇NocoBase 模板打印插件实战指南Word/Excel/PPT 模板占位符、动态数据填充与 PDF 输出下一篇从 0 到 1 给 three.js 画面加上半色调网点DotScreenPass 后处理完整上手创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

B端动态工作台设计:信息架构驱动的体验升级 2026/10/1 10:33:50

B端动态工作台设计:信息架构驱动的体验升级

1. 这不是炫技,是B端工作台该有的样子 “高大上”和“体验感”这两个词,最近在我们团队的评审会上被反复提起,但每次说完,大家脸上都写着同一个问号:到底什么叫“高大上”?又怎么才算“有体验感”&#xff…

阅读更多 →
天玑8300 Ultra遇上PanVK:开源Vulkan驱动跑PS4模拟器实战 2026/10/1 10:33:44

天玑8300 Ultra遇上PanVK:开源Vulkan驱动跑PS4模拟器实战

1. 天玑8300 Ultra遇上PanVK:这件事为什么值得聊手里攥着天玑8300 Ultra手机、又想在移动端跑PS4模拟器的朋友,最近应该都刷到过一条消息:PanVK这个开源的Vulkan驱动,开始对天玑8300 Ultra提供专属支持了。这事听起来有点小众&…

阅读更多 →
902张带标签钓鱼数据集YOLO训练实战:从解压到部署全流程避坑指南 2026/10/1 10:33:44

902张带标签钓鱼数据集YOLO训练实战:从解压到部署全流程避坑指南

简介:面向目标检测入门者与垂钓场景识别研究者的行为检测数据集,包含902张已标注图像,覆盖垂钓行为目标,适用于yolov5、yolov8、yolov9、yolov7、yolov10、yolo11等主流算法。压缩包共2000个文件,以902个xml标签、902个…

阅读更多 →
天玑8300 Ultra + PanVK:开源Vulkan驱动跑PS4模拟器实战 2026/10/1 10:33:44

天玑8300 Ultra + PanVK:开源Vulkan驱动跑PS4模拟器实战

1. 天玑8300 Ultra遇上PanVK:这次真的能跑PS4模拟器了 手里攥着天玑8300 Ultra手机或者平板的人,大概都动过一个念头:这U的GPU底子不差,Mali-G615 MC6,跑分也不难看,能不能拿来干点“出格”的事&#xff1f…

阅读更多 →
安全帽检测数据集person_hat.rar清洗与YOLOv8实战指南 2026/10/1 10:33:44

安全帽检测数据集person_hat.rar清洗与YOLOv8实战指南

简介:本资源是面向计算机视觉开发者与安全监控系统工程师的安全帽目标检测专用数据集,聚焦工业场景下工人佩戴合规性识别问题,特别适配YOLO系列模型训练与部署。压缩包共2000个文件,含6057张标注图像(jpg)、…

阅读更多 →
用GetProcAddress替换装入时动态链接:插件系统与Hook实践 2026/10/1 10:33:44

用GetProcAddress替换装入时动态链接:插件系统与Hook实践

干了几年Windows平台底层开发,你会发现一个很有意思的现象:大家在讨论动态链接时,默认指的其实都是"装入时动态链接"——编译器帮你生成导入表,加载器在EXE或DLL启动时自动解析这些导入的函数地址,整个过程对…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉