Concuourse 是基于管道 pipeline 的连续事物(thing-doer)。
"管道"一词在CI中非常流行,所以更具体地谈论这个术语是很重要的;大厅的管道与其它管道明显不同。
管道(pipeline)围绕代表所有外部状态的"资源"(resources)和"与它们交互的作业job"构建。Concourse 管道表示依赖项流,类似于分布式 Makefile。管道设计为自包含,以便最大限度地减少服务器范围的配置。最大化可移植性还可以降低风险,使项目更容易从 CI 灾难中恢复。
git resource 和 s3 resource 等资源(Resources)用于表示源代码(source code)、依赖项(dependenceis)、部署(deployments)和任何其他外部状态。此接口还用于通过时间资源(time resource)对更抽象的触发器(如计划触发器 scheduled triggers 或间隔触发器 interval triggers)进行建模。
资源类型(Resource Types)被定义为管道本身的一部分,使管道更加自包含,并保持 Concourse 本身较小和通用,而无需求助于复杂的插件系统。
作业(Jobs)是要执行的获取 (get)、放置(put)和任务(task)步骤序列。这些步骤确定作业的输入和输出。工作设计为幂等和松散耦合,允许管道随着项目的需求而增长,而无需工程师在开始的时候就想到所有将要用到的。
Concourse中的所有内容都运行在容器中。任务(Tasks)不是修改工作程序来安装生成工具,而是描述自己的容器映像(通常通过注册表映像资源 registry-image resource 使用 Docker 映像)。
…What?
当然,在一开始,Concourse 的学习曲线会更陡峭,根据你的背景,可能会有很多需要学习的。该项目的核心目标是使曲线在不久后趋于平缓,从而提高生产率,减少随时间的变化。
如果这一切听起来像 哥贝尔迪古克 gobbeldigook(晦涩难懂),就是这样 - 你可能只是想继续,开始踢轮胎一点点,并使用上面作为"大图片"的快速参考作为心理模型设置。