Basic Concepts

Organization

An Organization is the workspace where devops and developers can collaborate across many projects at once and it usually corresponds to your company. A user can have access to one or more organizations and have different roles & permissions assigned within it thanks to our RBAC system.

More information about Organization here.

Cluster

At Qovery, when we refer to Cluster, we mean Kubernetes cluster. A Kubernetes cluster is a collection of node machines that allows you to run containerized applications.

More information about Cluster here.

Managed Cluster

A Managed Cluster is a Kubernetes cluster managed by Qovery. It means that Qovery will create the cluster for you and will take care of the cluster lifecycle (creation, upgrade, deletion etc..). Zero maintenance for you.

Self-Managed Cluster

A Self-Managed Cluster is a Kubernetes cluster managed by you. It means that you have to create the cluster yourself and you have to take care of the cluster lifecycle (creation, upgrade, deletion etc..). You can install Qovery on your cluster to let Qovery manage the deployment of your applications on your cluster.

Project

A Project allows you to group together a set of services interacting between each other to serve a common purpose. For example, you can have one project to run your main application (composed by a front-end, back-end and a db) and another project to manage your internal tools.

Services can be then organized into environments so that you can have different versions of the same service running within your project (production, staging, fix for issue X etc..)

One organization can have more than one project and you can customize the access to your project thanks to our RBAC system.

More information about Project here.

Environment

An Environment allows you to group together a set of services having a specific version, usually based on a branch of your repository. For example, you can have one Production environment (all the services pointing to the main branch), one Staging environment (all services pointing to the staging branch) etc..

Your production environment runs 24/7 while your other environments may not need to run all day long. By setting a Deployment Rule on your environment you can automatically start/stop your non-production environments and thus reduce your cloud provider bill.

Environments let's you chose on which cluster your services should be deployed.

More information about Environment here.

Preview Environment (or Ephemeral Environment)

A Preview Environment is an ephemeral environment allowing you to get early feedback on your application changes before the changes are merged into production. A dedicated preview environment can be automatically created at each new PR on your repository to validate the change. The environment is automatically deleted once the PR is merged or closed.

More information about Preview Environment here.

Service

A Service is the basic unit that you can add to an environment. Each service has an associated git repository (or registry) and a commit (or image_name:tag) that will be used to deploy the service on the cluster.

Five types of services exists:

  • Application: it allows you to run your long-running workloads. We usually call them "Containers" when the source code is stored on an image registry. More information about Applications here
  • Database: it allows you to deploy a database. Qovery allows you to deploy a container and a cloud provider managed version. More information about Databases here
  • CronJob: it allows you to deploy a cronjob on your cluster and execute it based on the selected schedule. More information about Cronjob here
  • Lifecycle: it allows you to execute your code based on the events happening on your environment (Start, Stop, Delete etc..). With the right code, it can be used to seed your database when the environment is created or manage the lifecycle of any external resource (via a terraform file, pulumi code etc..). More information about Lifecycle here
  • Helm: it allows you to deploy a helm chart on your cluster. More information about Helm here

Deployment

A Deployment is the operation allowing you to gather your code and make it runs on your cluster. Qovery can pull your repository, generate a docker image and spawn the necessary resources on your clusters to make your application run. You can find more information within this section.

You can monitor the execution of the deployment via the Deployment Logs while you can monitor the execution of your application thanks to the streamed Live Logs directly from the Qovery interface.

High Level Schema

Basic Structure