Introduction

Qovery is the state-of-the-art deployment platform that any DevOps would build for their company. Beyond application deployment, Qovery is tailored to run production workload with maximum uptime. It is the perfect solution to make your developers autonomous in deploying their applications and keeping flexibility and control.

Qovery is the perfect product for DevOps who want to:

  • Build an internal Platform as a Service (PaaS) with outstanding experience for developers.
  • Build development, staging and production environments.
  • Make developers productive and autonomous, while keeping the control on what they do.
  • Get a production-ready infrastructure and save more than 18 months of work.

How Qovery works

Qovery is an abstraction layer on top of the most promising tools (Kubernetes, Terraform, Helm...) and cloud service providers (AWS, Digital Ocean, Scaleway...). The goal of Qovery is to provide production-ready platform layer to build on top of it.

Qovery runs on top of Kubernetes, Terraform, Helm and many other tools

Your cloud infrastructure with Qovery

Qovery needs to install a few services on your cloud account to work. Some of them are required and others optional.

Your infrastructure is completely isolated from the qovery control plane

All your applications and your data run in your cloud account. The Qovery Engine, Qovery Agent, and Kubernetes are the three main services running on your infrastructure to run your applications. The Qovery Engine and the Qovery Agent receive remote instructions from the control plane via a secured gRPC/TLS connection initiated. Qovery infrastructure and your infrastructure are completely isolated from each other. Qovery has been designed to never impact your infrastructure in case of any outage and security breach.

Qovery infrastructure services

ServiceOpen-sourceOptionalDescription
Qovery Control PlaneyesnoService to manage user authentication. authorization, and the whole Qovery business logic
Qovery APInonoAPI to programmatically interact with Qovery
Qovery Web InterfacesoonyesWeb application to interact with Qovery

Services installed on your infrastructure

ServiceOpen-sourceOptionalDescription
Qovery EngineyesnoTransactional deployment service in charge of maintaining your infrastructure and deploying applications with all the dependencies
Qovery AgentsoonnoService to forward application logs, services status and real-time metrics to the Qovery Control Plane
KubernetesyesnoProduct to run and scale containers. Qovery runs your application on your cloud managed Kubernetes
External DNSyesnoTool to configure external DNS for Kubernetes services
Cert ManageryesnoTool to provision and manage TLS certificates on Kubernetes
LokiyesyesTool to aggregate Kubernetes logs. Qovery Agent fetch logs from Loki in real-time
GrafanayesyesProduct to visualize metrics and logs from infrastructure and app services
NGINX ingressyesnoNGINX ingress controller for Kubernetes

Check out the list of services installed on your infrastructure.

Application and database deployment

Here is an example of what happen in details when you deploy a NodeJS application with a PostgreSQL database in production on AWS with Qovery.

Schema from build to scale with Qovery

StageStepQovery serviceDescription
AuthGit push receivedControl planeQovery receives your git commit via Github/Gitlab/Bitbucket webhooks
AuthCheck permissionsControl planeQovery checks permissions to proceed app deployment or not
BuildBuild containerEngineQovery builds your NodeJS app into container
BuildPush containerEngineQovery push the container into your container registry
DeployDeploy PostgreSQLEngineQovery match the PostgreSQL version with AWS RDS PostgreSQL and deploy it on your AWS account
DeployConfigure PostgreSQL networkEngineQovery configure the network of your AWS RDS PostgreSQL to make it accessible from your application
DeployCheck PostgreSQLEngineQovery checks your AWS RDS PostgreSQL is well deployed and running
DeployDeploy containerEngineQovery deploys your container on your Kubernetes cluster
DeployConfigure container networkEngineQovery configure the network of your container to make it accessible from outside
DeployLoad balancerEngineQovery deploys a load balancer and bind it to your application
DeployDNSEngineQovery assign a domain to your application
DeployTLSEngineQovery request a TLS certificate and bind it to your domain and application
DeployCheck containerEngineQovery checks your container is well deployed and accessible via internet
RunRun databaseEngineQovery monitor your AWS RDS PostgreSQL database
RunRun containerEngineQovery runs your container on Kubernetes and ensure it has the maximum uptime
RunMetricsAgentQovery watch your application and database metrics and forward them to the Qovery Control Plane
RunNotificationControl planeQovery notifies the user on the successful app and db deployment
ScaleScale containerAgentQovery scale your containers depending on the CPU and custom metrics

Integrations

Qovery lets you integrates any tool that you already have or need. There is no limitations as Qovery runs on Kubernetes and your cloud service provider. Check out our configuration section

What's next

In the next section we explain how you can manage Qovery via Terraform and our REST API.

In our configuration section you will learn how to:

  • Fine-tune every single piece (Kubernetes, Load balancer, Databases...) of your infrastructure.
  • Extend Qovery capabilities.