Passer au contenu principal

Git Flow vs Trunk-Based pour CI/CD

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

Git Flow vs Trunk-Based pour CI/CD

Choisir entre Git Flow et le développement basé sur la branche principale (TBD) peut avoir un impact significatif sur votre flux de travail CI/CD. Voici une brève explication :

  • Git Flow: Idéal pour les environnements structurés et contrôlés par version. Il utilise plusieurs branches comme main, develop, feature, releaseet hotfix. Adapté pour les équipes importantes, des cycles de mise à jour plus lents et des processus de test qualité stricts.
  • Développement basé sur la branche principale: Se concentre sur une branche principale unique avec des branches de fonctionnalités à vie courte. Conçu pour les équipes plus petites, des mises à jour rapides et des tests automatisés solides.

Comparaison rapide :

Aspect Git Flow Développement basé sur la branche principale
Complexité des branches De nombreuses branches à long terme Une seule branche, des branches à court terme
Fréquence de mise en production Mises en production planifiées Déploiement continu
Taille de l'équipe Équipes importantes Petites à moyennes équipes
Tests Tests à la fin du cycle Tests automatisés
Risque de déploiement Moins avec des lancements étalés Plus avec des mises à jour fréquentes
Annuler l'update context : Action de produit : annuler une mise à jour OTA. Page/zone : page de marketing des solutions Capgo. Rôle : Étiquette de navigation ou élément de l'interface utilisateur court. Vu dans : page solutions/white-label.astro. Clé de message `solutions_white_label_visual_cell3_value` (Valeur de la cellule visuelle Solutions White Label 3). Lent

RapidePoint 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.

Joueur de vidéo YouTube Bases du flux de travail

Git Flow

Git Flow organise le développement à l'aide de cinq types de branches : main, develop, feature, release, et hotfix. Cette structure aide à gérer les versions et le développement parallèle de manière efficace.

Structure de la branche Git Flow

Type de branche Objectif Cible de fusion
Principal Contient des code prêts à la production N/A
Développement Intègre des fonctionnalités ; sert de base aux branches de fonctionnalités N/A
Fonctionnalité Utilisé pour développer des fonctionnalités individuelles ; créé à partir de develop develop
Lancement Prépare à la version finale et à la mise en ligne; créé à partir de develop main & develop
Correctif Répare les problèmes de production rapidement; créé à partir de main main & develop

Avantages de Git Flow

  • 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 mise en ligne finale et la préparation de la version, tout en gardant la branch develop ouverte pour les travaux en cours. Correctif
  • Les branches de correctif facilitent la résolution des problèmes de production rapidement sans interrompre les autres tâches de développement. Les branches de version fournissent un espace dédié pour la mise en ligne finale et la préparation de la version, tout en gardant la branch develop ouverte pour les travaux en cours.

Git Flow Inconvénients

  • Gestion de Branches Complexité: La gestion de plusieurs branches actives peut rendre la fusion plus difficile.
  • Déploiement Ralenti: Le processus de lancement formel 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 de maintenance.

Cette méthode fonctionne mieux pour les projets qui nécessitent un contrôle de version strict, plusieurs pistes de lancement 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 Fondamentaux

Développement Basé sur le Tronc (TBD) se concentre sur une branche principale unique, souvent appelée le tronc ou la branche principale. Cette approche se rapproche étroitement des pratiques DevOps et de l'intégration continue.

Structure de Branches Basée sur le Tronc

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

Type de branchement Objectif Durée de vie
Branchement principal Central branch with production-ready code Permanent
Branches de fonctionnalités Branches temporaires pour des modifications individuelles Court terme
Branches de version Utilisées pour les dernières retouches avant une mise à jour Temporaire

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

Avantages du TBD

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

  • Moins de conflits de fusion: Les merges réguliers gardent les conflits gérables.
  • Feedback plus rapide: Les builds automatisés s'exécutent avec chaque merge, détectant les bogues tôt.
  • Canalisations plus simples: Une seule branche réduit la complexité des configurations CI/CD.
  • Collaboration d'équipe plus efficace: 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 section suivante.

Limitations de la branche principale

Si TBD présente des avantages, elle comporte également des défis auxquels les équipes doivent faire face :

Défis Impact Comment y remédier
Code Stabilité Risque de modifications de rupture affectant la branche principale Utiliser des tests automatisés solides
Coordination de l'équipe Le travail en chevauchant peut provoquer des perturbations Se fier aux drapeaux de fonctionnalité et aux commits fréquents et petits
Courbe d'apprentissage Passer d'une gestion de branches longue durée Proposer une formation et introduire progressivement
Problèmes de scaling Les merges fréquents peuvent surcharger les grandes équipes Imposer des revues approfondies code

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

Git Flow vs. Développement basé sur le tronc : Comparaison directe

Voici comment Git Flow et le Développement basé sur le tronc se valent en termes clés :

Tableau de comparaison des fonctionnalités

Aspect Git Flow Développement basé sur le tronc
Complexité des branches Plusieurs branches longues Une seule branche principale avec des branches de courte durée
Fréquence de mise en production Lancements planifiés Déploiement continu
Taille de l'équipe Se prête bien à des équipes plus nombreuses Mieux adapté pour des équipes plus petites
Code Processus de revue Revue formelle lors des mises en merge de branches Revue continue de petites modifications fréquentes
Exigences de test Concentrez-vous sur les tests à la fin du cycle Dépendance lourde aux tests automatisés
Courbe d'apprentissage Plus complexe en raison de plusieurs branches Flux de travail plus simple, mais nécessite des tests solides
Risque de déploiement Moindre risque avec des lancements étalés Risque plus élevé avec des mises à jour fréquentes
Temps de récupération Procédures de reversion plus lentes Capacités de reversion plus rapides

When utiliser chaque workflow

Git Flow est idéal pour les projets d'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.

Trunk-Based Development fonctionne le mieux pour les équipes et les projets qui donnent la priorité à la vitesse et à la flexibilité, comme :

  • SaaS plateformes nécessitant des mises à jour rapides
  • Équipes avec des pipelines CI/CD solides
  • Projets soutenus par des tests automatisés fiables
  • Découpage continu des déploiements ou des mises à jour fréquentes
  • Projets d'applications mobiles nécessitant des mises à jour régulières

Certains équipes combinent même les deux méthodes : utilisant Trunk-Based Development pour les services de base et Git Flow pour les projets avec des trajectoires de sortie formelles.

Prochain : Comment configurer les pipelines CI/CD pour l'un ou l'autre approche.

Configuration de la chaîne d'intégration/continu (CI/CD)

Configuration de la chaîne d'intégration/continu Git Flow (CI/CD)

  • Pipeline de la branche de développement: Exécute les tests unitaires, les tests d'intégration, les code vérifications qualité, la vérification de la construction et le déploiement dans l'environnement de développement.
  • Pipeline de la branche de version: Exécute l'ensemble du jeu de tests, les scans de sécurité, construit un candidat de version et déploie dans l'environnement de pré-production.
  • Pipeline de la branche principale: Exécute les tests de validation, gère la version, crée la construction de production, déploie dans la production et étiquette la version.

Configuration de la chaîne d'intégration/continu basée sur la branche principale (Trunk-Based)

  • Pipeline de la branche de fonctionnalité: Se concentre sur les tests unitaires rapides, les code vérifications de style, la vérification de la construction et le déploiement dans un environnement de prévisualisation.
  • Pipeline de la branche principale : couvre des tests automatisés approfondis, des analyses de sécurité, la création de la mise en production, des déploiements progressifs et des fonctionnalités de retrait automatique.

Capgo Intégration CI/CD

Capgo Interface de tableau de bord de mise à jour en direct

Ajouter des mises à jour en direct sur le réseau pour les deux configurations CI/CD, Capgo peut être intégré sans effort :

Capgo fonctionne avec GitHub Actions, GitLab CI, et Jenkins pour activer les mises à jour en direct, les déploiements étalés et les retraits instantanés dans les flux de travail Git Flow et Trunk-Based. Il répond aux exigences d'Apple et de 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 de la taille de votre équipe et du niveau de maturité de votre CI/CD à l'aide de la table ci-dessous :

Scénario Git Flow Trunk-Based
Taille de l'équipe 50+ développeurs Moins de 50 développeurs
Fréquence de mise en production Hebdomadaire ou mensuel Journalier ou plusieurs fois par jour
Tests et vérifications qualité Cycles de vérifications qualité traditionnels Concentrez-vous sur les tests automatisés
Modèle de déploiement Multi-version, traditionnel Cloud-native, conteneurisé
Tolérance au risque Ensembles réglementés, conservateurs Feedback rapide, progressif
  • Démarrez avec le développement basé sur le tronc dans les petites équipes, puis étendez-l’aux groupes plus importants. 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 les commutateurs de fonctionnalité 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 lancements majeurs tout en exploitant le développement basé sur le tronc pour la livraison de fonctionnalités. Quel que soit le chemin que vous prenez, le succès dépend de l'intégration de CI/CD de manière appropriée, de l'automatisation des tests et de garder l'équipe sur la même page.

Continuez de Git Flow vs Trunk-Based pour CI/CD

Si vous utilisez Git Flow vs Développement Basé sur Tronc pour l'automatisation CI/CD pour planifier l'automatisation CI/CD, le connecter avec Capgo Automatisation CI/CD pour le flux de travail du produit dans Capgo Automatisation CI/CD, Capgo Déploiements Natives pour le flux de travail du produit dans Capgo Déploiements Natives, Capgo Intégrations pour le flux de travail du produit dans Capgo Intégrations, Intégration CI/CD pour le détail d'implémentation dans Intégration CI/CD, et GitHub Intégration d'Actions pour le détail d'implémentation dans GitHub Intégration d'Actions

Mises à jour en temps réel pour les applications Capacitor

Lorsqu'un bug de 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 modifications natives restent dans la voie de revue normale.

Un soutien humain de Martin

Démarrer maintenant

Dernières actualités de notre Blog

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