Deployment Pipeline

When the deployment of an environment is triggered, Qovery executes what we call Deployment Pipeline. It basically defines the operations shall be performed to properly deploy every service defined within your environment (build the code of service X, push the image on a registry, deploy service X on the Kubernetes cluster etc..)

A pipeline is composed of an ordered list of Deployment Stages. Each Stage has an execution order assigned within the pipeline: If a stage A has an execution order lower than stage B then B can be executed only if the execution of stage A is completed.

Each service of your environment belongs to one (and only one) Deployment Stage. This allows you to define at which moment of the deployment pipeline a service should be deployed and thus respect any service inter-dependency (e.g. your front-end needs to be started after the back-end, your db needs to be started before your back-end etc..).

Below you can find a visual example of how the pipeline looks like:

Deployment Pipeline

Deployment of a stage

When the deployment pipeline execute the deployment of a stage, the services within it will go through the Build and Deployment phases.

The Building process is managed by the Qovery CI which downloads your repository and generates the final image that will be run on your Kubernetes cluster.

The build and deploy operation of each service within a deployment stage are executed in parallel with a parallism of 4.

Example If you have 6 applications to be deployed within a stage, Qovery will:

  • build 4 applications in parallel. Once the build of one application is terminated, Qovery will start immediately another one until all the applications are built.
  • deploy 4 applications in parallel on your Kubernetes cluster. Once the deployment of one application is terminated, Qovery will start immediately another one until all the applications are deployed.

Default Pipeline Setup

By default, the deployment pipeline is constituted of 4 deployment stages with a default service assignment rule:

  • "0.DEFAULT DATABASE": any new service of type DATABASE will be added to this stage.
  • "1.DEFAULT JOB": any new service of type JOB will be added to this stage.
  • "2.DEFAULT CONTAINER": any new service of type CONTAINER will be added to this stage (application deployed from a container image).
  • "3.DEFAULT APPLICATION": any new service of type APPLICATION will be added to this stage (application deployed from a git repository).

Default Deployment Pipeline

Once the service is created, the assigned stage can be modified afterwards. See this section for more information.

Visualizing and Modifying the Pipeline

You can access and modify the pipeline configuration from the environment settings. Have a look at this section to know more.