---
title: "Deployment overview"
description: "Get an overview of deploying to any target with CircleCI and managing deployments with deploy markers, rollbacks, Smart Deployments, and the release agent."
platform: "Cloud, Server"
doc_version: "Server"
last_updated: "2026-10-21"
---

> For current CircleCI product defaults, deprecated patterns, and Cloud/Server differences, see [AGENTS.md](https://circleci.com/docs/AGENTS.md).
>
> For the complete documentation index and site structure, see [llms.txt](https://circleci.com/docs/llms.txt).

# Deployment overview

With CircleCI you can deploy to any target.

## Introduction

Once a software application has been developed and tested, it needs to be deployed and made available for its intended audience. With CircleCI, you can deploy to virtually any target and configure CircleCI to integrate with other services for:

*   QA and testing.
    
*   Feature management.
    
*   Deployment strategies such as canary deployment.
    

Customize your configuration to match your requirements, whether you need a fully automated process or one that requires manual approval.

## The basics of deployment

The following list outlines the core components you need to get a deployment set up:

*   **Deployment job**: To deploy your application, add a job to your `.circleci/config.yml` file and configure the job to run the steps you require.
    
    Use the **how-to guides** in this section (select how-to guides from the left-hand navigation) to manage common deployment use cases.
    
*   **Deployment parameters**: You may need to add environment variables and SSH keys to fulfill your deployment steps. Environment variables can be:
    
    *   Defined within your configuration.
        
    *   Added to the project itself through the CircleCI web app:
        
        *   Add project-level [Environment Variables](https://circleci.com/docs/guides/server/security/set-environment-variable/#set-an-environment-variable-in-a-project).
            
        *   Add project-level [SSH Keys](https://circleci.com/docs/guides/server/integration/add-ssh-key/).
            
        
    *   Added at the organization level using [Contexts](https://circleci.com/docs/guides/server/security/contexts/).
        
    
*   **Manual approval**: If your deployment strategy requires a manual approval step, you can include a hold/approve job in your workflow. For more information, see the [Workflow Orchestration](https://circleci.com/docs/guides/server/orchestrate/workflows/#holding-a-workflow-for-a-manual-approval) guide.
    
    This job will create a manual approval button visible in the CircleCI web app workflows map.
    

### Using orbs to simplify deployment

Look in the [orbs registry](https://circleci.com/developer/orbs) to find an orb for your deployment target. Orbs can help you simplify your configuration by using pre-configured jobs and commands.

[Orbs](https://circleci.com/docs/orbs/use/orb-intro/) are packages of reusable configuration. For simpler deployment pipelines, you can use orbs to achieve the results you need with minimal configuration.

Orbs are available for many common deployment targets.

For example, the [AWS CodeDeploy orb](https://circleci.com/developer/orbs/orb/circleci/aws-code-deploy) has a pre-configured `deploy` job that you can include in your configuration with the single line: `aws-code-deploy/deploy`. Orb jobs can be used once the orb has been invoked by adding the orbs stanza:

```yaml
version: 2.1

orbs:
  aws-code-deploy: circleci/aws-code-deploy@x.y
  aws-cli: circleci/aws-cli@x.z
workflows:
  deploy_application:
    jobs:
      - aws-code-deploy/deploy:
          auth:
            - aws-cli/setup
          application-name: myApplication
          bundle-bucket: myApplicationS3Bucket
          bundle-key: myS3BucketKey
          deployment-group: myDeploymentGroup
          service-role-arn: myDeploymentGroupRoleARN
```

Under the hood, this orb creates, bundles, and deploys your application using your specified parameters set under the `aws-code-deploy/deploy` job declaration.

Check out the full range of available orbs in the [Orbs Registry](https://circleci.com/developer/orbs). If the orb you need has not been created yet, consider creating your own. See the [Orb Author](https://circleci.com/docs/orbs/author/orb-author/) guides for more information.

### Using images to simplify deployment

CircleCI provides maintained Docker images (convenience images) that contain the tools required for common deployment scenarios. Convenience images provide fast spin-up times, reliability, and stability. Visit the [CircleCI Developer Hub](https://circleci.com/developer/images?imageType=docker) to learn more about each convenience image:

*   [`cimg/deploy`](https://circleci.com/developer/images/image/cimg/deploy)
    
*   [`cimg/aws`](https://circleci.com/developer/images/image/cimg/aws)
    
*   [`cimg/azure`](https://circleci.com/developer/images/image/cimg/azure)
    
*   [`cimg/gcp`](https://circleci.com/developer/images/image/cimg/gcp)