State of the Art Continuous Deployment Platform

for pragmatic companies

What is                     ?

Qovery is the deployment platform

you would build for your company

But live in days, not months

How                      works ?

Github, Gitlab, Bitbucket

Developer

Qovery

AWS, GCP, Azure,...

Web and CLI

  • Deploy containerized apps with databases

  • On AWS, Digital Ocean, GCP, and Azure

  • Integrates into Github, Gitlab, Bitbucket

How                      works ?

Why                     ?

  
  $ git checkout master

  $ git checkout -b staging
  $ git push -u origin staging
  # staging environment created

  $ git checkout -b feat_1
  $ git push -u origin feat_1
  # feat_1 environment created
  
  • Designed for teams of developers

Why                     ?

  • Smart cost optimization

  • Live in days, not months

FOR DEVELOPER

For developer | Two interfaces

# CLI available on MacOS, Windows, Linux

# MacOS
$ brew install qovery-cli

# Linux
$ curl -s https://get.qovery.com | sudo bash

# Windows
$ scoop install qovery-cli

CLI

WEB

# create a directory and move into it
$ mkdir my-backend && cd my-backend

# Github, Bitbucket, Gitlab seamless authentication
$ qovery auth
Opening your browser, waiting for your authentication...
Authentication successful!

# Generate the .qovery.yml and the Dockerfile from the Qovery node template
$ qovery init -t node-postgresql

# Git commit and push your code
$ git add --all
$ git commit -m "first commit"
$ git push -u origin master

# Your backend application with PostgreSQL is live!

For developer | Git commit, push, your app is deployed

For developer | live deployment

$ qovery status

  BRANCH NAME  | STATUS  | ENDPOINTS           | APPLICATIONS    | DATABASES
  master       | running | https://api.tld.com | hasura, angular | my-psql-db
               |         | https://tld.com     |                 |

  APPLICATION NAME | STATUS  | DATABASES
  hasura           | running | my-psql-db
  angular          | running |

  DATABASE NAME | STATUS  | TYPE       | VERSION | ENDPOINT | PORT     | USERNAME | PASSWORD | APPLICATIONS
  my-psql-db    | running | POSTGRESQL | 11      | <hidden> | <hidden> | <hidden> | <hidden> | hasura

For developer | configuration files


  application:
    name: hasura
    project: MyProjectName
    cloud_region: aws/us-east-2
  databases:
  - type: postgresql
    version: 11
    name: my-psql-db
  routers:
  - name: main
    custom_domains:
    - branch: master
      domain: api.tld.com
    - branch: dev
      domain: api-dev.tld.com
    routes:
    - application_name: hasura
      paths:
      - /*

  FROM node:13-alpine

  RUN mkdir -p /usr/src/app

  WORKDIR /usr/src/app

  COPY . .
  RUN npm install

  EXPOSE 3000
  CMD node ./bin/www

.qovery.yml

Dockerfile

For developer | real time logs

$ qovery log

GET / 200 324.662 ms - 170
GET /stylesheets/style.css 200 3.253 ms - 117
GET /favicon.ico 404 15.330 ms - 913
GET / 200 300.024 ms - 170
GET /stylesheets/style.css 200 3.269 ms - 117
GET /robots.txt 404 16.915 ms - 913
GET / 200 8.948 ms - 170
GET / 200 8.403 ms - 170
GET /stylesheets/style.css 200 0.582 ms - 117
GET /robots.txt 404 292.889 ms - 913
GET / 200 13.681 ms - 170
GET / 200 1252.584 ms - 170
GET / 200 14.553 ms - 170
GET /stylesheets/style.css 200 3.327 ms - 117
GET /favicon.ico 404 11.648 ms - 913
GET / 200 8.678 ms - 170
GET /robots.txt 404 10.851 ms - 913

For developer | contextual environment variables

$ qovery app env list

  SCOPE       | KEY                                                                      | VALUE
  BUILT_IN    | QOVERY_BRANCH_NAME                                                       | master
  BUILT_IN    | QOVERY_IS_PRODUCTION                                                     | true
  BUILT_IN    | QOVERY_APPLICATION_SIMPLE_EXAMPLE_NODE_WITH_POSTGRESQL_HOSTNAME          | <hidden>
  BUILT_IN    | QOVERY_DATABASE_MY_POSTGRESQL_3498225_DATABASE                           | postgres
  BUILT_IN    | QOVERY_DATABASE_MY_POSTGRESQL_3498225_PASSWORD                           | <hidden>
  BUILT_IN    | QOVERY_DATABASE_MY_POSTGRESQL_3498225_USERNAME                           | <hidden>
  BUILT_IN    | QOVERY_DATABASE_MY_POSTGRESQL_3498225_PORT                               | <hidden>
  BUILT_IN    | QOVERY_DATABASE_MY_POSTGRESQL_3498225_FQDN                               | <hidden>
  BUILT_IN    | QOVERY_DATABASE_MY_POSTGRESQL_3498225_HOST                               | <hidden>
  BUILT_IN    | QOVERY_DATABASE_MY_POSTGRESQL_3498225_CONNECTION_URI_WITHOUT_CREDENTIALS | <hidden>
  BUILT_IN    | QOVERY_DATABASE_MY_POSTGRESQL_3498225_CONNECTION_URI                     | <hidden>
  BUILT_IN    | QOVERY_DATABASE_MY_POSTGRESQL_3498225_VERSION                            | 11.5
  BUILT_IN    | QOVERY_DATABASE_MY_POSTGRESQL_3498225_TYPE                               | POSTGRESQL
  BUILT_IN    | QOVERY_DATABASE_MY_POSTGRESQL_3498225_NAME                               | my-postgresql-3498225
  ENVIRONMENT | x                                                                        | y
  ENVIRONMENT | z                                                                        | c
  APPLICATION | HOST                                                                     | <hidden>
  APPLICATION | TOTO_1                                                                   | v1
  APPLICATION | TOTO_2                                                                   | v2
  APPLICATION | XXX                                                                      | yyy
  APPLICATION | TOTO_3                                                                   | v2

FOR DEVOPS

For DevOps | Two interfaces

# CLI available on MacOS, Windows, Linux

# MacOS
$ brew install qovery-cli

# Linux
$ curl -s https://get.qovery.com | sudo bash

# Windows
$ scoop install qovery-cli

CLI

WEB

For DevOps | Plug your own Cloud account

For DevOps | Define your Kubernetes cluster

For DevOps | Plug your own CI (optional)

For DevOps | Plug your own container registry (optional)

For DevOps | Plug your own monitoring service (optional)

For DevOps | Define your rules 1/2

For DevOps | Define your rules 2/2

For DevOps | Fast rollback

For DevOps | Go beyond default configuration

Beyond application deployment

Beyond application deployment | Cost optimization

TO CONCLUDE 👨‍🏫

THANKS 👏

QUESTIONS?

e-mail: romaric@qovery.com
web: qovery.com
twitter: @rophilogene - @Qovery_

Qovery - The fastest way to deploy your app in the Cloud

By Romaric Philogène

Qovery - The fastest way to deploy your app in the Cloud

  • 199