Concourse is an open-source continuous integration system built on a deliberately narrow set of ideas. There are no plugins, no jobs configured through a web form, and no mutable state on a build machine. A pipeline is a YAML document that you push to the server with the fly CLI, and everything the pipeline touches is either a resource — an external, versioned thing such as a Git repository, an S3 object or a container image — or a task, which is a container with declared inputs, declared outputs and a command to run.
That design produces two properties most CI systems cannot offer. The first is reproducibility: because every task declares its own image and its own inputs, a build cannot accidentally depend on something a previous build left behind on the worker. The second is the passed constraint, which is Concourse's genuinely distinctive feature. When a job says it wants a version of a resource that has passed through an earlier job, Concourse tracks version propagation across the whole pipeline graph, so the artifact you deploy is provably the same one that was tested rather than a rebuild that happens to share a commit.
Architecturally Concourse is small: a web node running the ATC scheduler, API and UI, a TSA gateway that workers register through over SSH, a fleet of stateless workers running containers, and PostgreSQL holding all the state that matters. Workers are cattle — drain one and rebuild it. Credentials never live in the pipeline file; they are interpolated at runtime from Vault, CredHub, AWS Secrets Manager or Kubernetes secrets. Teams provide multi-tenancy with role-based access, and the set_pipeline step lets pipelines configure themselves from source control.
Why this skill matters now
Concourse solves a problem that becomes acute at scale: CI estates that drift because build machines accumulate state and configuration lives in a database rather than in Git. Once you have hundreds of pipelines, the ability to delete every worker and rebuild the whole system from YAML and a Postgres backup stops being an aesthetic preference and becomes an operational requirement.
It is also the system of choice where release provenance is scrutinised. Regulated platform teams, infrastructure providers and anyone shipping software other people run in production need to demonstrate that the binary going to production is the exact version that passed the security scan and the integration suite. The passed constraint answers that directly, in a way that a pipeline built from independent jobs sharing a workspace does not.
The learning curve is the honest reason training is bought. Concourse asks engineers to think in versioned resources and immutable containers rather than build steps on a machine, and teams that approach it as "YAML Jenkins" produce pipelines that fight the tool. The gap between a working pipeline and an idiomatic one is large, and it shows up as slow builds, custom resource types that should never have been written, and credentials pasted into the pipeline file.