Deploy complex application, seamlessly

Our beliefs

  • Any developer should be able to deploy their application

  • Whatever his technical skills

  • No matter the language and framework used

Obviously... Qovery !

Deploy an application with PostgreSQL | Qovery

$ pwd
~/my-nodejs-project 

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

# Wizard to generate .qovery.yml
$ qovery init

# Git commit and push your code
$ git add .qovery.yml
$ git commit -m "add .qovery.yml file"
$ git push -u origin master

# App deployed!

Deploy an application with PostgreSQL | Qovery

$ qovery status

  BRANCH NAME  | STATUS  | ENDPOINTS                      | APPLICATIONS | DATABASES | BROKERS | STORAGE
  master       | running | https://xxx-main-gtw.qovery.io | 1            | 1         | 0       | 0

  APPLICATION NAME | STATUS  | ENDPOINT                      | DATABASES | BROKERS | STORAGE
  backend-api      | running | https://xxx-yyy-app.qovery.io | 1         | 0       | 0

  DATABASE NAME | STATUS  | TYPE       | VERSION | ENDPOINT | PORT     | USERNAME | PASSWORD | APPLICATIONS
  my-pql-db     | running | POSTGRESQL | 11.5    | <hidden> | <hidden> | <hidden> | <hidden> | backend-api
  application:
    name: backend-api
    project: my-nodejs-project
    cloud_region: aws/eu-west-3
    publicly_accessible: true
  # required databases
  databases:
  - type: postgresql
    version: "11.5"
    name: my-pql
  # one endpoint can target multiple applications
  # here there is only one
  routers:
  - name: main
    routes:
    - application_name: backend-api
      paths:
      - /*
  FROM node:13-alpine

  # copy source to docker image
  COPY . .
  
  # download dependencies
  RUN npm install
  
  # application listen on port 3000
  EXPOSE 3000
  
  # run node
  CMD node ./bin/www

Mandatory files | Qovery

.qovery.yml

Dockerfile

//...

// PostgreSQL
const pool = new Pool({
    connectionString: process.env.QOVERY_DATABASE_MY_PQL_CONNECTION_URI
});

// simple common NodeJS app
app.get('/', function (req, res, next) {
    //...
});

app.get('/users', function (req, res, next) {
    //...
});

Connect to a database | Qovery

Use environment variable !

Support most popular databases | Qovery

  • PostgreSQL
  • MySQL
  • MongoDB
  • Elasticsearch
  • Redis
  • Memcached
  • Cassandra
  application:
    name: backend-api
    project: my-nodejs-project
    cloud_region: aws/eu-west-3
    publicly_accessible: true
  databases:
  - type: postgresql
    version: "11.5"
    name: my-pql
  - type: redis
    version: "5.0"
    name: my-redis
  routers:
  - name: main
    routes:
    - application_name: backend-api
      paths:
      - /*

.qovery.yml

AWS

Designed for microservices | Qovery

Better teamwork with isolated environments | Qovery

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

Traffic mirroring with ease | Qovery

DEMO

Qovery for Business

Premium features for

business expectation

Premium features | Qovery for Business

- Customer Cloud account

- DevOps supervision

- Environment switch on-off scheduling

 

And Obviously...

Web interface | Qovery for Business

APPLAUSE 👏

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

Qovery @ Ekwateur

By Romaric Philogène