Blog Produkt Ultimativer Leitfaden für die Migration von AWS CodeCommit zu GitLab
Aktualisiert am: November 27, 2024
11 Minuten Lesezeit

Ultimativer Leitfaden für die Migration von AWS CodeCommit zu GitLab

In diesem umfassenden Tutorial erfährst du, wie du von AWS Services zu GitLab migrieren und die DevSecOps-Plattform nahtlos integrieren kannst.

migration - cover

Am 25. Juli 2024 hat AWS eine wichtige Ankündigung in Bezug auf den CodeCommit-Service des Unternehmens veröffentlicht. Wie in ihrem offiziellen Blogbeitrag beschrieben, hat AWS beschlossen, Neukund(inn)en den Zugriff auf CodeCommit zu entziehen. Bestehende Kund(inn)en können den Service zwar weiterhin nutzen, aber AWS führt keine neuen Funktionen mehr ein und konzentriert sich nur noch auf die Verbesserung von Sicherheit, Verfügbarkeit und Leistung.

Diese Ankündigung hat Entwicklerteams dazu veranlasst, eine Migration ihrer Repositorys zu alternativen Git-Anbietern in Betracht zu ziehen. Angesichts dieser Änderungen haben wir diese umfassende Anleitung erstellt, um Teams bei der Migration zu GitLab und der Integration mit anderen AWS-Services zu unterstützen.

Hinweis: Weitere Einzelheiten zu den offiziellen Migrationsempfehlungen von AWS findest du im entsprechenden Blogbeitrag.

Über diesen Leitfaden

Dieser Leitfaden enthält umfassende Informationen für Entwicklungsteams, die GitLab nutzen und eine Integration mit AWS-Services in Betracht ziehen oder eine Migration von AWS-gehosteten Git-Repositories zu GitLab.com planen. Der Leitfaden ist in drei Hauptabschnitte unterteilt:

In dieser Anleitung erfährst du, wie du die leistungsstarken Funktionen von GitLab und AWS kombinieren kannst, um einen effizienten und flexiblen Entwicklungs-Workflow zu erstellen.

Abschnitt 1: Parallele Migration zu GitLab

Wenn du vorhast, Git-Repositories, die auf AWS gehostet werden, auf GitLab.com zu migrieren, findest du in diesem Abschnitt eine Anleitung für eine schrittweise Migration, die die Risiken minimiert. Mit den Mirroring-Funktionen von GitLab kannst du bestehende Entwicklungsabläufe beibehalten und gleichzeitig die neue Umgebung testen.

Warum ist die parallele Migration wichtig?

Umfangreiche Systemmigrationen sind immer mit Risiken verbunden, insbesondere mit potenziellen Auswirkungen auf die laufende Entwicklungsarbeit, bestehende Integrationen und automatisierte Prozesse. Ein paralleler Migrationsansatz bietet die folgenden Vorteile:

  1. Risikominimierung: Teste die neue Umgebung, während bestehende Systeme betriebsbereit bleiben.
  2. Nahtloser Übergang: Entwicklungsteams können sich allmählich an das neue System gewöhnen.
  3. Integrationstests: Teste alle Integrationen und Automatisierungen in der neuen Umgebung gründlich.
  4. Zukunftsfähigkeit: Ermögliche es den Teams, schrittweise auf GitLab CI/CD zu migrieren, parallel zur bestehenden CI.

Eine parallele Migration ist nicht erforderlich, wenn du bereits weißt, dass du direkt zu GitLab wechseln möchtest.

Schritte für die Migration zu GitLab.com

Schritt 1: Einrichtung auf GitLab.com

  • Überprüfe, ob dein Unternehmen bereits eine Gruppe auf GitLab.com besitzt und ob Single Sign-On (SSO) eingerichtet ist. Wenn ja, solltest du nach Möglichkeit beides verwenden.

  • Wenn dein Unternehmen noch nicht auf GitLab.com vertreten ist, besuche GitLab.com und erstelle ein neues Konto oder melde dich bei einem bestehenden Konto an.

  • Erstelle einen neuen Unternehmens-Namensraum (eine Gruppe auf der Stammebene von gitlab.com).

  • Wähle einen Namen, der dein gesamtes Unternehmen widerspiegelt (und noch nicht vergeben ist).

Schritt 2: Repository importieren

Bei paralleler Migration: Verwende die Pull-Mirroring-Funktion von GitLab, um Änderungen von in AWS gehosteten Repositories automatisch mit GitLab.com zu synchronisieren.

  1. Gehe zur Zielgruppe auf GitLab.com.
  2. Klicke oben rechts auf „Neues Projekt“.
  3. Klicke auf der Seite „Neues Projekt erstellen“ auf „Projekt importieren“.
  4. Klicke auf der Seite „Projekt importieren“ auf „Repository nach URL“.
  5. Gib die URL deines in AWS gehosteten Repositorys in das Feld „Git-Repository-URL“ ein.
  6. Aktiviere unter dem Feld „Git-Repository-URL“ die Option „Repository spiegeln“.
  7. Authentifizierung einrichten: Wähle in der AWS-CodeCommit-Konsole die Klon-URL für das Repository aus, das du migrieren möchtest. Wenn du CodeCommit-Repositories in GitLab importieren möchtest, kannst du die HTTPS-CodeCommit-URL verwenden, um das Repository über die GitLab-Repository-Spiegelung zu klonen. Außerdem musst du deine Git-Zugangsdaten von AWS für deinen IAM-Benutzer (Identity and Access Management) in GitLab angeben. Du kannst Git-Zugangsdaten für AWS CodeCommit erstellen, indem du dieser AWS-Anleitung folgst.

Klon-URL

Mit dieser Einrichtung werden Änderungen aus dem von AWS gehosteten Repository automatisch alle fünf Minuten auf GitLab.com übertragen.

Weitere Informationen findest du in unserer Dokumentation zur Repository-Spiegelung.

Schritt 3: Integrationen testen und validieren

  1. CI/CD-Pipelines: Richte die Datei .gitlab-ci.yml in GitLab CI ein, um vorhandene Pipelines zu replizieren. Weitere Informationen zur Planung einer Migration von anderen CI-Tools nach GitLab CI/CD.
  2. Ticketverfolgung: Importiere Projekt-Tickets und teste Workflows.
  3. Code Review: Richte den Merge-Request-Prozess ein und teste die Review-Workflows.

Schritt 4: Schrittweise Migration

  1. Beginne mit kleinen oder unkritischen Projekten, um dich mit der Arbeit auf GitLab.com vertraut zu machen.
  2. Biete Schulungen für Teammitglieder an und plane Zeit für die Anpassung an neue Workflows ein.
  3. Migriere nach und nach weitere Projekte und stelle dabei sicher, dass die Integrationen und Workflows problemlos funktionieren.

Weitere Informationen findest du unter Automatisieren von Migrationen von CodeCommit nach GitLab.

Schritt 5: Migration abschließen

Wenn alle Tests und Validierungen abgeschlossen sind und das Team mit der neuen Umgebung vertraut ist, kannst du die vollständige Migration planen. Gehe für jedes Projekt wie folgt vor:

  1. Lege ein Migrationsdatum fest und benachrichtige alle Stakeholder.
  2. Führe die abschließende Datensynchronisierung durch.
  3. Entferne die Spiegelungseinstellungen aus dem GitLab-Projekt.
  4. Lege in AWS gehostete Repositories als schreibgeschützt fest und übertrage alle Entwicklungsarbeiten nach GitLab.com.

Schritt 6: Bewerten der Akzeptanz der neuen Funktionen

Die Zusammenarbeit in GitLab und die Automatisierung von Workflows für Entwickler(innen) sind weitaus umfangreicher als in CodeCommit. Nimm dir etwas Zeit, um diese Fähigkeiten kennenzulernen. Der Merge-Request-Prozess ist im Vergleich zu CodeCommit besonders vielseitig.

Wenn die Repositories auf GitLab stabil sind, kannst du GitLab CI/CD mühelos parallel zu einer vorhandenen Lösung ausprobieren. Die Teams können sich Zeit nehmen, um ihre GitLab-CI/CD-Automatisierung zu optimieren, ohne dass die Produktions-Workflows davon betroffen sind.

Auch die Artefaktverwaltung von GitLab ist mit der Release-Funktion und vielen Paketregistrierungen sehr leistungsfähig.

Abschnitt 1: Zusammenfassung

Mit einem parallelen Migrationsansatz zu GitLab kannst du einen reibungslosen Übergang erreichen und gleichzeitig die Risiken minimieren. Mit diesem Prozess können sich Teams schrittweise an die neue Umgebung anpassen und sicherstellen, dass alle Integrationen und Automatisierungen ordnungsgemäß funktionieren. Bei der Übernahmemigration wird nur ein einziges Kontrollkästchen ausgelassen, wenn bekannt ist, dass eine parallele Migration nicht notwendig ist.

Abschnitt 2: Integration von GitLab mit AWS CodeBuild

Wenn du Code aus GitLab-Repositories mit AWS CodeBuild erstellen und testen möchtest, hilft dir diese umfassende Anleitung beim Einrichten einer effizienten CI-Pipeline.

Voraussetzungen

  • GitLab.com-Konto
  • AWS-Konto
  • AWS CLI (konfiguriert)

Schritt 1: GitLab-Verbindung in AWS CodeStar-Verbindungen erstellen

  1. Melde dich in der AWS-Managementkonsole an und navigiere zum CodeBuild-Service.
  2. Wähle in der linken Navigationsleiste „Einstellungen“ > „Verbindungen“ aus.
  3. Klicke auf die Schaltfläche „Verbindung erstellen“.
  4. Wähle „GitLab“ als Anbieter aus.
  5. Gib einen Verbindungsnamen ein und klicke auf „Mit GitLab verbinden“.
  6. Daraufhin wirst du zur GitLab-Authentifizierungsseite weitergeleitet.
  7. Erteile die erforderlichen Berechtigungen.
  8. Nach erfolgreichem Abschluss ändert sich der Verbindungsstatus in „Verfügbar“.

CodeStar-Connect-Einrichtung

Schritt 2: AWS-CodeBuild-Projekt erstellen

  1. Klicke im CodeBuild-Dashboard auf „Build-Projekt erstellen“.
  2. Gib einen Projektnamen und eine Beschreibung ein.
  3. Wähle in den Quelleneinstellungen „GitLab“ als Anbieter aus.
  4. Wähle die soeben erstellte Verbindung aus und gib das GitLab-Repository und den Branch an.

CodeBuild-Projekt hinzufügen

Hinweis: Konfiguriere ab Schritt 3 die Einstellungen für deine spezifische Umgebung und deine Anforderungen.

Zusammenfassung von Abschnitt 2

In diesem Abschnitt wurde ausführlich beschrieben, wie du GitLab-Repositories in AWS CodeBuild integrieren kannst. Diese Einrichtung ermöglicht eine kontinuierliche Integrationspipeline, bei der Codeänderungen in GitLab automatisch mit AWS CodeBuild erstellt und getestet werden.

Abschnitt 3: GitLab mit AWS CodePipeline integrieren

Wenn du die kontinuierliche Lieferung von GitLab-Repositories mit AWS CodePipeline implementieren möchtest, wird dir diese detaillierte Anleitung helfen. Die Integration ist jetzt noch einfacher geworden, da GitLab als AWS-CodeStar-Connections-Anbieter verfügbar ist.

Voraussetzungen

  • GitLab.com-Konto
  • AWS-Konto
  • AWS CLI (konfiguriert)

Schritt 1: GitLab-Verbindung in AWS CodeStar-Verbindungen erstellen

  1. Melde dich in der AWS-Managementkonsole an und navigiere zum CodePipeline-Service.
  2. Wähle in der linken Navigationsleiste „Einstellungen“ > „Verbindungen“ aus.
  3. Klicke auf die Schaltfläche „Verbindung erstellen“.
  4. Wähle „GitLab“ als Anbieter aus.
  5. Gib einen Verbindungsnamen ein und klicke auf „Mit GitLab verbinden“.
  6. Daraufhin wirst du zur GitLab-Authentifizierungsseite weitergeleitet.
  7. Erteile die erforderlichen Berechtigungen.
  8. Nach erfolgreichem Abschluss ändert sich der Verbindungsstatus in „Verfügbar“.

CodeStar Connections einrichten

Schritt 2: AWS CodePipeline erstellen

  1. Klicke im CodePipeline-Dashboard auf „Pipeline erstellen“.
  2. Gib einen Pipeline-Namen ein und klicke auf „Weiter“.
  3. Wähle „GitLab“ als Quellenanbieter aus.
  4. Wähle die soeben erstellte Verbindung aus und gib das GitLab-Repository und den Branch an.
  5. Wähle den Triggertyp aus: Du kannst die Ausführung der CodePipeline-Pipeline anhand von Pull- oder Push-Ereignissen für bestimmte Branches und Dateitypen in deinem Repository auslösen.

Quellenanbieter hinzufügen

Quellkonfiguration hinzufügen

Hinweis: Konfiguriere ab Schritt 3 die Einstellungen für deine spezifische Umgebung und deine Anforderungen.

Zusammenfassung von Abschnitt 3

In diesem Abschnitt wurde beschrieben, wie du GitLab-Repositories in die AWS CodePipeline integrierst. Diese Einrichtung ermöglicht eine CD-Pipeline, bei der Codeänderungen in GitLab automatisch in deiner AWS-Umgebung bereitgestellt werden.

Abschnitt 4: Migration zu GitLab

Die Integration von GitLab in AWS eröffnet dir leistungsstarke Möglichkeiten zur Optimierung deiner Entwicklungs- und Bereitstellungs-Workflows und hilft dir, deine Probleme bei der Quellcodeverwaltung zu lösen. Diese Integration kann auf verschiedene Arten erreicht werden, die jeweils einzigartige Vorteile bieten:

  • Wenn du AWS-CodeStar-Verbindungen verwendest, um GitLab mit AWS-Services zu verknüpfen, erhältst du einen kohärenten Workflow, da du externe Git-Repositories wie GitLab mit verschiedenen AWS-Services verbinden kannst. Diese Einrichtung unterstützt automatisierte Builds, Bereitstellungen und andere wichtige Aktionen direkt von deinem GitLab-Repository aus und macht deinen Entwicklungsprozess integrierter und effizienter.

  • Die Verbindung von GitLab mit AWS CodePipeline über AWS CodeStar Connections treibt die Automatisierung voran und ermöglicht es dir, eine vollständige CI/CD-Pipeline zu erstellen. Dieser Ansatz integriert GitLab mit AWS CodePipeline und ermöglicht es dir, den gesamten Prozess – von der Quellcodeverwaltung über Builds bis hin zu Tests und Bereitstellung – mit AWS-Services wie CodeBuild und CodeDeploy zu automatisieren. So wird ein robuster, skalierbarer und effizienter Bereitstellungsprozess gewährleistet.

Diagramm neuer Technologien und Lösungen für die gemeinsame Nutzung von GitLab und AWS

1. Verbindung von GitLab mit AWS-Services über AWS CodeStar Connections

AWS CodeStar Connections ist ein Service, mit dem du externe Git-Repositories (wie GitHub oder Bitbucket) mit den AWS-Services verbinden kannst. Du kannst GitLab auch über CodeStar Connections mit AWS-Services verbinden. Wenn du GitLab verwendest, musst du möglicherweise eine benutzerdefinierte Verbindung als HTTP-Git-Server einrichten. Die folgenden AWS-Services können mit dieser Methode mit GitLab verbunden werden:

  • **AWS Service Catalog **

Der AWS Service Catalog hilft Unternehmen bei der Standardisierung und Verwaltung von AWS-Ressourcen. Die Integration mit GitLab verbessert die Transparenz beim Ressourcenmanagement und vereinfacht die Nachverfolgung von Änderungen. Insbesondere kannst du Katalogaktualisierungen auf der Grundlage von GitLab-Commits automatisieren und so die Effizienz deines Vorgangs verbessern.

  • AWS CodeBuild

AWS CodeBuild ist ein verwalteter Build-Service, der Quellcode kompiliert, Tests durchführt und bereitstellbare Softwarepakete erstellt. Die Integration von GitLab mit CodeBuild ermöglicht es, automatisierte Build-Prozesse zu starten, wenn Codeänderungen an GitLab übertragen werden. Dies garantiert einheitliche Builds und erleichtert die Zusammenarbeit und Versionskontrolle.

  • AWS Glue Notebook Jobs

AWS Glue Notebook Jobs ist ein Service, mit dem du interaktiv Datenaufbereitungs- und ETL-Aufgaben (Extract, Transform, Load) entwickeln und ausführen kannst. Die Integration von GitLab mit Glue Notebook Jobs ermöglicht die Versionskontrolle für Notebooks und ETL-Skripte, fördert die Zusammenarbeit zwischen Teammitgliedern und verbessert das Qualitätsmanagement von Datenverarbeitungs-Pipelines.

  • AWS Proton

AWS Proton ist ein Service, der die Entwicklung und Bereitstellung von Microservices und serverlosen Anwendungen automatisiert. Durch die Integration von GitLab mit AWS Proton kannst du Infrastructure as Code verwalten, Bereitstellungen automatisieren und ein konsistentes Umgebungsmanagement sicherstellen, was zu effizienteren Entwicklungsprozessen führt.

Wenn AWS CodeStar Connections in Zukunft mehr Dienste unterstützen, wird es immer einfacher, GitLab mit zusätzlichen AWS-Services zu verbinden. Du solltest regelmäßig prüfen, ob es neue Services gibt, die CodeStar Connections unterstützen.

  1. Verbindung von CodePipeline mit GitLab über AWS CodeStar Connections (einschließlich CodeDeploy)

AWS CodePipeline ist ein kontinuierlicher Bereitstellungsdienst, der den Freigabeprozess für Software automatisiert. Um GitLab mit CodePipeline zu verbinden, musst du AWS CodeStar Connections verwenden. Mit dieser Einrichtung kannst du ein GitLab-Repository als Quelle festlegen und die gesamte CI/CD-Pipeline automatisieren. Beispiele für wichtige Aktionen, die CodePipeline unterstützt:

  • Quellcode-Kontrolle: AWS CodeCommit, GitHub, Bitbucket, GitLab
  • Erstellen und Testen: AWS CodeBuild, Jenkins
  • Bereitstellen: AWS CodeDeploy, Elastic Beanstalk, ECS, S3
  • Genehmigen: Manuelle Genehmigung
  • Infrastruktur-Management: AWS CloudFormation
  • Serverlos: AWS Lambda
  • Tests: AWS Device Farm
  • Benutzerdefinierte Aktionen: AWS Step Functions

Durch die Integration von GitLab mit CodePipeline kannst du die Pipeline automatisch auslösen, wenn Codeänderungen nach GitLab gepusht werden, um einen konsistenten Prozess vom Build bis zur Bereitstellung sicherzustellen. In Kombination mit den Versionskontrollfunktionen von GitLab ist es außerdem einfacher, den Verlauf und die Zustände der Bereitstellung zu verfolgen, was zu einer flexibleren und zuverlässigeren Softwarebereitstellung führt.

Das hast du gelernt

Diese Anleitung enthält umfassende Informationen über die Migration zu und die Integration von GitLab in AWS. In den vier Abschnitten haben wir Folgendes behandelt:

  • Parallele Migration zu GitLab: Wie du schrittweise von bestehenden, bei AWS gehosteten Repositories zu GitLab.com migrierst und dabei die Risiken minimierst.
  • Integration mit AWS CodeBuild: Schritte zum Einrichten einer leistungsstarken CI-Umgebung, die mit GitLab-Repositories integriert ist.
  • Integration mit AWS CodePipeline: Wie du effiziente Continuous-Delivery-Pipelines mit GitLab-Repositories aufbaust.
  • Nachgelagerte Integrationen für CodePipeline und CodeStar Connections: Die Nutzung von GitLab-AWS-Verbindungen für einen weitreichenden Service-Zugang, wodurch eine Reihe von Integrationsmöglichkeiten im gesamten AWS-Ökosystem entstehen.

Da die Code-Hosting- und Integrationsstrategie jedes Unternehmens einzigartig ist, kannst du dieses Tutorial als Ausgangspunkt für deine eigene GitLab- und AWS- Integrations- und Implementierungsstrategie nutzen.

Zusätzliche Ressourcen

Weitere Informationen und erweiterte Konfigurationen findest du in den folgenden Ressourcen:

Wenn du Fragen hast oder Unterstützung benötigst, wende dich bitte an den GitLab-Support oder den AWS-Support. Wir hoffen, dass dir diese umfassende Anleitung bei deiner AWS-GitLab-Integration hilft

Wir möchten gern von dir hören

Hat dir dieser Blogbeitrag gefallen oder hast du Fragen oder Feedback? Erstelle ein neues Diskussionsthema im GitLab Community-Forum und tausche deine Eindrücke aus. Teile dein Feedback

Bist du bereit?

Sieh dir an, was dein Team mit einer einheitlichen DevSecOps-Plattform erreichen könnte.

Kostenlose Testversion anfordern

Finde heraus, welcher Tarif für dein Team am besten geeignet ist

Erfahre mehr über die Preise

Erfahre mehr darüber, was GitLab für dein Team tun kann

Sprich mit einem Experten/einer Expertin