欢迎光临
我们一直在努力

Jenkins Blue Ocean 完全指南:现代化 CI/CD 可视化的终极利器

Jenkins Blue Ocean 完全指南:现代化 CI/CD 可视化的终极利器

    • 一、什么是 Blue Ocean?
      • 1.1 🟢 核心定义
      • 1.2 🔵 为什么需要 Blue Ocean?
    • 二、Blue Ocean 五大核心功能
      • 2.1 🟡 流水线可视化:一图胜千言
      • 2.2 🟠 Pipeline 编辑器:可视化构建流水线
      • 2.3 🔴 精确定位与异常处理
      • 2.4 🟣 分支与 PR 原生集成
      • 2.5 🔵 UI 个性化
    • 三、典型使用场景
      • 3.1 🟢 场景一:新项目快速搭建 CI/CD
      • 3.2 🔵 场景二:多分支与 PR 管理
      • 3.3 🟡 场景三:故障排查与根因分析
    • 四、与其他视图插件的对比
    • 五、快速上手指南
      • 5.1 🟠 安装 Blue Ocean
      • 5.2 🟣 访问 Blue Ocean
      • 5.3 🔴 Docker 快速启动
    • 六、总结

🌺The Begin🌺点点关注,收藏不迷路🌺

⬇ ⬇ 底部 ⬇ ⬇

🌊 在 Jenkins 的众多插件中,Blue Ocean 无疑是最具变革性的一款。它彻底重塑了 Jenkins 的用户体验,将复杂的流水线以直观、可视化的方式呈现。本文将全面解析 Blue Ocean 的核心功能、典型使用场景及最佳实践。

一、什么是 Blue Ocean?

1.1 🟢 核心定义

Blue Ocean 是 Jenkins 官方推出的现代化 UI 插件,旨在从根本上重新思考 Jenkins 的用户体验。与传统的 Jenkins 经典界面不同,Blue Ocean 从头开始设计,专注于 Jenkins Pipeline,同时与自由风格(Freestyle)作业保持兼容。

💡 设计哲学:Blue Ocean 的名字来源于《蓝海战略》一书,寓意在“无争议的空间”中重新定义 Jenkins 的用户体验,而非在传统 UI 的“红海”中竞争。引用冰球传奇 Wayne Gretzky 的话:“滑到冰球将要到达的位置,而不是冰球的位置。”

1.2 🔵 为什么需要 Blue Ocean?

在 Blue Ocean 出现之前,Jenkins 的界面一直以功能强大但交互体验欠佳著称。随着 Heroku、GitHub 等工具提升了开发者对“开发者体验”的期待,Jenkins 社区意识到需要改善用户界面以匹配更高的设计标准。

传统 Jenkins 经典界面的痛点:

  • 流水线状态不够直观,难以快速定位问题
  • 配置流程复杂,学习曲线陡峭
  • 缺乏对分支和 PR 的原生集成
  • 缺少对团队不同角色的个性化支持

二、Blue Ocean 五大核心功能

2.1 🟡 流水线可视化:一图胜千言

Blue Ocean 最突出的功能是将 CD 流水线以复杂可视化的方式呈现,让团队成员能够快速、直观地理解流水线的状态。

#mermaid-svg-2e8oNmmxJP0DbZnj{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-2e8oNmmxJP0DbZnj .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-2e8oNmmxJP0DbZnj .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-2e8oNmmxJP0DbZnj .error-icon{fill:#552222;}#mermaid-svg-2e8oNmmxJP0DbZnj .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-2e8oNmmxJP0DbZnj .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-2e8oNmmxJP0DbZnj .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-2e8oNmmxJP0DbZnj .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-2e8oNmmxJP0DbZnj .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-2e8oNmmxJP0DbZnj .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-2e8oNmmxJP0DbZnj .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-2e8oNmmxJP0DbZnj .marker{fill:#333333;stroke:#333333;}#mermaid-svg-2e8oNmmxJP0DbZnj .marker.cross{stroke:#333333;}#mermaid-svg-2e8oNmmxJP0DbZnj svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-2e8oNmmxJP0DbZnj p{margin:0;}#mermaid-svg-2e8oNmmxJP0DbZnj .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-2e8oNmmxJP0DbZnj .cluster-label text{fill:#333;}#mermaid-svg-2e8oNmmxJP0DbZnj .cluster-label span{color:#333;}#mermaid-svg-2e8oNmmxJP0DbZnj .cluster-label span p{background-color:transparent;}#mermaid-svg-2e8oNmmxJP0DbZnj .label text,#mermaid-svg-2e8oNmmxJP0DbZnj span{fill:#333;color:#333;}#mermaid-svg-2e8oNmmxJP0DbZnj .node rect,#mermaid-svg-2e8oNmmxJP0DbZnj .node circle,#mermaid-svg-2e8oNmmxJP0DbZnj .node ellipse,#mermaid-svg-2e8oNmmxJP0DbZnj .node polygon,#mermaid-svg-2e8oNmmxJP0DbZnj .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-2e8oNmmxJP0DbZnj .rough-node .label text,#mermaid-svg-2e8oNmmxJP0DbZnj .node .label text,#mermaid-svg-2e8oNmmxJP0DbZnj .image-shape .label,#mermaid-svg-2e8oNmmxJP0DbZnj .icon-shape .label{text-anchor:middle;}#mermaid-svg-2e8oNmmxJP0DbZnj .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-2e8oNmmxJP0DbZnj .rough-node .label,#mermaid-svg-2e8oNmmxJP0DbZnj .node .label,#mermaid-svg-2e8oNmmxJP0DbZnj .image-shape .label,#mermaid-svg-2e8oNmmxJP0DbZnj .icon-shape .label{text-align:center;}#mermaid-svg-2e8oNmmxJP0DbZnj .node.clickable{cursor:pointer;}#mermaid-svg-2e8oNmmxJP0DbZnj .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-2e8oNmmxJP0DbZnj .arrowheadPath{fill:#333333;}#mermaid-svg-2e8oNmmxJP0DbZnj .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-2e8oNmmxJP0DbZnj .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-2e8oNmmxJP0DbZnj .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-2e8oNmmxJP0DbZnj .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-2e8oNmmxJP0DbZnj .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-2e8oNmmxJP0DbZnj .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-2e8oNmmxJP0DbZnj .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-2e8oNmmxJP0DbZnj .cluster text{fill:#333;}#mermaid-svg-2e8oNmmxJP0DbZnj .cluster span{color:#333;}#mermaid-svg-2e8oNmmxJP0DbZnj div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-2e8oNmmxJP0DbZnj .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-2e8oNmmxJP0DbZnj rect.text{fill:none;stroke-width:0;}#mermaid-svg-2e8oNmmxJP0DbZnj .icon-shape,#mermaid-svg-2e8oNmmxJP0DbZnj .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-2e8oNmmxJP0DbZnj .icon-shape p,#mermaid-svg-2e8oNmmxJP0DbZnj .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-2e8oNmmxJP0DbZnj .icon-shape .label rect,#mermaid-svg-2e8oNmmxJP0DbZnj .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-2e8oNmmxJP0DbZnj .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-2e8oNmmxJP0DbZnj .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-2e8oNmmxJP0DbZnj :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

🌊 Blue Ocean 流水线视图

✅ 是

❌ 否

🔨 代码检出

⚙️ 编译构建

🧪 单元测试

测试通过?

🐳 镜像构建

❌ 失败高亮

🚀 部署

可视化效果的核心优势:

  • 每个 Stage 和 Step 以图形化卡片展示,一目了然
  • 构建进度实时更新,无需刷新页面
  • 失败阶段自动高亮,快速定位问题位置

2.2 🟠 Pipeline 编辑器:可视化构建流水线

Pipeline 编辑器是 Blue Ocean 的“杀手锏”功能,它通过直观的图形化界面引导用户创建 Pipeline,大大降低了自动化 CD 的门槛。

编辑器工作流程:

#mermaid-svg-Q56sZk7z1LkjR2Ln{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-Q56sZk7z1LkjR2Ln .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-Q56sZk7z1LkjR2Ln .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-Q56sZk7z1LkjR2Ln .error-icon{fill:#552222;}#mermaid-svg-Q56sZk7z1LkjR2Ln .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-Q56sZk7z1LkjR2Ln .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-Q56sZk7z1LkjR2Ln .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-Q56sZk7z1LkjR2Ln .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-Q56sZk7z1LkjR2Ln .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-Q56sZk7z1LkjR2Ln .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-Q56sZk7z1LkjR2Ln .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-Q56sZk7z1LkjR2Ln .marker{fill:#333333;stroke:#333333;}#mermaid-svg-Q56sZk7z1LkjR2Ln .marker.cross{stroke:#333333;}#mermaid-svg-Q56sZk7z1LkjR2Ln svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-Q56sZk7z1LkjR2Ln p{margin:0;}#mermaid-svg-Q56sZk7z1LkjR2Ln .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-Q56sZk7z1LkjR2Ln .cluster-label text{fill:#333;}#mermaid-svg-Q56sZk7z1LkjR2Ln .cluster-label span{color:#333;}#mermaid-svg-Q56sZk7z1LkjR2Ln .cluster-label span p{background-color:transparent;}#mermaid-svg-Q56sZk7z1LkjR2Ln .label text,#mermaid-svg-Q56sZk7z1LkjR2Ln span{fill:#333;color:#333;}#mermaid-svg-Q56sZk7z1LkjR2Ln .node rect,#mermaid-svg-Q56sZk7z1LkjR2Ln .node circle,#mermaid-svg-Q56sZk7z1LkjR2Ln .node ellipse,#mermaid-svg-Q56sZk7z1LkjR2Ln .node polygon,#mermaid-svg-Q56sZk7z1LkjR2Ln .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-Q56sZk7z1LkjR2Ln .rough-node .label text,#mermaid-svg-Q56sZk7z1LkjR2Ln .node .label text,#mermaid-svg-Q56sZk7z1LkjR2Ln .image-shape .label,#mermaid-svg-Q56sZk7z1LkjR2Ln .icon-shape .label{text-anchor:middle;}#mermaid-svg-Q56sZk7z1LkjR2Ln .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-Q56sZk7z1LkjR2Ln .rough-node .label,#mermaid-svg-Q56sZk7z1LkjR2Ln .node .label,#mermaid-svg-Q56sZk7z1LkjR2Ln .image-shape .label,#mermaid-svg-Q56sZk7z1LkjR2Ln .icon-shape .label{text-align:center;}#mermaid-svg-Q56sZk7z1LkjR2Ln .node.clickable{cursor:pointer;}#mermaid-svg-Q56sZk7z1LkjR2Ln .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-Q56sZk7z1LkjR2Ln .arrowheadPath{fill:#333333;}#mermaid-svg-Q56sZk7z1LkjR2Ln .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-Q56sZk7z1LkjR2Ln .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-Q56sZk7z1LkjR2Ln .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-Q56sZk7z1LkjR2Ln .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-Q56sZk7z1LkjR2Ln .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-Q56sZk7z1LkjR2Ln .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-Q56sZk7z1LkjR2Ln .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-Q56sZk7z1LkjR2Ln .cluster text{fill:#333;}#mermaid-svg-Q56sZk7z1LkjR2Ln .cluster span{color:#333;}#mermaid-svg-Q56sZk7z1LkjR2Ln div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-Q56sZk7z1LkjR2Ln .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-Q56sZk7z1LkjR2Ln rect.text{fill:none;stroke-width:0;}#mermaid-svg-Q56sZk7z1LkjR2Ln .icon-shape,#mermaid-svg-Q56sZk7z1LkjR2Ln .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-Q56sZk7z1LkjR2Ln .icon-shape p,#mermaid-svg-Q56sZk7z1LkjR2Ln .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-Q56sZk7z1LkjR2Ln .icon-shape .label rect,#mermaid-svg-Q56sZk7z1LkjR2Ln .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-Q56sZk7z1LkjR2Ln .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-Q56sZk7z1LkjR2Ln .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-Q56sZk7z1LkjR2Ln :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

没有

启动 Blue Ocean

点击 Create a new Pipeline

选择代码仓库GitHub/Bitbucket/Git

授权 Jenkins 访问仓库

仓库中是否有 Jenkinsfile?

自动发现并展示 Pipeline

进入可视化编辑器

通过 + 图标添加 Stage

选择 Step 类型Shell Script / Docker / 等

配置 Step 参数

保存并提交 Jenkinsfile自动推送到仓库

编辑器特性:

  • 通过“+”图标添加 Stage,右侧面板配置详细参数
  • 支持 Shell Script、Docker、Archive Artifacts 等多种 Step 类型
  • 编辑完成后自动生成 Jenkinsfile 并提交到代码仓库

2.3 🔴 精确定位与异常处理

当 Pipeline 执行失败时,Blue Ocean 能够精确显示需要关注的位置,简化异常处理流程并提高团队生产力。

传统方式Blue Ocean 方式
翻阅大量控制台日志 失败 Stage 自动高亮显示
手动查找错误位置 点击失败节点直接查看相关日志
难以理解失败上下文 可视化展示失败阶段的上下游依赖

2.4 🟣 分支与 PR 原生集成

Blue Ocean 对 GitHub 和 Bitbucket 的分支和合并请求(PR)提供了原生集成支持,让开发者在协作编码时获得最大生产力。

Activity View(活动视图)展示:

  • 当前和已完成的 Pipeline 运行列表
  • 各分支的最新构建状态
  • 任何打开的合并请求(PR)及其对应的构建状态

💡 实际效果:开发者在提交 PR 后,无需离开 GitHub 或 Bitbucket,即可在 Blue Ocean 中查看 PR 对应的流水线执行状态,实现代码审查与 CI/CD 的无缝衔接。

2.5 🔵 UI 个性化

Blue Ocean 支持根据 DevOps 团队中不同成员的角色需求进行界面个性化:

  • 开发人员关注构建状态和测试结果
  • 测试人员关注部署环境和测试报告
  • 运维人员关注资源使用和部署状态

三、典型使用场景

3.1 🟢 场景一:新项目快速搭建 CI/CD

对于刚接触 Jenkins 的团队,Blue Ocean 的图形化编辑器可以将流水线搭建时间从数小时缩短到20-40 分钟。

操作步骤:

  • 登录 Jenkins,进入 Blue Ocean 界面
  • 点击“Create a new Pipeline”
  • 选择 GitHub 并授权访问
  • 选择目标仓库
  • 使用可视化编辑器拖拽添加 Stage 和 Step
  • 保存,Jenkinsfile 自动提交到仓库
  • 3.2 🔵 场景二:多分支与 PR 管理

    对于采用 GitFlow 或 GitHub Flow 的团队,Blue Ocean 的 Activity View 提供了统一的分支和 PR 状态看板。

    #mermaid-svg-oPFAlnZnQYcxR8Ss{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-oPFAlnZnQYcxR8Ss .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-oPFAlnZnQYcxR8Ss .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-oPFAlnZnQYcxR8Ss .error-icon{fill:#552222;}#mermaid-svg-oPFAlnZnQYcxR8Ss .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-oPFAlnZnQYcxR8Ss .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-oPFAlnZnQYcxR8Ss .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-oPFAlnZnQYcxR8Ss .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-oPFAlnZnQYcxR8Ss .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-oPFAlnZnQYcxR8Ss .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-oPFAlnZnQYcxR8Ss .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-oPFAlnZnQYcxR8Ss .marker{fill:#333333;stroke:#333333;}#mermaid-svg-oPFAlnZnQYcxR8Ss .marker.cross{stroke:#333333;}#mermaid-svg-oPFAlnZnQYcxR8Ss svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-oPFAlnZnQYcxR8Ss p{margin:0;}#mermaid-svg-oPFAlnZnQYcxR8Ss .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-oPFAlnZnQYcxR8Ss .cluster-label text{fill:#333;}#mermaid-svg-oPFAlnZnQYcxR8Ss .cluster-label span{color:#333;}#mermaid-svg-oPFAlnZnQYcxR8Ss .cluster-label span p{background-color:transparent;}#mermaid-svg-oPFAlnZnQYcxR8Ss .label text,#mermaid-svg-oPFAlnZnQYcxR8Ss span{fill:#333;color:#333;}#mermaid-svg-oPFAlnZnQYcxR8Ss .node rect,#mermaid-svg-oPFAlnZnQYcxR8Ss .node circle,#mermaid-svg-oPFAlnZnQYcxR8Ss .node ellipse,#mermaid-svg-oPFAlnZnQYcxR8Ss .node polygon,#mermaid-svg-oPFAlnZnQYcxR8Ss .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-oPFAlnZnQYcxR8Ss .rough-node .label text,#mermaid-svg-oPFAlnZnQYcxR8Ss .node .label text,#mermaid-svg-oPFAlnZnQYcxR8Ss .image-shape .label,#mermaid-svg-oPFAlnZnQYcxR8Ss .icon-shape .label{text-anchor:middle;}#mermaid-svg-oPFAlnZnQYcxR8Ss .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-oPFAlnZnQYcxR8Ss .rough-node .label,#mermaid-svg-oPFAlnZnQYcxR8Ss .node .label,#mermaid-svg-oPFAlnZnQYcxR8Ss .image-shape .label,#mermaid-svg-oPFAlnZnQYcxR8Ss .icon-shape .label{text-align:center;}#mermaid-svg-oPFAlnZnQYcxR8Ss .node.clickable{cursor:pointer;}#mermaid-svg-oPFAlnZnQYcxR8Ss .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-oPFAlnZnQYcxR8Ss .arrowheadPath{fill:#333333;}#mermaid-svg-oPFAlnZnQYcxR8Ss .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-oPFAlnZnQYcxR8Ss .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-oPFAlnZnQYcxR8Ss .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-oPFAlnZnQYcxR8Ss .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-oPFAlnZnQYcxR8Ss .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-oPFAlnZnQYcxR8Ss .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-oPFAlnZnQYcxR8Ss .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-oPFAlnZnQYcxR8Ss .cluster text{fill:#333;}#mermaid-svg-oPFAlnZnQYcxR8Ss .cluster span{color:#333;}#mermaid-svg-oPFAlnZnQYcxR8Ss div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-oPFAlnZnQYcxR8Ss .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-oPFAlnZnQYcxR8Ss rect.text{fill:none;stroke-width:0;}#mermaid-svg-oPFAlnZnQYcxR8Ss .icon-shape,#mermaid-svg-oPFAlnZnQYcxR8Ss .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-oPFAlnZnQYcxR8Ss .icon-shape p,#mermaid-svg-oPFAlnZnQYcxR8Ss .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-oPFAlnZnQYcxR8Ss .icon-shape .label rect,#mermaid-svg-oPFAlnZnQYcxR8Ss .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-oPFAlnZnQYcxR8Ss .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-oPFAlnZnQYcxR8Ss .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-oPFAlnZnQYcxR8Ss :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

    📊 Activity View

    🌿 main 分支✅ 构建成功

    🌿 develop 分支🔄 构建中

    🌿 feature/new-ui❌ 测试失败

    🔄 PR #42⏳ 等待审批

    3.3 🟡 场景三:故障排查与根因分析

    当生产环境部署失败时,Blue Ocean 的可视化视图可以帮助运维人员快速定位问题阶段:

  • 在 Activity View 中找到失败的构建
  • 点击失败 Stage,查看该阶段的详细步骤
  • 直接跳转到对应的控制台日志
  • 通过上下游依赖关系分析影响范围
  • 四、与其他视图插件的对比

    对比维度Blue OceanPipeline: Stage ViewPipeline Graph View
    UI 风格 现代化、图形化 传统、列表式 图形化、流程图式
    Pipeline 编辑器 ✅ 可视化编辑器 ❌ 无 ❌ 无
    分支/PR 集成 ✅ 原生支持 ❌ 有限 ❌ 有限
    个性化支持 ✅ 支持角色定制 ❌ 不支持 ❌ 不支持
    兼容性 Pipeline + Freestyle 主要 Pipeline Pipeline
    维护状态 ⚠️ 仅维护,无新功能 ✅ 积极维护 ✅ 积极维护

    ⚠️ 重要提示:Blue Ocean 已进入维护模式,不会接收进一步的功能更新,仅会针对重大安全问题或功能性缺陷进行选择性更新。推荐的新用户使用 Pipeline: Stage View 和 Pipeline Graph View 插件作为替代方案,它们提供了部分相同功能,但目前还不是完整的替代品。

    五、快速上手指南

    5.1 🟠 安装 Blue Ocean

  • 登录 Jenkins,进入 Manage Jenkins → Manage Plugins
  • 切换到 Available 标签页
  • 搜索 blueocean,勾选 Blue Ocean 插件包
  • 点击 Install without restart
  • 💡 最佳实践:建议安装主“Blue Ocean”插件,它会自动升级所有依赖的插件和库,避免版本不兼容问题。

    5.2 🟣 访问 Blue Ocean

    安装完成后,在 Jenkins Dashboard 左侧菜单点击 Open Blue Ocean,或直接访问 http://<jenkins-url>/blue。

    5.3 🔴 Docker 快速启动

    使用官方 Blue Ocean Docker 镜像可快速体验:

    docker run \\
    –rm \\
    -u root \\
    -p 8080:8080 \\
    -v jenkins-data:/var/jenkins_home \\
    -v /var/run/docker.sock:/var/run/docker.sock \\
    jenkinsci/blueocean

    访问 http://localhost:8080/blue 即可进入 Blue Ocean 界面。

    六、总结

    核心功能价值体现
    🟢 流水线可视化 一图看懂 CI/CD 全流程,快速定位问题
    🔵 图形化编辑器 无需写代码即可创建 Jenkinsfile,降低入门门槛
    🟡 分支与 PR 集成 开发协作与 CI/CD 无缝衔接
    🟠 精确定位 失败时直击问题根因,提高排障效率
    🟣 角色个性化 适配团队不同成员的使用需求

    🔑 核心启示:Blue Ocean 是 Jenkins 在“开发者体验”时代的重要探索。虽然它已进入维护模式,但其设计理念——可视化、图形化、角色化——依然深刻影响着 Jenkins 及其他 CI/CD 工具的发展方向。对于需要快速搭建流水线、降低团队学习成本的场景,Blue Ocean 仍然是值得优先考虑的选择。建议新用户结合官方推荐的 Pipeline: Stage View 插件,逐步过渡到未来的可视化方案。

    在这里插入图片描述

    🌺The End🌺点点关注,收藏不迷路🌺

    ⬆ ⬆ 顶部 ⬆ ⬆

    赞(0)
    未经允许不得转载:171主机测评 » Jenkins Blue Ocean 完全指南:现代化 CI/CD 可视化的终极利器
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址