Blog Produit Migrer d'AWS CodeCommit vers GitLab : le guide complet
Mise à jour : September 5, 2024
Lecture : 14 min

Migrer d'AWS CodeCommit vers GitLab : le guide complet

Ce tutoriel vous explique comment migrer depuis les services Amazon Web Services (AWS) vers la plateforme DevSecOps de GitLab.

migration - cover

Le 25 juillet 2024, AWS a communiqué une annonce importante concernant son service CodeCommit : AWS a décidé de fermer l'accès des nouveaux clients à CodeCommit. Bien que les clients existants puissent continuer à utiliser ce service, AWS n'introduira pas de nouvelles fonctionnalités, concentrant uniquement son attention sur la sécurité, la disponibilité et l'amélioration des performances.

À la suite de cette annonce, les équipes de développement ont commencé à envisager de migrer leurs dépôts vers d'autres fournisseurs Git. En réponse à ces changements, nous avons rédigé ce guide complet dans le but d'aider les équipes à migrer vers GitLab et à s'intégrer avec d'autres services AWS.

Remarque : pour en savoir plus sur les recommandations officielles d'AWS en matière de migration, veuillez consulter leur article de blog.

À propos de ce guide

Ce guide contient des informations complètes destinées aux équipes de développement qui utilisent GitLab et qui envisagent une intégration avec les services AWS, ou à celles qui envisagent de migrer des dépôts Git hébergés sur AWS vers GitLab.com.

Notre guide est composé de quatre sections principales :

  • Migration en parallèle vers GitLab : nous vous expliquons comment migrer progressivement des dépôts existants hébergés sur AWS vers GitLab.com, tout en minimisant les risques.

  • Intégration avec AWS CodeBuild : nous détaillons les étapes à suivre pour intégrer les dépôts GitLab avec AWS CodeBuild, et mettre en place un environnement d'intégration continue (CI) puissant.

  • Intégration avec AWS CodePipeline : nous décrivons comment connecter les dépôts GitLab avec AWS CodePipeline pour construire des pipelines de livraison continue (CD) efficaces.

  • Intégrations downstream pour AWS CodePipeline et CodeStar Connections : nous expliquons comment tirer parti des connexions entre GitLab et AWS pour disposer d'un accès étendu aux services, ce qui vous ouvre différentes possibilités d'intégration dans l'écosystème AWS.

Grâce à ce guide, vous apprendrez à construire un workflow de développement efficace et flexible en combinant les puissantes fonctionnalités de GitLab et AWS.

Section 1 : migration en parallèle vers GitLab

Si vous envisagez de migrer des dépôts Git hébergés sur AWS vers GitLab.com, cette section présente des méthodes pour réaliser la migration progressivement tout en minimisant les risques. En mettant à profit les capacités de mise en miroir de GitLab, vous pouvez maintenir les flux de développement existants tout en testant le nouvel environnement.

Pourquoi la migration en parallèle est-elle importante ?

Les migrations de systèmes à grande échelle comportent toujours des risques, en particulier des impacts potentiels sur les projets de développement en cours, les intégrations existantes et les processus automatisés. L'adoption d'une approche de migration en parallèle offre les avantages suivants :

  1. Une minimisation des risques : testez le nouvel environnement tout en maintenant les systèmes existants opérationnels
  2. Une transition fluide : les équipes de développement peuvent s'habituer progressivement au nouveau système.
  3. Des tests d'intégration : testez minutieusement toutes les intégrations et l'automatisation dans le nouvel environnement.
  4. Une pérennité : donnez aux équipes les moyens de migrer progressivement vers GitLab CI/CD, tout en continuant à utiliser le CI existant.

La migration en parallèle n'est pas nécessaire si vous savez déjà que vous souhaitez passer directement à GitLab.

Quelles sont les étapes pour migrer vers GitLab.com ?

Étape 1 : configurez GitLab.com

  • Vérifiez si votre entreprise utilise déjà un groupe sur GitLab.com et si elle a mis en place une authentification unique (SSO). Si c'est le cas, vous vous servirez des deux.
  • Si votre entreprise n'a pas de compte sur GitLab.com, accédez au site de GitLab et créez un nouveau compte ou connectez-vous à votre compte existant.
  • Créez un nouvel espace de nommage pour l'entreprise (un groupe au niveau racine sur GitLab.com).
  • Choisissez un nom disponible qui reflète l'ensemble de votre entreprise.

Étape 2 : importez le dépôt

Pour effectuer la migration en parallèle, utilisez la fonctionnalité de mise en miroir de type « pull » de GitLab. Elle vous permet de synchroniser automatiquement les modifications des dépôts hébergés sur AWS vers GitLab.com.

  1. Accédez au groupe cible GitLab.com.
  2. En haut à droite, cliquez sur « Nouveau projet ».
  3. Sur la page « Créer un nouveau projet », cliquez sur « Importer un projet ».
  4. Sur la page « Importer un projet », cliquez sur « Dépôt par URL ».
  5. Saisissez l'URL de votre dépôt hébergé sur AWS dans le champ « URL du dépôt Git ».
  6. Sous le champ URL du dépôt Git, cochez « Dépôt miroir ».
  7. Configurez ensuite l'authentification. Dans la console AWS CodeCommit, sélectionnez l'URL du clone du dépôt que vous allez migrer. Si vous prévoyez d'importer des dépôts CodeCommit dans GitLab, vous pouvez utiliser l'URL HTTPS de CodeCommit pour cloner le dépôt en utilisant la fonctionnalité de mise en miroir du dépôt de GitLab. Vous devrez également fournir vos identifiants de connexion Git d'AWS pour votre utilisateur IAM (Identity and Access Management) dans GitLab. Reportez-vous à ce guide pour créer des identifiants de connexion Git pour AWS CodeCommit.

URL du clone

Cette configuration effectuera automatiquement un pull des modifications du dépôt hébergé sur AWS vers GitLab.com. La fréquence par défaut est de cinq minutes.

Pour plus d'informations, consultez notre documentation sur la fonctionnalité de mise en miroir du dépôt de GitLab.

Étape 3 : testez et validez les intégrations

  1. Pipelines CI/CD : configurez le fichier .gitlab-ci.yml dans GitLab CI pour répliquer les pipelines existants. Plus d'informations sur la planification d'une migration vers GitLab CI/CD à partir d'autres outils CI sont à votre disposition dans notre documentation.
  2. Gestion des tickets : importez les tickets du projet et testez les workflows.
  3. Revue de code : configurez le processus de merge request et testez les workflows de revue.

Étape 4 : migrez progressivement

  1. Commencez par des projets de petite envergure ou non critiques pour vous habituer à travailler sur GitLab.com.
  2. Proposez une formation aux membres de votre équipe et laissez-leur le temps de s'adapter aux nouveaux workflows.
  3. Migrez les projets progressivement en vous assurant que les intégrations et les workflows fonctionnent correctement.

Pour plus d'informations, consultez la section Automatisation des migrations de CodeCommit vers GitLab.

Étape 5 : finalisez la migration

Une fois que vous avez terminé tous les tests et validations et que votre équipe s'est habituée au nouvel environnement, planifiez une migration complète. Pour chaque projet :

  1. Fixez une date de migration et informez toutes les parties prenantes.
  2. Effectuez la synchronisation finale des données.
  3. Supprimez les paramètres de mise en miroir du projet GitLab.
  4. Passez les dépôts hébergés sur AWS en lecture seule et transférez tous les projets de développement vers GitLab.com.

Étape 6 : évaluez l'adoption de nouvelles capacités

Avec GitLab, la collaboration et l'automatisation des workflows offrent aux équipes de développement beaucoup plus d'opportunités qu’avec CodeCommit. Comme le processus de merge request est particulièrement sophistiqué par rapport à CodeCommit, cela peut prendre un peu de temps pour comprendre les capacités des fonctionnalités.

Une fois que les dépôts sont stables sur GitLab, il est très facile d'expérimenter GitLab CI/CD en parallèle d'une solution existante. Les équipes peuvent prendre le temps de perfectionner leur automatisation GitLab CI/CD sans affecter les workflows de production.

La gestion des artefacts GitLab est également très performante, notamment la fonctionnalité Releases et les nombreux registres de paquet.

En résumé

En adoptant une approche de migration en parallèle vers GitLab, vous pouvez réaliser une transition en douceur tout en minimisant les risques. Ce processus permet aux équipes de s'adapter progressivement au nouvel environnement et de s'assurer que toutes les intégrations et automatisations fonctionnent correctement.

Section 2 : intégrez GitLab avec AWS CodeBuild

Si vous souhaitez compiler et tester du code à partir de dépôts GitLab à l'aide d'AWS CodeBuild, notre guide complet vous aidera à mettre en place un pipeline CI efficace.

Prérequis

  • Compte GitLab.com
  • Compte AWS
  • AWS CLI (configurée)

Étape 1 : créez une connexion entre GitLab et AWS CodeStar Connections

  1. Connectez-vous à la console de gestion AWS et accédez au service AWS CodeBuild.
  2. Sélectionnez « Paramètres » > « Connexions » dans le panneau de navigation de gauche.
  3. Cliquez sur le bouton « Créer une connexion ».
  4. Choisissez « GitLab » comme fournisseur.
  5. Donnez un nom à la connexion et cliquez sur « Connecter à GitLab ».
  6. Vous serez redirigé vers la page d'authentification de GitLab.
  7. Approuvez les autorisations nécessaires.
  8. Une fois la connexion effectuée, son statut passera à « Disponible ».

Configuration de CodeStar Connect

Étape 2 : créez un projet AWS CodeBuild

  1. Cliquez sur « Créer un projet de construction » dans le tableau de bord d'AWS CodeBuild.
  2. Saisissez le nom du projet et une description.
  3. Pour les paramètres source, sélectionnez « GitLab » comme fournisseur.
  4. Choisissez la connexion que vous venez de créer, puis indiquez la branche et le dépôt GitLab.

Ajout d'un projet CodeBuild

Remarque : à partir de l'étape 3, veuillez configurer les paramètres en fonction de votre environnement et de vos besoins spécifiques.

En résumé

Cette section détaille comment intégrer les dépôts GitLab avec AWS CodeBuild. Cette configuration met en place un pipeline d'intégration continue où les modifications de code effectuées dans GitLab sont automatiquement compilées et testées à l'aide d'AWS CodeBuild.

Section 3 : intégrez GitLab avec AWS CodePipeline

Ce guide détaillé vous apportera les informations nécessaires si vous souhaitez mettre en œuvre la livraison continue à partir de dépôts GitLab à l'aide d'AWS CodePipeline. L'intégration est encore plus facile maintenant que GitLab est un fournisseur AWS CodeStar Connections.

Prérequis

  • Compte GitLab.com
  • Compte AWS
  • AWS CLI (configurée)

Étape 1 : créez une connexion entre GitLab et AWS CodeStar Connections

  1. Connectez-vous à la console de gestion AWS et accédez au service AWS CodePipeline.
  2. Sélectionnez « Paramètres » > « Connexions » dans le panneau de navigation de gauche.
  3. Cliquez sur le bouton « Créer une connexion ».
  4. Choisissez « GitLab » comme fournisseur.
  5. Donnez un nom à la connexion et cliquez sur « Connecter à GitLab ».
  6. Vous serez redirigé vers la page d'authentification de GitLab.
  7. Approuvez les autorisations nécessaires.
  8. Une fois la connexion effectuée, son statut passera à « Disponible ».

Configuration de CodeStar Connections

Étape 2 : créez un pipeline AWS CodePipeline

  1. Cliquez sur « Créer un pipeline » dans le tableau de bord d'AWS CodePipeline.
  2. Donnez un nom au pipeline et cliquez sur « Suivant ».
  3. Sélectionnez « GitLab » comme fournisseur source.
  4. Choisissez la connexion que vous venez de créer, puis indiquez la branche et le dépôt GitLab.
  5. Sélectionnez le type de déclencheur : vous pouvez déclencher l'exécution du pipeline AWS CodePipeline en fonction d'événements pull ou push pour des branches et des types de fichiers spécifiques au sein de votre dépôt.

Ajout du fournisseur source

Ajout d'une configuration source

Remarque : à partir de l'étape 3, veuillez configurer les paramètres en fonction de votre environnement et de vos besoins spécifiques.

En résumé

Cette section explique comment intégrer les dépôts GitLab avec AWS CodePipeline. Cette configuration crée un pipeline de livraison continue où les modifications de code effectuées dans GitLab sont automatiquement déployées dans votre environnement AWS.

Section 4 : migrez vers GitLab

L'intégration de GitLab avec AWS vous donne accès à de puissantes fonctionnalités pour optimiser vos workflows de développement et de déploiement. Elle vous aide aussi à résoudre vos problèmes de gestion du code source. Cette intégration peut être réalisée de plusieurs manières, qui offrent chacune des avantages uniques :

  • L'utilisation d'AWS CodeStar Connections pour associer GitLab aux services AWS favorise la cohérence du workflow en permettant la connexion de dépôts Git externes, comme GitLab, à divers services AWS. Cette configuration prend en charge les compilations automatisées, les déploiements et d'autres actions essentielles directement à partir de votre dépôt GitLab, ce qui optimise l'intégration de votre processus de développement.

  • La connexion de GitLab avec AWS CodePipeline à l'aide de AWS CodeStar Connections fait passer l'automatisation au niveau supérieur en vous permettant de créer un pipeline CI/CD complet. Cette approche intègre GitLab avec AWS CodePipeline. Vous pouvez ainsi automatiser l'ensemble du processus (du contrôle des sources et des compilations, aux tests et déploiement) en utilisant des services AWS tels que AWS CodeBuild et AWS CodeDeploy. Vous bénéficiez ainsi d'un processus de livraison robuste, évolutif et efficace.

Tableau des nouvelles technologies et solutions pour associer GitLab et AWS

1. Connectez GitLab aux services AWS à l'aide d'AWS CodeStar Connections

Le service AWS CodeStar Connections vous permet de connecter des dépôts Git externes (tels que GitHub ou Bitbucket) aux services AWS. Vous pouvez également utiliser CodeStar Connections pour connecter GitLab aux services AWS. Si vous utilisez GitLab, vous devrez peut-être configurer une connexion personnalisée en tant que serveur HTTP Git.

Cette méthode permet de connecter les services AWS suivants à GitLab :

  • AWS Service Catalog

AWS Service Catalog aide les entreprises à standardiser et à gérer les ressources AWS. Son intégration à GitLab améliore la transparence de la gestion des ressources et simplifie le suivi des changements. Plus précisément, vous pouvez automatiser les mises à jour du catalogue en fonction des validations GitLab, ce qui améliore l'efficacité opérationnelle.

  • AWS CodeBuild

AWS CodeBuild est un service qui compile votre code source, exécute des tests et produit des packages logiciels prêts à être déployés. L'intégration de GitLab avec AWS CodeBuild lance des processus de compilation automatisés à chaque fois qu'un push de modifications de code sur GitLab est effectué. La cohérence des compilations est ainsi garantie, tandis que la collaboration et le contrôle des versions sont facilités.

  • AWS Glue

Le service de blocs-notes intégrés à AWS Glue vous permet de développer et d'exécuter de manière interactive des tâches de préparation de données et ETL (processus d'extraction, de transformation et de chargement). L'intégration de GitLab avec les blocs-notes intégrés à AWS Glue vous permet de contrôler les versions des blocs-notes et des scripts ETL, de favoriser la collaboration entre les membres de l'équipe et d'améliorer la gestion de la qualité des pipelines de traitement des données.

  • AWS Proton

AWS Proton automatise le développement et le déploiement de microservices et d'applications serverless. En intégrant GitLab à AWS Proton, vous pouvez gérer l'Infrastructure as Code, automatiser les déploiements et gérer l'environnement de façon cohérente. L'efficacité des processus de développement s'en trouve améliorée.

AWS CodeStar Connections prend en charge davantage de services, ce qui facilite la connexion de GitLab avec d'autres services AWS. Nous vous conseillons de vérifier régulièrement si de nouveaux services prennent en charge CodeStar Connections.

2. Connectez AWS CodePipeline à GitLab à l'aide AWS CodeStar Connections (y compris CodeDeploy)

AWS CodePipeline est un service de livraison continue qui automatise le processus de livraison de logiciels. Pour connecter GitLab à AWS CodePipeline, vous devez utiliser AWS CodeStar Connections. Cette configuration vous permet de désigner un dépôt GitLab comme source et d'automatiser l'ensemble du pipeline CI/CD.

AWS CodePipeline prend en charge les actions principales suivantes :

  • Contrôle de version : Amazon AWS CodeCommit, GitHub, Bitbucket, GitLab
  • Compilations et tests : AWS CodeBuild, Jenkins
  • Déploiement : AWS CodeDeploy, Elastic Beanstalk, ECS, S3
  • Approbation : approbation manuelle
  • Gestion de l'infrastructure : AWS CloudFormation
  • Serverless : AWS Lambda
  • Tests : AWS Device Farm
  • Actions personnalisées : AWS Step Functions

En intégrant GitLab avec AWS CodePipeline, vous pouvez automatiquement déclencher le pipeline chaque fois qu'un push de modifications de code sur GitLab est effectué, ce qui garantit la cohérence à chaque étape du processus, de la compilation au déploiement. De plus, avec les capacités de contrôle de version de GitLab, il est plus facile de suivre l'historique et les statuts de déploiement, ce qui permet une livraison de logiciels plus flexible et plus fiable.

Conclusion

Ce guide complet vous a expliqué comment effectuer la migration et l'intégration de GitLab avec AWS. La stratégie d'hébergement et d'intégration de code est propre à chaque entreprise. C’est pourquoi nous vous invitons à utiliser ce tutoriel comme point de départ pour établir votre propre stratégie d'intégration et de mise en œuvre de GitLab + AWS.

Pour consulter des informations plus détaillées et des configurations avancées, reportez-vous aux ressources suivantes :

Si vous avez des questions ou si vous avez besoin d'aide, contactez l'assistance GitLab ou l'assistance AWS. Nous espérons que ce guide complet vous aidera à progresser dans votre parcours d'intégration AWS-GitLab.

Votre avis nous intéresse

Cet article de blog vous a plu ou vous avez des questions ou des commentaires ? Partagez vos réflexions en créant un nouveau sujet dans le forum de la communauté GitLab. Partager votre expérience

Lancez-vous dès maintenant

Découvrez comment la plateforme DevSecOps unifiée de GitLab peut aider votre équipe.

Commencer un essai gratuit

Découvrez le forfait qui convient le mieux à votre équipe

En savoir plus sur la tarification

Découvrez ce que GitLab peut offrir à votre équipe

Échanger avec un expert