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, representing one of the elements of your tech stack (front-end, database etc..).

Qovery provides five "basic" services that can be combined together to deploy any tech stack:

  • Application: it allows you to run your long-running workloads on your Kubernetes cluster. It can be deployed from a git repository or as a container from an image registry. More information about Applications here
  • Database: it allows you to deploy a database. Qovery allows you to deploy a database as a container on your Kubernetes cluster (for test/dev) and as a cloud provider managed version (RDS AWS etc..). More information about Databases here
  • CronJob: it allows you to deploy a cronjob on your Kuberentes cluster and execute it based on the selected schedule. More information about Cronjob here
  • Lifecycle: it allows you to execute code based on the events happening on your environment (Deploy, Stop, Delete etc..). It is enough flexible to cover multiple use cases: seed your database when the environment is created, 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 Kubernetes cluster. More information about Helm here

On top of these basic services, Qovery provides a pre-set of configuration to simplify the deployment of your tech stack.

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