Choisir une stratégie de branchement Git pour les environnements multi-comptes DevOps - AWS Conseils prescriptifs

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Choisir une stratégie de branchement Git pour les environnements multi-comptes DevOps

Amazon Web Services (contributeurs)

Février 2024 (historique du document)

L'adoption d'une approche basée sur le cloud et la fourniture de solutions logicielles AWS peuvent être transformatrices. Cela peut nécessiter des modifications de votre processus de cycle de vie de développement logiciel. Généralement, plusieurs Comptes AWS sont utilisés au cours du processus de développement dans le AWS Cloud. Pour réussir, il est essentiel de choisir une stratégie de branchement Git compatible à associer à vos DevOps processus. Le choix de la stratégie de branchement Git adaptée à votre organisation vous permet de communiquer de manière concise les DevOps normes et les meilleures pratiques au sein des équipes de développement. Le branchement Git peut être simple dans un environnement unique, mais il peut être source de confusion lorsqu'il est appliqué à plusieurs environnements, tels que les environnements de sandbox, de développement, de test, de préparation et de production. Le fait de disposer de plusieurs environnements augmente la complexité de la DevOps mise en œuvre.

Ce guide fournit des diagrammes visuels des stratégies de branchement de Git qui montrent comment une organisation peut mettre en œuvre un processus multi-comptes DevOps . Les guides visuels aident les équipes à comprendre comment intégrer leurs stratégies de branchement Git à leurs DevOps pratiques. L'utilisation d'un modèle de branchement standard, tel que GitHub Gitflow, Flow ou Trunk, pour gérer le référentiel de code source aide les équipes de développement à aligner leur travail. Ces équipes peuvent également utiliser les ressources de formation Git standard sur Internet pour comprendre et mettre en œuvre ces modèles et stratégies.

Pour connaître les DevOps meilleures pratiques en la matière AWS, consultez le DevOpsguide publié dans AWS Well-Architected. Au cours de votre lecture de ce guide, faites preuve de diligence raisonnable pour sélectionner la stratégie de succursale adaptée à votre organisation. Certaines stratégies peuvent mieux correspondre à votre cas d'utilisation que d'autres.

Objectifs

Ce guide fait partie d'une série de documentation sur le choix et la mise en œuvre de stratégies de création de DevOps succursales pour les organisations qui en ont plusieurs Comptes AWS. Cette série est conçue pour vous aider à appliquer la stratégie qui répond le mieux à vos exigences, à vos objectifs et à vos meilleures pratiques dès le départ, afin de rationaliser votre expérience dans le AWS Cloud. Ce guide ne contient pas de scripts DevOps exécutables car ils varient en fonction du moteur d'intégration continue et de livraison continue (CI/CD) et des cadres technologiques utilisés par votre organisation.

Ce guide explique les différences entre trois stratégies de branchement Git courantes : GitHub Flow, Gitflow et Trunk. Les recommandations de ce guide aident les équipes à identifier une stratégie de succursale conforme à leurs objectifs organisationnels. Après avoir lu ce guide, vous devriez être en mesure de choisir une stratégie de succursale pour votre organisation. Après avoir choisi une stratégie, vous pouvez utiliser l'un des modèles suivants pour vous aider à mettre en œuvre cette stratégie avec vos équipes de développement :

Il est important de noter que ce qui fonctionne pour une organisation, une équipe ou un projet peut ne pas convenir à d'autres. Le choix entre les stratégies de branchement Git dépend de divers facteurs, tels que la taille de l'équipe, les exigences du projet et l'équilibre souhaité entre la collaboration, la fréquence d'intégration et la gestion des versions.

Utilisation des pratiques CI/CD

AWS vous recommande de mettre en œuvre l'intégration et la livraison continues (les CI/CD), which is the process of automating the software release lifecycle. It automates much or all of the manual DevOps processes that are traditionally required to get new code from development into production. A CI/CD pipeline encompasses the sandbox, development, testing, staging, and production environments. In each environment, the CI/CD pipeline provisions any infrastructure that is needed to deploy or test the code. By using CI/CD, development teams can make changes to code that are then automatically tested and deployed. CI/CD pipelines fournissent également une gouvernance et des garde-fous aux équipes de développement). Ils appliquent la cohérence, les normes, les meilleures pratiques et les niveaux d'acceptation minimaux pour l'acceptation et le déploiement des fonctionnalités. Pour plus d'informations, voir Pratiquer l'intégration continue et la livraison continue sur AWS.

Toutes les stratégies de branchement décrites dans ce guide sont bien adaptées pour CI/CD practices. The complexity of the CI/CD pipeline increases with the complexity of the branching strategy. For example, Gitflow is the most complex branching strategy discussed in this guide. CI/CD pipelines for this strategy require more steps (such as for compliance reasons), and they must support multiple, simultaneous production releases. Using CI/CD also becomes more important as the complexity of the branching strategy increases. This is because CI/CD établir des garde-fous et des mécanismes pour les équipes de développement afin d'empêcher les développeurs de contourner intentionnellement ou non le processus défini.

AWS propose une suite de services de développement conçus pour vous aider à créer des pipelines CI/CD. Par exemple, AWS CodePipelineil s'agit d'un service de livraison continue entièrement géré qui vous aide à automatiser vos pipelines de publication pour des mises à jour rapides et fiables des applications et de l'infrastructure. AWS CodeBuildcompile le code source, exécute des tests et produit des ready-to-deploy progiciels. Pour plus d'informations, consultez la section Outils de développement sur AWS.