Start Building for Free
CircleCI.comAcademyBlogCommunitySupport

Concepts

today11 min read
Cloud
Server v4.x
Server v3.x
On This Page

Introduction

This guide introduces some basic concepts to help you understand how CircleCI manages your CI/CD pipelines.

Concurrency

In CircleCI, concurrency refers to utilizing multiple containers to run multiple jobs at the same time. To keep the system stable for all CircleCI customers, we implement different soft concurrency limits on each of the resource classes for different executors. If you experience queueing on your jobs, you may be hitting these limits. Customers on annual plans can request an increase to those limits at no extra charge.

See the Concurrency page for more information.

Configuration

CircleCI believes in configuration as code. Your entire CI/CD process is orchestrated through a single file called config.yml. The config.yml file is located in a folder called .circleci at the root of your project that defines the entire pipeline.

Example of a directory setup using CircleCI:

├── .circleci
│   ├── config.yml
├── README
└── all-other-project-files-and-folders

Your CircleCI configuration can be adapted to fit many different needs of your project. The following terms, sorted in order of granularity and dependence, describe the components of most common CircleCI projects:

  • Pipeline: Represents the entirety of your configuration.

  • Workflows: Responsible for orchestrating multiple jobs.

  • Jobs: Responsible for running a series of steps that perform commands.

  • Steps: Run commands (such as installing dependencies or running tests) and shell scripts to do the work required for your project.