deploiement - dudleydehenau/ScapeGame 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

Présentation du Serveur

Pour l'hébergement de notre site web, nous avons choisi un serveur VPS proposé par OVHcloud avec un abonnement à 6 € par mois. Ce choix s'explique par la configuration adéquate pour nos besoins actuels, un prix compétitif, et les garanties satisfaisantes offertes par le fournisseur.

Configuration Matérielle

Le serveur VPS sélectionné possède les caractéristiques suivantes :

  • Processeur : 1 vCore.
  • Mémoire Vive : 2 Go de RAM.
  • Stockage : 20 Go de disque SSD.
  • Connectivité : Bande passante à 100 Mbps.
  • Protection DDoS : Protection incluse.

Prix

L'abonnement mensuel pour ce serveur VPS est de 6 € TTC, un tarif très abordable pour des projets avec des besoins limités.

Garanties Fournies par le Fournisseur

  • Disponibilité : Garantie de disponibilité de 99,95 %.
  • Assistance : Support technique en ligne disponible en continu.
  • Protection des Données : Sauvegardes automatiques disponibles en option et redémarrage rapide en cas de besoin.

En optant pour ce serveur VPS, nous assurons une infrastructure fiable et économique, idéale pour des applications web à faible ou moyenne charge tout en maintenant une bonne qualité de service.

2. Choix du Serveur d'Hébergement

Présentation du Serveur

Notre infrastructure repose exclusivement sur ce serveur VPS OVH à 6 €, ce qui est suffisant pour nos besoins actuels. L'unicité de cette solution nous permet de concentrer nos ressources et nos efforts sur la gestion et l'optimisation de cet unique serveur.

3. Technique de Déploiement

Explication de la Méthodologie de Déploiement

Actuellement, le déploiement du code sur le serveur est effectué manuellement. Ce processus, bien que rudimentaire, nous permet de maintenir une certaine flexibilité et contrôle sur les mises à jour et les modifications apportées à notre site.

Étapes de Déploiement

  1. Préparation : Le code est développé et testé localement. Une fois validé, il est poussé vers un dépôt Git.
  2. Transfert de Fichiers : Les fichiers mis à jour sont transférés manuellement sur le serveur via une connexion sécurisée (SCP).
  3. Mise à Jour : Le serveur est ensuite configuré manuellement pour intégrer les nouvelles modifications. Cette étape comprend des commandes pour redémarrer les services nécessaires et vérifier que tout fonctionne correctement.

Outils Utilisés

  • Git : Gestion des versions du code.
  • SCP (Secure Copy Protocol) : Pour la connexion sécurisée au serveur et le transfert de fichiers.
  • rsync : Synchronisation manuelle des fichiers entre les environnements local et distant.

Solutions Envisagées pour l'Automatisation

Bien que nous n'ayons pas encore mis en place un déploiement automatisé, nous envisageons de configurer notre déploiement avec GitHub Actions.

  1. GitHub Actions
    • Avantages : Intégration avec GitHub, permettant d'automatiser les tests et le déploiement directement depuis le dépôt de code. Les workflows peuvent être définis en utilisant des fichiers YAML, ce qui facilite la création de pipelines de déploiement.
    • Plans Futurs : Mettre en place des workflows pour effectuer des tests automatiques et déployer le code automatiquement sur notre serveur OVH à chaque nouvelle soumission sur la branche principale.

4. Automatisation (CI/CD)

Intégration Continue (CI) et Déploiement Continu (CD)

Nous prévoyons d'automatiser nos processus de déploiement en utilisant GitHub Actions pour mettre en place une intégration continue (CI) et un déploiement continu (CD). Cette approche vise à améliorer l'efficacité de notre processus de développement et à assurer des mises à jour régulières et sans heurts de notre site web.

Intégration Continue (CI)

L'intégration continue consistera à automatiser les tests pour chaque modification apportée au code. Dès qu'une modification est poussée dans le dépôt GitHub, un workflow sera déclenché pour :

  1. Exécuter des tests unitaires et d'intégration afin de vérifier que les nouvelles modifications ne causent pas de régressions.
  2. Générer des rapports de test pour identifier et résoudre rapidement les erreurs.

Déploiement Continu (CD)

Le déploiement continu s'appuiera sur les workflows définis pour GitHub Actions pour automatiser le déploiement de nouvelles versions de l'application :

  1. Workflow de Déploiement : Un workflow spécifique sera configuré pour déployer automatiquement les modifications validées dans la branche principale vers notre serveur VPS OVH. Ce workflow utilisera SCP pour transférer les fichiers nécessaires et exécuter des scripts de déploiement sur le serveur.
  2. Tests Post-Déploiement : Une fois le déploiement terminé, des tests post-déploiement seront effectués pour s'assurer que le site fonctionne correctement en production.

Cette configuration nous permettra de réduire le temps de déploiement, d'améliorer la qualité du code et de garantir que notre site est toujours à jour avec les dernières modifications.


En conclusion, bien que nous n'ayons pas encore mis en place un déploiement automatisé, nous avons prévu de le faire en utilisant GitHub Actions pour bénéficier des avantages d'une intégration et d'un déploiement continus. Cela nous permettra de simplifier notre processus de déploiement et d'assurer une meilleure qualité de service pour notre site web.