Skip to content
This repository has been archived by the owner on Mar 7, 2023. It is now read-only.

Environnements

Jérémy Buget edited this page Jan 11, 2017 · 1 revision

Description des environnements

L'application est susceptible d'être exécutée dans l'un des 5 environnements suivants :

  • Development : développer l'application (local)
  • Test : exécuter les tests automatisés (local / CI)
  • Integration : environnement de type Review App lié à une feature branch
  • Staging : environnement de recette fonctionnelle / pré-production
  • Production : environnement de production
NODE_ENV URL DB Mirage
development http://localhost:4200/ SQLite3 (cf. api/db/dev.sqlite3) Activé
test - SQLite3 (cf. api/db/test.sqlite3) Activé
integration http://123-ma-story.pix.beta.gouv.fr/ (exemple) SQLite3 (cf. api/db/integration.sqlite3) Désactivé
staging http://staging.pix.beta.gouv.fr/ PostgreSQL Désactivé
production https://pix.beta.gouv.fr/ PostgreSQL Désactivé

Simuler un environnement

Pour démarrer l'application selon un environnement particulier, il faut définir la variable NODE_ENV.

Par exemple, pour démarrer localement l'application comme dans les conditions de l'Intégration :

# Dans la console dédié à PIX-API
$ NODE_ENV=integration npm start

# Dans la console dédiée à PIX-Live
$ NODE_ENV=integration npm start
# ou
$ ember s --environment integation

Remarque : pour simuler les environnements de Staging et Production, il est nécessaire d'avoir une instance de PostgreSQL accessible et de préciser la variable d'environnement DATABASE_URL.

Gestion des environnements dans Dokku

Dokku est l'outil au coeur de l'infra de la plateforme.

Nous l'utilisons notamment pour gérer PIX-API et PostgreSQL sur les différents environnements.

C'est un mixte entre Docker et Heroku permettant de mettre en place on-premise un PaaS léger et puissant.

Dokku permet de déployer une application sous différents formats :

  • en utilisant les buildpacks Heroku (mode par défaut) via git push
  • en utilisant un fichier Dockerfile
  • en passant directement par une image Docker
  • en utilisant une tarball
Application Description Création Déploiement Liens
pg-staging Base de données PostgreSQL de Staging Manuelle - api-staging, pg-admin
pg-production Base de données PostgreSQL de Production Manuelle - api-production, pg-admin
pg-admin Instance de pgAdmin (IHM d'admin de DB PostgreSQL) Manuelle -
api-staging Application Dokku contenant PIX-API en Staging Manuelle git push
api-production Application Dokku contenant PIX-API en Production Manuelle git push
123-ma-story-A Instance de PIX-API pour une feature branch donnée Auto git push
456-ma-story-B Instance de PIX-API pour une autre feature branch Auto git push

Les applications pg-staging et pg-production ont été crées grâce au plugin PostgreSQL pour Dokku.

L'application pg-admin a été créée depuis l'image Docker fenglc/pgadmin4 en suivant les indications à cette page.

Les applications api-staging et api-production ont été créées manuellement, puis attachées à leur application PG respective, via la commande :

# Attacher l'application Dokku pg-staging à celle api-staging
$ dokku postgres:link pg-staging api-staging