写点什么

Concourse:可扩展的开源 CI 管道工具

  • 2016-05-05
  • 本文字数:1505 字

    阅读完需:约 5 分钟

Concourse 是一个开源的 CI 管道工具,它使用 yaml 文件对管道进行配置,以及设置无需配置的安装。Concourse 最近发布了第一个主要版本,目前已经可以下载1.1.0 版本。根据由 Pivotal 所赞助的团队所说,Concourse 的主要优点在于为管道提供明确的、第一级的支持;在容器中运行相互隔离的构建工作、可避免使用雪花型构建服务器、以及能够方便地访问构建日志等等。

Concourse 同时也表示,概念上的简单性是 Concourse 的另一个额外的优势:

Concourse 的最终目标是以尽可能少的独立变化部分提供一种具有表达性的系统。Concourse 设立了三种核心概念:任务、资源以及包含这两者的作业。

任务(Task)是执行的基本单元,表现为在一个全新启动的容器中所运行的脚本。容器已经经过了预处理,因此其中包含了一个输入与输出目录,任务脚本可在这些目录中运行。

资源(Resource)则表现为版本化资源的抽象位置,例如某个 repository。资源也可用于对进入或退出某个管道的外部依赖进行建模,或是表示更抽象的概念,例如时间触发器等等。资源的变更可被检测(检查)、获取(获得)以及发布(推送)。不同的资源类型(例如 Git、AWS S3 或触发器)可用于封装用于管道的各种样板代码,为 Concourse 的扩展提供了一个可适配的接口。

作业(Job)是由资源与任务构成的,通过构建计划实现。作业可由资源的变更所触发,也可以选择手动触发,以实现人工批准流程。下面的脚本展现了一个简单的作业:

复制代码
jobs:
- name: hello-world
plan:
- task: say-hello
config:
platform: linux
image_resource:
type: docker-image
source: {repository: ubuntu}
run:
path: echo
args: ["Hello, world!"]

一个作业计划的执行实例被称为一次构建(Build),Concourse 中的构建是可重复使用的,因为其中的任务在新的容器中也将重新运行。因此,构建的工作线程不会受到之前运行结果的变更所影响。此外,如果某次构建失败了,也可以通过一个名为 Fly 的 Concourse 命令行工具在某个容器中再一次在本地运行,通过这种方式实现更快的开发周期。此外,

通过使用 Fly 中的 Intercept 特性,运行在某个构建中的容器即使在运行期间(甚至是刚刚完成任务的短时间之内)也能够进行访问,这将极大地帮助用户进行调试。

管道就是通过作业实现的资源流变化的结果可视化展现。在一个部署过程中可定义多个管道,这些管道是相互隔离的。他们支持类似于 GoCD 方式的输入与输出,并且可在 yaml 文件中完成所有配置。

据 Concourse 团队所说,促使他们创建另一个 CI 工具的动力在于他们对现有的工具不太满意。举例来说, Jenkins 依赖于插件以及基于点击的配置,因此重建实例就是一个艰难的任务。而 GoCD 的问题在于“很难找到如何配置某些东西的信息,并且执行的层次结构很深又非常复杂。”

虽然 Concourse 可用于 CI 与 CD,但现有的资源缺乏某些更专注于部署的实现,因此持续交付与部署任务的实现就需要由用户来完成。此外,目前的仪表板提供的运维信息不够充分。不过,由于指标数据对于理解系统的表现与行为至关重要,因此“Concourse 可提供系统本身的健康状况指标,以及与正在运行的构建相关的各种指标。运维人员可以深入了解这些指标,以观察系统的健康状况。” Concourse 本身的管道指标都是公开暴露的。

Concourse 利用了 Pivotal 与 Cloud Foundry 中的某些术语和工具,例如通过Garden API 对于运行中的容器进行抽象,或是通过BOSH 实现发布的管理。因此,如果用户熟悉这些生态系统,对于Concourse 的上手将有所帮助。为了帮助用户克服新上手时在技能上的缺陷,可参考在线文档以及使用指南

查看英文原文 Concourse: Scalable Open Source CI Pipeline Tool

2016-05-05 19:003939
用户头像

发布了 428 篇内容, 共 193.4 次阅读, 收获喜欢 39 次。

关注

评论

发布
暂无评论
发现更多内容

这款AI助手竟能自动生成行程+前端代码?

VyrnSynx

CodeBuddy首席试玩官

关于懒加载,LazyForEach和Repeat的区别,哪一个性能更好呢?

cfx

鸿蒙 开发工具 HarmonyOS HarmonyOS NEXT

城市感知网络体系,构筑全域数字化新基石

脑极体

AI

淘宝天猫商品评论API接口(附代码示例)

tbapi

淘宝评论API 天猫评论API 淘宝商品评论API 天猫商品评论API 淘宝评论数据采集

鸿蒙跨平台开发教程之Uniapp布局基础

幽蓝计划

鸿蒙应用开发中的生命周期管理:从组件到应用的全流程解析

谢道韫

鸿蒙 HarmonyOS HarmonyOS NEXT 实践分享

湖仓一体架构在金融典型数据分析场景中的实践

镜舟科技

数据分析 金融 存算分离架构 StarRocks 湖仓一体

现代框架对SEO的深度影响

溪抱鱼

国际化 SEO SEO工具

AI实践探索:辅助生成测试用例

小巫debug日记

测试用例 AI编程

莫想到有一天得重新写个 etcd client

八苦-瞿昙

用 CodyBuddy 帮我写自动化运维脚本

悟空聊架构

AI 悟空聊架构 CodeBuddy首席试玩官

TikTok直播卡顿怎么解决?教你几个方法!

Ogcloud

SD-WAN tiktok直播 tiktok直播网络 tiktok网络 sd-wan专线

室内LED全彩显示屏P3与P5

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家 户内led显示屏 规格说明

从0到上线,CodeBuddy 如何帮我快速构建旅游 App?

VyrnSynx

CodeBuddy首席试玩官

Arthas vmtool(从 jvm 里查询对象,执行 forceGc)

刘大猫

Java 监控 Arthas 监控工具 vmtool

鸿蒙适配unity的交互方法

cfx

鸿蒙 HarmonyOS HarmonyOS NEXT

极简远程革命:节点小宝 — 无公网IP的极速内网穿透远程解决方案

猫头虎

网络

uniapp开发HarmonyOS NEXT应用之项目结构详细解读

幽蓝计划

100台电脑局域网搭建攻略和设备配置指南

Ogcloud

局域网 企业组网 局域网组建 局域网搭建 企业网络搭建

淘宝天猫图片搜索拍立淘接口(附代码示例)

tbapi

淘宝图片搜索接口 淘宝拍立淘接口 淘宝图片搜索API 天猫图片搜索接口 天猫拍立淘api

打造一款响应式图片画廊

繁依Fanyi

5分钟完成手势识别项目!CodeBuddy的Craft模式让传统编程方法沦为古董?

VyrnSynx

CodeBuddy首席试玩官

Kagi搜索:互联网搜索的净土,值得你的每一分钱

AI段舸

AI 搜索软件

《算法导论(第4版)》阅读笔记:p17-p27

codists

算法

2025-05-11 代码人生 - 精选文章周刊

安全乐谷

Java Python 编程 面试 找工作

从InfluxDB到StarRocks:Grab实现Spark监控平台10倍性能提升

StarRocks

spark StarRocks 数据库、 物化视图 Iris

一站式国产远程访问工具推荐:全面解析、深度对比与最佳选型指南

猫头虎

网络

《算法导论(第4版)》阅读笔记:p14-p16

codists

算法

iVX:从技术架构到行业实践的全面升级

代码制造者

手动开发?给我一条提示词,CodeBuddy能做的你都做不到!

VyrnSynx

CodeBuddy首席试玩官

iVX:结合AI 原生开发的图形化编程平台解析

代码制造者

AI AI编程

Concourse:可扩展的开源CI管道工具_DevOps & 平台工程_Grischa Ekart_InfoQ精选文章