Deployment Pipeline
Before you begin, this documentation assumes the following:
You have created an Environment and one Service (application, db or job)
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 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).
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.