Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Git, GitLab et déploiement

Avatar for ScullWM ScullWM
March 21, 2014

Git, GitLab et déploiement

Comment la mise en place de git avec gitlab et un script de déploiement réduit les erreurs humaines, facilite le travail des développeurs et fais gagner de l'argent à l'entreprise!

Avatar for ScullWM

ScullWM

March 21, 2014

More Decks by ScullWM

Other Decks in Technology

Transcript

  1. GIT

  2. Git 3 Systèmes distincts: 1. Versionning git d’un projet 2.

    Utilisation & sauvegarde des projets avec le serveur dépot/gitlab 3. Déploiement automatique
  3. Versionning git d’un projet Logiciel de gestion de versions décentralisé.

    Gestion des branches Résolutions des conflits Etc… Mise à jour de manière “incrémentale” Gain en espace de stockage Travail collaboratif entre plusieurs devs Possibilité de rollback (retour en arriere de version)
  4. Utilisation & sauvegarde des projets avec le serveur dépot/gitlab Sauvegarde

    des sources sur un serveur distant Outils de navigation suivant la version du projet Statistiques sur la composition du projet Visualisation des branches et fusions Outils de gestion de tickets par projet Wiki/doc disponible par projet Gestion/partage de snippets (bout de code) Révision de code collaborative Un vrai outil de travail collaboratif! Suivi visuel du code produit!
  5. Déploiement automatique Mise à jour manuelle: Je cherche sur quel

    serveur est hébergé le projet Je cherche les accés du serveur sur keepass (sic) Je me connecte en FTP dessus Je cherche l’emplacement du site sur le serveur (si c’est pas le bon, retour step1) Je recherche manuellement les fichiers modifiés depuis la dernière MAJ Je copie mes fichiers modifiés dans les bons répertoires *Je met à jours les dépendances *Je vide les répertoires de cache *Je vérifie les droits *Je regénère la doc technique Inconvénients: Temps de recherches des informations X logiciels différents à utiliser Manipulations humaines nombreuses Risque d’oublis, d’erreurs etc... Travail artisanal / Fait main 5-30 minutes à chaque déploiement
  6. Déploiement automatique Déploiement automatique par GIT: Je tape “git push

    origin master” dans mon shell, entrée ... C’est déjà fini... Avantages: Git pousse seulement les fichiers modifiés (en GZIP) Le “patch” ne fait que quelques kilos Intervention/manipulation humaine limité à son minimum Déploiement multi-serveurs Lancement de scripts post-déploiement en fonction de la branche Plus de mots de passe à chercher, plus de risque d’oubli, pas d’erreur. 5-30 SECONDES à chaque déploiement Industrialisation du process
  7. Déploiement automatique - Configuration config.json { "projet": { "path": "/var/www/www.projet.web",

    "limit": "master" }, "projet2": { "path": "/var/www/www.projet2.web", "limit": "master" } } On définit l’url http://www.backend.local/deploy.php dans le webhook du projet dans gitlab: 5min Sur le serveur de destination, dans config.json on définit ou doit aller le projet : 5min
  8. Git Résumé: Avant: Déploiement en 5-30 min Risque d’erreur Aprés:

    Déploiement en 5-30 sec Risque minimum Multi-serveur