写点什么

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:003546
用户头像

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

关注

评论

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

深度解读:Raft是Paxos的一个变种么?

小猿姐

数据库 raft PAXOS

NEO: A Learned Query Optimizer 论文

Downal

从低代码的骂声说起

小粽

低代码

华为云CodeArts 11.11活动倒计时,新用户福利重磅来袭

平平无奇爱好科技

主流的低代码平台有哪些?程序员应该如何与低代码相处?

高端章鱼哥

软件开发 低代码 JNPF

罗拉Rola知道IP地址如何变更的吗?

Geek_bf375d

爬虫 跨境电子商务 代理IP 代理IP设置 免费代理ip

罗拉ROLA告诉你美国IP代理如何获取?适用于哪些场景?

Geek_bf375d

爬虫 代理IP 代理IP设置 免费代理ip 跨境电商

WorkPlus即时通讯,打通上下游产业链,构建企业生态圈

WorkPlus

SWOT是什么?10个好用的SWOT分析工具盘点,战略分析必备!

彭宏豪95

可视化 画图软件 在线白板 绘图工具 SWOT

国家超级计算济南中心低代码平台应用实践

明道云

飞书智能伙伴之 AI 数智参谋:先进团队,北极星指标也要遥遥领先

Kyligence

指标平台 智能决策

罗拉ROLA分析亚马逊频繁扫号下的跨境电商,跨境电商卖家应该何去何从?

Geek_bf375d

爬虫 代理IP 代理IP设置 免费代理ip 跨境电商

StarRocks 算子落盘:让大查询又快又稳

StarRocks

数据库 OLAP StarRocks

现在的我们需要怎么去布局一级

币离海

一款专为POS机设计的芯片解决方案

梦笔生花

国内首批!华为云云原生中间件DCS&DMS获软件可信“卓越级”认证

平平无奇爱好科技

【Spring Cloud实战】分布式系统控制与组件应用

快乐非自愿限量之名

分布式 服务器 组件 spring-cloud

为什么Facebook运营需使用IP代理?罗拉ROLA详解有哪些美国IP代理好用?

Geek_bf375d

爬虫 代理IP 代理IP设置 免费代理ip 跨境电商

BNB Chain 成就衍生品 DEX,APX Finance 趁势脱颖而出

股市老人

LeetCode题解:13. 罗马数字转整数,哈希表,JavaScript,详细注释

Lee Chen

JavaScript LeetCode

罗拉ROLA告诉你选择海外住宅代理IP服务供应商要注意哪些问题?

Geek_bf375d

爬虫 跨境电子商务 代理IP 代理IP设置 免费代理ip

SQL LIKE 运算符:用法、示例和通配符解释

小万哥

程序员 软件 sql 后端开发 MySQL、

跨境电商有没好的代理ip系统推荐?罗拉ROLA告诉你

Geek_bf375d

代理IP 代理IP设置 免费代理ip 跨境电商 爬虫分享

c语言基础回顾-指针 | AI工程化部署

AIWeker

c AI工程化部署

华为云11.11 PaaS产品|精密云工程:智能激活业务速率限时优惠倒计时

平平无奇爱好科技

WorkPlus解放企业应用开发,实现跨平台无缝切换

WorkPlus

HashML——让更多企业读懂数据,用好AI

酷克数据HashData

机智的告警策略,完善监控系统的重要一环

观测云

监控告警 告警策略

文心一言 VS 讯飞星火 VS chatgpt (141)-- 算法导论12.1 1题

福大大架构师每日一题

福大大架构师每日一题

意图交易:为用户思考,而不是让用户思考

股市老人

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