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.
At Qovery, when we refer to Clusters, we mean Kubernetes clusters. A Kubernetes cluster is a collection of node machines that allows you to run containerized applications.
Qovery creates and manage for you clusters on your cloud account, more than one cluster can be created to match your use case (production, staging, dev etc..).
A running cluster is necessary to deploy your application with Qovery.
More information about Cluster here.
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.
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.
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.
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.
Four type 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
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 monitor the execution of the deployment via the Deployment Logs while you can monitor the execution of your application thanks to the streamed Service logs directly from the Qovery interface.