Passer au contenu principal

Git Flow vs Trunk-Based pour CI/CD

Explorez les différences entre Git Flow et le développement basé sur le tronc pour des workflows CI/CD efficaces, mettant en évidence leurs forces et leurs faiblesses.

Martin Donadieu

Martin Donadieu

Spécialiste du contenu

Git Flow vs Trunk-Based pour CI/CD

Choisir entre Git Flow et le développement de tronc (TBD) peut avoir un impact significatif sur votre flux de travail CI/CD. Voici un aperçu rapide :

  • Git Flow : Idéal pour les environnements contrôlés par version. Il utilise plusieurs branches comme main, develop, feature, release, et . C'est parfait pour les grandes équipes, les cycles de mise à jour lents et les processus de test qualité stricts. hotfixDéveloppement de Tronc
  • : Se concentre sur une seule branche principale avec des branches de fonctionnalités à vie courte. Conçu pour les équipes plus petites, les mises à jour rapides et les tests automatisés solides.Comparaison Rapide :

Aspect

Git FlowDéveloppement de TroncComplexité des Branches
__CAPGO_KEEP_0__Plusieurs branches à long termeUne branche unique, des branches à court terme
Rythme de mise en productionMises en production planifiéesDéploiement continu
Taille de l'équipeÉquipes importantesPetites à moyennes équipes
TestTest à la fin du cycleTest automatique
Risque de déploiementInférieur avec des mises en production étaléesSupérieur avec des mises à jour fréquentes
AnnulerPlus lentPlus rapide

Point clé: Utilisez Git Flow pour des workflows structurés et plus lents, et TBD pour la vitesse et la flexibilité. Les deux nécessitent des pipelines CI/CD solides pour réussir.

29 - GitFlow vs. Développement basé sur le tronc : Gestion …

Git Flow Bases du workflow

Git Flow

Git Flow organise la mise au point en utilisant cinq types de branches : __CAPGO_KEEP_0__, __CAPGO_KEEP_0__, __CAPGO_KEEP_0__, __CAPGO_KEEP_0____CAPGO_KEEP_0__ et__CAPGO_KEEP_0__

. Cette structure aide à gérer les versions et le développement parallèle de manière efficace.

Structure de branches de Git FlowType de brancheBut
PrincipalContient des code prêts à la productionN/A
DéveloppeIntègre des fonctionnalités ; sert de base pour les branches de fonctionnalitésN/A
FonctionnalitéUtilisé pour la construction d'individualités de fonctionnalités ; créé à partir de développedéveloppe
VersionPrépare à la version finale et à la mise en test ; créé à partir de développe et de principalprincipal & développe
CorrectifRésout les problèmes de production rapidement ; créé à partir de mainmain & develop

Avantages du flux Git

  • Permet de développer plusieurs fonctionnalités en même temps sans causer de conflits.
  • Les branches de version fournissent un espace dédié pour la préparation de la version finale et le test final, tout en gardant la branch develop ouverte pour les tâches en cours.
  • Les branches de correctif facilitent la résolution des problèmes de production rapidement sans interrompre les autres tâches de développement. Inconvénients du flux Git

Complexité de la gestion des branches

  • Complexité de la gestion des branches: Gestion de plusieurs branches actives peut rendre la fusion plus difficile.
  • Déploiement Ralenti: Le processus de publication formelle peut ralentir les déploiements par rapport à des workflows plus simples.
  • Entretien Augmenté: Chaque branche nécessite sa propre configuration de pipeline, ce qui ajoute au fardeau d'entretien.

Ce flux de travail fonctionne le mieux pour les projets qui nécessitent un contrôle de version strict, plusieurs pistes de publication ou une conformité aux réglementations. Nous allons explorer ensuite comment cela se compare à l'approche simplifiée du développement basé sur le tronc.

Développement Basé sur le Tronc

Le développement basé sur le tronc (TBD) tourne autour d'une seule branche principale, souvent appelée le tronc ou la branche principale. Cette approche s'aligne étroitement sur les pratiques DevOps et l'intégration continue.

Structure de la Branche du Développement Basé sur le Tronc

Dans un workflow TBD typique, vous rencontrerez ces types de branches :

Type de BrancheButDurée de vie
Tronc/MainBrancher central avec code prêt pour la productionPermanent
Branches de fonctionnalitésBranches temporaires pour des modifications individuellesCourt terme
Branches de versionUtilisé pour les dernières retouches avant une mise en productionTemporaire

Les développeurs intègrent régulièrement de petites modifications incrémentales dans le tronc de développement - souvent plusieurs fois par jour. Cela encourage les tests continus et aide à résoudre les conflits rapidement.

Avantages du Tronc de Développement

TBD apporte plusieurs avantages aux équipes travaillant avec CI/CD et DevOps :

  • Moins de conflits de fusion : Les mergers réguliers gardent les conflits sous contrôle.
  • Un feedback plus rapide : Les builds automatisés s'exécutent avec chaque fusion, détectant les bogues tôt.
  • Des pipelines plus simples : Une seule branche réduit la complexité des ensembles CI/CD.
  • Une meilleure collaboration d'équipe : Un tronc partagé garantit que tout le monde reste aligné.

Cette structure crée un flux de travail éclairé, préparant la scène pour une comparaison avec Git Flow dans la prochaine section.

Limites du Tronc Basé sur le Développement

Même si TBD a ses forces, il vient également avec des défis que les équipes doivent relever :

DéfiImpactComment y faire face
Code StabilitéRisque de modifications de rupture affectant la branche principaleUtiliser des tests automatisés solides
Coordination de l'équipeLe travail en chevauchant peut provoquer des perturbationsSe fier aux drapeaux de fonctionnalité et aux commits fréquents et petits
Courbe d'apprentissagePasser d'une branche à vie longueProposer une formation et introduire progressivement
Problèmes d'échelleLes mergers fréquents peuvent submerger de grandes équipesImposer des examens approfondis code

Le succès de TBD nécessite des tests automatisés solides et une communication ouverte au sein de l'équipe.

Git Flow vs. Trunk-Based: Comparaison directe

Voici comment Git Flow et le développement basé sur le tronc se comparent dans les domaines clés :

Tableau de comparaison des fonctionnalités

AspectGit FlowDéveloppement basé sur le tronc
Complexité des branchesPlusieurs branches longuesBranch principal unique avec des branches à durée de vie courte
Fréquence de mise en productionLancements planifiésDéploiement continu
Taille de l'équipeConçu pour les équipes plus importantesMieux adapté pour les équipes plus petites
Code Processus de revueRevue formelle lors des mergers de branchesRevue continue des petites modifications fréquentes
Exigences de testConcentration sur les tests de fin de cycleFort grande sur les tests automatisés
Courbe d'apprentissagePlus complexe en raison de plusieurs branchesFlux de travail plus simple, mais nécessite des tests solides
Risque de déploiementMoindre risque avec des lancements étalésPlus grand risque avec des mises à jour fréquentes
Temps de récupérationProcédures de reprise plus lentesCapacités de reversion plus rapides

Quand utiliser chaque flux de travail

Git Flow est idéal pour les projets à l'échelle de l'entreprise qui nécessitent des sorties structurées et versionnées. C'est un bon choix pour les équipes gérant plusieurs versions prises en charge et des projets avec des besoins de QA ou de conformité formels.

Développement Basé sur le Tronc fonctionne le mieux pour les équipes et les projets qui donnent la priorité à la vitesse et à la flexibilité, comme :

  • Les plateformes SaaS nécessitant des mises à jour rapides
  • Les équipes avec des pipelines CI/CD solides
  • Les projets soutenus par des tests automatisés fiables
  • Les workflows de déploiement continu ou des mises à jour fréquentes
  • Les projets d'applications mobiles nécessitant des mises à jour régulières

Certaines équipes combinent même les deux méthodes : en utilisant le Développement Basé sur le Tronc pour les services de base et Git Flow pour les projets avec des trajectoires de sortie formelles.

Prochainement : Comment configurer les pipelines CI/CD pour l'une ou l'autre approche.

Configuration du Pipeline CI/CD

Configuration du Pipeline CI/CD Git Flow

  • Branch de Développement de la Chaîne d'Intégration/Continu: Exécute les tests unitaires, les tests d'intégration, les code contrôles de qualité, la vérification de la construction et la mise en ligne dans l'environnement de développement.
  • Branch de Lancement de la Chaîne d'Intégration/Continu: Exécute l'ensemble du test, les scans de sécurité, construit un candidat de version de lancement et déploie vers l'environnement de pré-production.
  • Branch Principale de la Chaîne d'Intégration/Continu: Effectue des tests de validation, gère la version, crée la construction de production, déploie vers la production et étiquette la version.

Configuration de la Chaîne d'Intégration/Continu basée sur le Tronc

  • Branch de Fonctionnalité de la Chaîne d'Intégration/Continu: Se concentre sur les tests unitaires rapides, les code contrôles de style, la vérification de la construction et la mise en ligne dans un environnement de prévisualisation.
  • Branch Principale de la Chaîne d'Intégration/Continu: Couvre les tests automatisés approfondis, les scans de sécurité, la création de la construction de production, le déploiement progressif et les fonctionnalités de retrait automatique.

Capgo Intégration CI/CD

Capgo Interface de tableau de bord d'actualisation en direct

Pour ajouter des mises à jour en temps réel sur le réseau à l'une ou l'autre configuration CI/CD, Capgo peut être intégré de manière fluide :

Capgo fonctionne avec GitHub Actions, GitLab CI, et Jenkins pour activer les mises à jour en direct, les déploiements étalés et les retours rapides dans les flux de travail Git Flow et Trunk-Based. Il répond aux exigences d'Apple et Google tout en offrant une prise en charge pour les déploiements cloud et auto-hébergés [1].

Résumé et recommandations

Choisissez votre flux de travail en fonction du niveau de maturité CI/CD et de la taille de votre équipe en utilisant le tableau ci-dessous :

ScénarioFlux GitDéveloppement basé sur la branche principale
Taille de l'équipe50+ développeursMoins de 50 développeurs
Fréquence de mise en productionHebdomadaire ou mensuelJournalier ou plusieurs fois par jour
Tests et QACycles de QA traditionnelsFocus sur les tests automatisés
__CAPGO_KEEP_0__Multi-version, traditionnelCloud-native, conteneurisé
Tolérance au risqueConseil de mise en œuvre sécuriséApproche progressive, feedback rapide
  • Commencez par le développement de tronc en équipe plus petite, puis étendez-le à des groupes plus grands. Assurez-vous que votre pipeline CI/CD est entièrement automatisé avant de passer à l'étape suivante.
  • Maintenez des revues cohérentes code et utilisez des interrupteurs de fonction dans les deux workflows. Alignez les configurations de votre pipeline avec le flux de travail que vous sélectionnez.

Certains équipes peuvent mélanger ces approches - en utilisant Git Flow pour les mises à jour majeures tout en exploitant le développement de tronc pour la livraison de fonctionnalités. Quelle que soit la voie que vous prenez, le succès dépend de l'intégration de CI/CD, de l'automatisation des tests et de garder l'équipe sur la même page.

Mises à Jour en Temps Réel pour les Applications Capacitor

Lorsqu'un bug dans la couche web est en ligne, expédiez la correction par le biais de Capgo au lieu d'attendre des jours pour l'approbation de la boutique d'applications. Les utilisateurs reçoivent la mise à jour en arrière-plan tandis que les changements natifs restent dans le chemin de revue normal.

Commencez Maintenant

Dernières Nouvelles de notre Blog

Capgo vous donne les meilleures informations dont vous avez besoin pour créer une application mobile véritablement professionnelle.