博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Concourse:可扩展的开源CI管道工具
阅读量:6578 次
发布时间:2019-06-24

本文共 1645 字,大约阅读时间需要 5 分钟。

,它使用yaml文件对管道进行配置,以及设置无需配置的安装。Concourse最近发布了第一个主要版本,。根据由所赞助的团队所说,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特性,运行在某个构建中的容器即使在运行期间(甚至是刚刚完成任务的短时间之内)也能够进行访问,这将极大地帮助用户进行调试。

\
\\

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

\\

f96d1ba67ff3ef23ff76774d48837d65.png

\\

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

\\

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

\\

Concourse利用了Pivotal与Cloud Foundry中的某些术语和工具,例如,或是。因此,如果用户,对于Concourse的上手将有所帮助。为了帮助用户克服新上手时在技能上的缺陷,可参考以及。

\\

查看英文原文

转载地址:http://plfno.baihongyu.com/

你可能感兴趣的文章
java笔记八:IO流之字符流与字符缓冲流
查看>>
Docker 命令收集
查看>>
myeclipse注册码生成器
查看>>
怎样快速学好PHP技术之PHP学习方法总结
查看>>
《Java工程师成神之路-基础篇》Java基础知识——序列化(已完结)
查看>>
iOS App间相互跳转漫谈 part2
查看>>
Java CAS 原理剖析
查看>>
ISCC2014 writeup
查看>>
Kotlin 知识梳理(1) Kotlin 基础
查看>>
js正则表达式
查看>>
iOS socket通信,编解码,浮点型数据解析
查看>>
手把手教你如何新建scrapy爬虫框架的第一个项目(下)
查看>>
前端基础15:JS作用域基础
查看>>
Linux系统相关命令
查看>>
BATJ面试必会之 Spring 篇(一)
查看>>
表驱动法
查看>>
什么是企业内训
查看>>
firefox无法显示java插件plugin
查看>>
H3C设备之OSPF DR选举
查看>>
View控件Edittext属性
查看>>