Blue Ocean

本章节涵盖了Blue Ocean 功能的所有方面,包括:

本章节使用与所有技能水平的Jenkins用户,但初学者可能需要参阅 Pipeline 的某些章节,以了解Blue Ocean章节包含的一些主题。

有关Jenkins用户手册的概述,请参阅用户手册概述.

什么是 Blue Ocean?

Blue Ocean 重新思考Jenkins的用户体验,从头开始设计Jenkins Pipeline, 但仍然与自由式作业兼容,Blue Ocean减少了混乱而且进一步明确了团队中每个成员Blue Ocean 的主要特性包括:

  • 持续交付(CD)Pipeline的 复杂可视化 ,可以让您快速直观地理解管道状态。

  • Pipeline 编辑器 - 引导用户通过直观的、可视化的过程来创建Pipeline,从而使Pipeline的创建变得平易近人。

  • 个性化 以适应团队中每个成员不同角色的需求。

  • 在需要干预和/或出现问题时 精确定位 。 BlueOcean 展示 Pipeline中需要关注的地方, 简化异常处理,提高生产力

  • 本地集成分支和合并请求, 在与GitHub 和 Bitbucket中的其他人协作编码时实现最大程度的开发人员生产力。

开始使用 Blue Ocean, 请参照Getting started with Blue Ocean.

常见问题

为什么需要 Blue Ocean?

世界已经从开发者的纯粹功能性工具转向了开发人员工具,成为“开发者体验”的一部分,也就是说,它不再是单一的工具,而是开发者全天使用的许多工具,以及它们如何协同工作以实现对开发人员有利的工作流程-这就是“开发者体验”

像Heroku,Atlassian和Github这样的开发工具公司已经提高了业界认为的良好开发者体验的标准,开发人员也越来越期望获得优秀的设计。近年来,开发者越来越被那些不仅功能强大,而且能够无缝地融入工作流程中,使用起来很愉悦的工具所吸引。这种转变代表了更高的设计和用户体验标准。Jenkins需要改善以达到这个更高的标准。

创建可视化CD pipeline 对于很多Jenkins用户来说非常有价值,为了满足他们的需求,Jenkins社区已经创建了超过5个插件。这表明需要重新审视目前Jenkins如何表达这些概念,并将交付pipeline视为Jenkins用户体验的中心主题。

这不仅仅是持续交付概念,而且是开发人员每天使用的工具 - Github,Bitbucket,Slack,HipChat,Puppet或Docker。它不仅仅是Jenkins - 而是涵盖了多种工具的,围绕Jenkins的开发者工作流程。

新团队几乎没有时间积累自己的Jenkins经验 - 他们希望更快地发布更好的软件来缩短上市时间。总结以上经验,Jenkins体验是我们可以与Jenkins用户和贡献者社区共同努力的方式。随着时间的推移,开发者对良好用户体验变化的期望和Bule Ocean的使命将是Jenkins做出回应。

Jenkins社区已经倾注了大量的汗水和眼泪到构建现有最具技术优势和可扩展性的软件自动化工具。现在如果不采取任何行动,想改变开发者体验,怕是只能邀请其他人 - 闭源 - 来做了。

名字由来?

Blue Ocean 这个名字来自书籍Blue Ocean Strategy它不是在有争议的空间内查看战略问题,而是在更大的无争议的空间中查看问题。简单来说,引用冰球传奇人物 Wayne Gretzky的话: “滑到冰球将要到达的位置,而不是冰球的位置”。

Blue Ocean 支持自由风格作业吗?

Blue Ocean 旨在为pipeline 提供绝佳的体验,并与您已在Jenkins实例上配置的任何自由式作业兼容。但是,您将不会受益于为管道构建的任何功能 - 例如:管道可视化

由于 Blue Ocean的设计是可扩展的,Jenkins社区有可能在未来扩展蓝海以支持其他作业类型

这对于 Jenkins 经典UI来说意味着什么?

随着Blue Ocean的成熟,用户回到经典UI的理由将越来越少。阅读in Pipeline入门中关于经典UI的更多信息。

例如,Blue Ocean的早期版本主要针对pipeline 作业。您能够在Blue Ocean中看到您现有的非Pipeline作业,但可能在一段时间内无法在Blue Ocean UI中配置他们。这意味着用户将不得不跳转到经典UI来配置pipeline以外的pipeline/item 作业。.

可能会有更多了例子,这就是经典用户界面被长期保留很重要的原因。

这对插件来说以为着什么?

可扩展性是Jenkins的核心特性,因此,扩展Blue Ocean UI非常重要。<ExtensionPoint name=..>可以被用作Blue Ocean的标记,为插件流出位置来作用于Blue Ocean UI(即插件可以拥有自己的Blue Ocean扩展点,就像现在在Jenkins里面一样),到目前位置,Blue Ocean 本身也是基于这些扩展点实现的。

扩展程序通常由插件提供,但是,插件开发者需要引入一些额外的javaScript 以关联Blue Ocean扩展点,为Blue Ocean用户体验做出贡献。

目前使用了哪些技术?

Blue Ocean 本身是Jenkins插件的集合。有一个关键的差别 - Blue Ocean 为HTTP请求提供了自己的端点,并通过不同的路径提供了HTML / JavaScript,而没有现有的Jenkins UI标记/脚本。React.js 和 ES6 用于提供Blue Ocean的JavaScript组件。受到这个优秀的开源项目的启发(在博客Building Plugins for React Apps 中了解更多内容),<ExtensionPoint> 允许来自任何Jenkins插件的扩展(仅限于JavaScript),并且它们是否能够正确加载是完全独立的。

从哪里可以找到源码

源代码可以在GitHub上找到

加入社区

通过以下方式加入社区: