6.a Déploiement - sean-vergauwen/tattooReactJS GitHub Wiki
Résumé coaching 6.a
+ Le groupe a pu mettre en ligne l'application développée dans son état actuel.
+ Le groupe peut expliquer ce qu'il a dû faire pour héberger et déployer, et justifier les choix.
+ Le groupe présente sur le wiki le choix qui a été posé pour héberger l'application web : fournisseur, configuration matérielle, prix, garantie, plateforme logicielle, …
+ Le groupe présente sur le wiki la configuration du serveur utilisée et la justifie.
+ Les étudiants présentent sur le wiki la manière dont le code est déployé en production : moment, étapes, outils et protocoles utilisés, …
+ Le groupe explique dans le wiki l'automatisation (CI/CD) qui aurait été mis en place.
1. Choix du serveur d'hébergement
Pour héberger notre site web utilisant la stack MERN (MongoDB, Express, React, Node.js), nous avons choisi un VPS OVH car c'était celui fourni par l'école et le plus conseillé par les professeurs. Le VPS d'OVH offre des options flexibles en termes de CPU, RAM et stockage, et dans notre cas, il est configuré avec 2 Go de RAM. Nous avons cependant rencontré quelques problèmes liés à la RAM, notamment lorsque nous tentions de lancer le Docker Compose et que le VPS cessait de fonctionner. Après avoir optimisé la configuration de Docker Compose, nous avons réussi à résoudre ces problèmes et à faire en sorte que le système se lance correctement. En résumé, OVH offre un bon équipement pour déployer un site web avec la stack MERN malgré quelques ajustements nécessaires au niveau de la configuration initiale.
2. Technique de déploiement
Pour déployer notre projet sur le serveur OVH, nous avons utilisé une approche basée sur Docker Compose. Nous avons d'abord analysé notre projet pour déterminer la meilleure façon de le déployer. Après avoir examiné différentes méthodes, nous avons conclu que Docker Compose était la solution la plus adaptée. Nous avons décortiqué notre projet pour créer des conteneurs pouvant être hébergés sur le VPS. Notre Docker Compose définit trois services principaux : MongoDB pour la base de données, le backend Node.js et le frontend React.
Le déploiement implique plusieurs étapes. Tout d'abord, nous construisons les images Docker pour chaque service à l'aide des fichiers Dockerfile fournis dans les répertoires correspondants. Ensuite, nous lançons les conteneurs en utilisant Docker Compose. Nous avons rencontré des difficultés liées à la RAM du VPS lors du déploiement initial, car le serveur manquait d'espace mémoire pour exécuter tous les conteneurs simultanément. Pour résoudre ce problème, nous avons optimisé notre configuration pour libérer de l'espace mémoire et nous assurer que seuls les conteneurs nécessaires sont en cours d'exécution.
Nous n'avons pas mis en place d'automatisation pour le déploiement. Chaque mise à jour du code nécessite une intervention manuelle pour reconstruire les images Docker et redéployer les conteneurs. Bien que l'automatisation aurait pu simplifier ce processus, nous avons choisi de prioriser d'autres aspects du projet en raison de contraintes de temps et de ressources. En résumé, notre méthode de déploiement repose sur Docker Compose, avec une attention particulière portée à l'optimisation de la gestion des ressources sur le serveur.