- Date : 2023-06-26
- Personnes impliquées : Mathieu Marchois (auteur principal), Florimond Manca (relecture technique), équipe DiaLog (relecture et commentaires)
- Statut : ACCEPTÉ
Dans le cadre du projet DiaLog, nous avons mis en place une politique de déploiement continu, ce qui implique une mise en production automatique une fois une branche mergée sur main. Ce process peut être effectué plusieurs fois par jour.
Les utilisateurs de la plateforme utilisent des sessions pour pouvoir se connecter. Celles-ci sont gérées nativement par PHP. La conséquence de la mise en place de déploiement continu est que les utilisateurs se retrouvent déconnectés à chaque mise en production, car les conteneurs de Scalingo (et donc les sessions) sont détruits puis recréés.
Nous utiliserons Redis pour le stockage des sessions utilisateurs.
Site web : https://redis.io
Description
Redis est un système de stockage de données clé-valeur en mémoire, open source et rapide.
Avantages
- Les données résident en mémoire, ce qui permet un accès aux données à faible latence et à haut débit
- Haute disponibilité
- Optimisé pour le stockage des sessions
- Symfony a une intégration native avec Redis pour le stockage des sessions
- Pourra être utilisé dans d'autres contextes grâce à d'autres intégrations Symfony : messagerie asynchrone, cache applicatif...
Inconvénients
- Ajout d'une technologie supplémentaire au projet
Site web : https://www.postgresql.org/
Description
PostgreSQL est un système de gestion de base de données relationnelle qu'on utilise déjà sur DiaLog.
Avantages
- Technologie déjà utilisée sur DiaLog
- Symfony a une intégration native avec PostgreSQL pour le stockage des sessions
- Pourrait aussi être utilisé pour de la messagerie asynchrone performante via l'intégration Symfony reposant sur PostgreSQL LISTEN/NOTIFY
Inconvénients
- Ne peut pas être utilisé pour du cache, contrairement à Redis
- Moins performant que Redis pour du stockage de session (cas d'usage clé-valeur) (voir discussion SO (2012))