-
Notifications
You must be signed in to change notification settings - Fork 0
Déploiement
Le déploiement continu et automatisé est une pratique essentielle dans le développement logiciel moderne. Il vise à automatiser le processus de déploiement des applications, ce qui permet de réduire les erreurs humaines, d'accélérer le déploiement des nouvelles fonctionnalités et de garantir la cohérence de l'environnement de production.
Le déploiement continu et automatisé présente plusieurs avantages :
-
Rapidité : En automatisant le processus de déploiement, les nouvelles fonctionnalités peuvent être mises en production plus rapidement, ce qui réduit le temps nécessaire pour livrer de la valeur aux utilisateurs.
-
Fiabilité : En réduisant la dépendance aux interventions manuelles, le déploiement automatisé réduit les risques d'erreur humaine et garantit une mise en production plus fiable et stable.
-
Répétabilité : Les déploiements automatisés garantissent que chaque version de l'application est déployée de la même manière, ce qui facilite la reproduction des environnements et la résolution des problèmes.
-
Amélioration continue : En automatisant le processus de déploiement, les équipes peuvent se concentrer sur l'amélioration continue de l'application plutôt que sur les tâches manuelles et répétitives liées au déploiement.
Capistrano est un outil populaire utilisé pour automatiser le déploiement d'applications web. Voici les étapes principales du processus de déploiement avec Capistrano :
-
Préparation du serveur : Capistrano se connecte au serveur de production et prépare l'environnement pour le déploiement en installant les dépendances nécessaires et en configurant les permissions.
-
Clonage du dépôt : Capistrano clone le dépôt Git de l'application sur le serveur de production, en utilisant la branche spécifiée dans la configuration (dans notre cas, la branche
main
). -
Installation des dépendances : Capistrano installe les dépendances de l'application, telles que les packages Python définis dans le fichier
requirements.txt
et Sass qui est un préprocesseur CSS qui étend les fonctionnalités de CSS pour VueJs. -
Configuration de l'application : Capistrano configure l'application en créant les liens symboliques vers les fichiers de configuration spécifiques à l'environnement (comme le fichier
.env
). -
Construction de l'application Vue.js : Si l'application utilise Vue.js, Capistrano construit l'application en exécutant les commandes nécessaires pour installer les dépendances et construire les fichiers statiques.
-
Redémarrage du serveur Gunicorn : Capistrano redémarre le serveur Gunicorn pour charger la nouvelle version de l'application. Pour ce faire, nous avons utilisé le script suivant qui kill tous les process de Gunicorn et qui le restart juste après, ce qui permet de forcer son redémarrage.
# Trouver les ID des processus Gunicorn
PIDS=$(pgrep gunicorn)
# Si des processus Gunicorn sont en cours d'ex cution
if [ -n "$PIDS" ]; then
# Tuer les processus Gunicorn
kill -9 $PIDS
fi
sudo systemctl restart gunicorn
echo "Gunicorn restart done."
-
Migration de la base de données : Capistrano exécute les migrations de base de données pour mettre à jour le schéma de la base de données avec les changements éventuels dans le code.
-
Collecte des fichiers statiques : Capistrano collecte les fichiers statiques de l'application (comme les fichiers CSS, JavaScript et les fichiers d'images) et les copie dans un répertoire accessible par le serveur web.
Grâce à Capistrano, le déploiement a pu être entièrement automatisé, ce qui nous a permis de nous concentrer sur l'écriture de code sans avoir à se soucier des détails techniques du déploiement en production durant tout le projet.