-
Notifications
You must be signed in to change notification settings - Fork 20
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é |
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.
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