loading image
Back to glossary

Concourse

Open-source continuous integration and deployment system based on declarative pipelines and isolated containers.

Updated on January 19, 2026

Concourse is an open-source continuous integration and deployment (CI/CD) platform distinguished by its declarative and containerized approach. Unlike traditional solutions, Concourse models pipelines as explicit dependency graphs where each task runs in an ephemeral container. This architecture guarantees reproducibility, isolation, and transparency of automation processes.

Fundamentals

  • Pipelines defined in YAML with declarative syntax and no server-side persistent state
  • Each step executes in isolated Docker containers ensuring reproducibility
  • Model based on resources (inputs/outputs) and interconnected jobs forming a DAG
  • No plugins or extensions: all logic resides in pipelines and container images

Benefits

  • Complete reproducibility: builds always run in clean and identical environments
  • Maximum visibility: graphical interface showing dependencies and real-time state
  • Horizontal scalability through stateless distributed worker architecture
  • Enhanced security via container isolation and granular credential management
  • Full Infrastructure as Code: versioned and auditable pipelines in Git

Practical Example

pipeline.yml
resources:
  - name: app-repo
    type: git
    source:
      uri: https://github.com/company/app.git
      branch: main

  - name: docker-image
    type: docker-image
    source:
      repository: company/app
      tag: latest

jobs:
  - name: test-and-build
    plan:
      - get: app-repo
        trigger: true
      - task: run-tests
        config:
          platform: linux
          image_resource:
            type: docker-image
            source: {repository: node, tag: "18"}
          inputs:
            - name: app-repo
          run:
            path: sh
            args:
              - -c
              - |
                cd app-repo
                npm install
                npm test
      - put: docker-image
        params:
          build: app-repo
          dockerfile: app-repo/Dockerfile

This pipeline monitors a Git repository, runs tests in an isolated Node.js container, then builds and publishes a Docker image if tests pass. Each step is atomic and traceable.

Implementation

  1. Deploy Concourse via docker-compose, Helm, or BOSH depending on target infrastructure
  2. Configure workers with sufficient resources for parallel container execution
  3. Define pipelines in YAML by identifying resources (git, S3, registries) and jobs
  4. Apply pipelines with fly CLI: `fly -t target set-pipeline -p name -c pipeline.yml`
  5. Configure credentials via Vault, CredHub, or integrated secret managers
  6. Monitor exposed Prometheus metrics for system observability
  7. Implement automatic worker rotation for maintenance

Pro tip

Use custom resource types to integrate specific systems (Terraform, Kubernetes, internal APIs). Create base Docker images containing your common tools to accelerate task execution. Structure complex pipelines into modular YAML files loaded via `load_var` to maintain readability.

  • fly CLI: command-line tool to manage pipelines and interact with Concourse
  • CredHub/Vault: secret managers to secure pipeline credentials
  • Prometheus/Grafana: monitoring stack to visualize performance metrics
  • Docker/containerd: container runtime for task execution
  • BOSH: deployment manager for highly available production installations
  • Terraform: to provision Concourse infrastructure as code

Concourse represents a modern approach to CI/CD that prioritizes conceptual simplicity, transparency, and reproducibility. By eliminating hidden states and containerizing each step, it provides DevOps teams with a reliable platform to automate complex workflows while maintaining complete traceability. Its declarative model naturally integrates with GitOps and Infrastructure as Code practices, enabling rigorous governance of software delivery processes.

Themoneyisalreadyonthetable.

In 1 hour, discover exactly how much you're losing and how to recover it.