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

本文共 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://iwnax.baihongyu.com/

你可能感兴趣的文章
安装配置discuz
查看>>
线程互互斥锁
查看>>
KVM虚拟机&openVSwitch杂记(1)
查看>>
win7下ActiveX注册错误0x80040200解决参考
查看>>
《.NET应用架构设计:原则、模式与实践》新书博客--试读-1.1-正确认识软件架构...
查看>>
2013 Linux领域年终盘点
查看>>
linux学习之查看程序端口占用情况
查看>>
相逢在栀枝花开的季节
查看>>
linux下git自动补全命令
查看>>
Ubuntu14.04LTS更新源
查看>>
Linux报“Unknown HZ value! (288) Assume 100”错误
查看>>
mysql多实例实例化数据库
查看>>
我的友情链接
查看>>
golang xml和json的解析与生成
查看>>
javascript 操作DOM元素样式
查看>>
Android 内存管理 &Memory Leak & OOM 分析
查看>>
【查找算法】基于存储的查找算法(哈希查找)
查看>>
JavaWeb网上图书商城完整项目--day02-10.提交注册表单功能之页面实现
查看>>
做程序开发的你如果经常用Redis,这些问题肯定会遇到
查看>>
006android初级篇之jni数据类型映射
查看>>