Perspektive

Verwaltung der Quellenkontrolle (SCM)

SCM-Migration 101

Victor Rinaldo S K,

Associate Architect,
Global Capabilities & Technologielösungen für die technische Automatisierung

 

Veröffentlicht: März 31, 2022

Überblick über die SCM-Migration

Die Verwaltung und Kontrolle der Versionen von Quellcode und Assets ist unerlässlich, um die Bereitstellung durch DevOps in einem Unternehmen zu beschleunigen. Es gibt verschiedene verteilte Versionskontrollplattformen, sodass ihre Migration ohne einen geeigneten Plan eine Herausforderung darstellt. Einige der häufigsten Aspekte, die bei Migrationen übersehen werden, sind die Integrationen der Versionskontrollverwaltung (SCM), d. h. die Integration mit Build-Tools, Bereitstellungstools, Artefakten und anderen SDLC-Tools (Software Development Life Cycle).

Bei der SCM-Migration geht es nicht nur um den Wechsel von einem Versionskontrollsystem zu einem anderen. Es ist eine Gelegenheit, alte Inkonsistenzen oder Herausforderungen zu korrigieren und moderne und kollaborative Arbeitsabläufe zu implementieren, um die Arbeit der Entwickler zu erleichtern. In diesem Blog haben wir die wichtigsten Aspekte der SCM-Migration behandelt, damit Sie Ihre SCM-Migration reibungslos planen können.

Vorbereitung der Migration

Bei der Migrationsvorbereitung wird die bestehende Verzweigungsstrategie überprüft und das Tool-Ökosystem sowie die SCM-Tool-Integrationen bewertet. Vor der Migration ist es wichtig, die folgenden Schritte zu analysieren und zu planen, ob Änderungen erforderlich sind:

  • Planung der Verzeichnisstruktur und Standards: Analysieren, ob eine Umstrukturierung des Codeverzeichnisses erforderlich ist, was bei der Integration mit den Build-Tools helfen könnte
  • Freigabeprozess: Überprüfung des Freigabeprozesses und ggf. Quality Gates
  • Bereinigung von Repositories und Branches: Verfolgen, Analysieren und Bereinigen der ungenutzten Repositories und Branches
  • Bewältigung bestehender SCM-Herausforderungen: Eine frühere Lösungsfindung beseitigt die derzeitigen SCM-Beschränkungen, indem sie die Funktionen des Global Information Tracker (GIT) nutzt.
  • Auswahl des Migrationswerkzeugs/der Skripte: Analyse der verfügbaren Migrationstools, die für die Migration geeignet sind, oder Planung der Entwicklung eigener Skripte
  • Schulung und Umstellung: Planen der Zeitpläne für die Schulung der Entwickler zur Nutzung der GIT-Plattform

Checkliste für die Migration

Unternehmen müssen Projekte und Kategorien identifizieren, die sie migrieren wollen. Darüber hinaus müssen Unternehmen, noch bevor ein Repository für die Migration identifiziert wird, folgende Punkte sicherstellen:

  • Wird ein ganzes Repository migriert?
  • Werden wir bis zu einer bestimmten Revision migrieren?
  • Migrieren wir aus einer völlig unberührten Historie?
  • Werden nur Tags und Branches migriert?

Es ist wichtig, sich über diese Spezifikationen im Klaren zu sein, da die Migration Rollen und Berechtigungen umfasst, die ebenfalls migriert werden müssen, wie z. B. rollenbasierte Zugriffskontrolle (RBAC), Lightweight Directory Access Protocol (LDAP) und Active Directory (AD). Schließlich müssen die Unternehmen Benutzer und Benutzergruppen sowie SCM-Integrationen für die Migration einrichten.

Verschiedene Phasen der SCM-Migration und zu berücksichtigende Schlüsselaspekte

Entdecken Sie

Bestandsaufnahme

  • Repository
  • Infrastruktur
  • Projekte
  • Integration/Abhängigkeiten

Bewertung durchführen

  • Lücken aufdecken
  • Identifizierung von Bedürfnissen/Lösungsbereichen

Plan

Plan erstellen

  • Mit SCM verbundene Inventarisierungswerkzeuge und -anlagen
  • Erstellung einer Strategie zur Migration der Werkzeugplattform
  • SCM-Administratoren vereinheitlichen
  • Einbindung der Nutzer in den Entwicklungsprozess

Prozesswiederverwendungsplan erstellen

  • „Aktiven Code“ definieren
  • Migrationsskripte vorbereiten
  • SCM-Praktiken vorlagenbasiert gestalten

Festlegen eines Community-Plans

  • Migrierte Repositories sperren
  • Ermöglichung der Suche, Ermittlung und Wiederverwendung von SCM-Assets
  • Erstellung von Berichten und unternehmensweite Transparenz

Code-Migration

Projektarbeitsbereich einrichten

  • Tool-Integrationen
  • Arbeitsablauf
  • RBAC (Rollenbasierte Zugriffskontrolle)

Benutzer schulen

  • Projektadministratoren
  • Teammitglieder
  • Veröffentlichungsverwalter

Daten migrieren

  • Skripte fertigstellen
  • Migration von aktivem Code und zugehörigen Daten

Team-Sign-Off

  • Überprüfen der migrierten Daten
  • Analyse anderer Bedürfnisse
  • Entwicklung durch Bereitstellung

Aufrechterhaltung & Verbesserung

Community Management vorantreiben

  • Onboarding für neue Benutzer
  • Einarbeitung in neue Projekte
  • Neue Best Practices
  • Wiederverwendung und Zusammenarbeit
  • Unternehmensmetriken messen

Wartung der GIT-Plattform

  • Plattform-Upgrade
  • Werkzeug-Upgrades
  • Tool-Integrationen

Bewertung durchführen

  • Lücken aufdecken
  • Identifizierung von Bedürfnissen/Lösungsbereichen

 

Best Practices für die Migration 

Für jede Migrationsaktivität ist es entscheidend, die Best Practices zu befolgen und zu übernehmen. Nachfolgend finden Sie eine Liste bewährter SCM-Migrationsverfahren, die Ihnen helfen werden, Ihre SCM-Migration möglichst reibungslos zu planen:

  1. Coaching der Nutzer
    Der Wandel ist schwierig, vor allem wenn die Unternehmen nicht dafür prädisponiert sind. Mit einem geeigneten Aktionsplan kann sie jedoch leicht vollzogen werden. Die meisten GIT-Plattformen bieten eine FAQ-Seite, auf der die Vorteile einer Migration zu GIT ausführlich beschrieben werden. Die Benutzer sollten die ergänzenden Schulungsoptionen von GIT nutzen.

    Bevor ein Entwickler mit der SCM-Migration beginnt, muss er sich über folgende Punkte im Klaren sein: Bereinigung und Bestätigung von Branches, Migrationstermine, Unterstützung nach der Migration usw. Daher ist die Planung und Durchführung von Schulungssitzungen für die Entwickler von größter Bedeutung, um die richtigen Erwartungen hinsichtlich der für die SCM-Migration erforderlichen Unterstützung zu wecken. 

  2. Koordinierung mit den Nutzern/Teams
    Wie bereits erwähnt, kann die Umsetzung von Veränderungen eine Herausforderung sein. Vor allem dann, wenn sie die Menschen überraschen und Widerstand hervorrufen. Auch wenn es bei der Umstellung auf GIT darum geht, das Leben der Entwickler zu verbessern, muss dies den beteiligten Teams genau kommuniziert werden. Eine klare und konsistente Kommunikation über den Migrationsprozess, einschließlich genauer Termine oder Zeitfenster, kann allen genügend Zeit geben, sich anzupassen und vorzubereiten.

  3. Schrittweise Migration
    Aufgrund der Historie, der aktuellen Arbeitsabläufe und der laufenden Projekte sind bestimmte Repositorys und Teams leichter zu migrieren. Daher sollte man die Migrationsteams nicht zu einem abrupten Wechsel zwingen, insbesondere wenn sie nicht darauf vorbereitet sind. Es ist immer besser, die Migration mit ausgewählten Gruppen oder Nutzern, die bereits mit GIT vertraut sind, zu erproben.

  4. Befolgen Sie die bewährte GIT-Praxis, um Repositories zu pflegen
    Das Einfrieren von Quellcode-Repositories (was bedeutet, dass keine neuen Änderungen in diese Repositories übertragen werden können) mit einem kommunizierten Freeze-Datum kann dazu beitragen, die Wahrscheinlichkeit zu verringern, dass Informationen durch die Maschen fallen. Außerdem erleichtern kleinere Repositorys die Migration – 1 GB oder weniger ist ideal. Sie können die Tools „GIT-filter-branch“ und „BFG Repo Cleaner“ verwenden, um große Dateien zu entfernen oder sie mit GIT-large file storage (LFS) zu verfolgen.

  5. Testen
    Mit umfangreichen Testläufen während der eigentlichen Migration sollte es keine Überraschungen geben. Wir können zwar keine Garantien geben, aber frühzeitiges und häufiges Testen und vor allem die Dokumentation sowohl der Benutzer- als auch der Verwaltungsprozesse während der Tests kann spätere Kopfschmerzen verringern. 

  6. Berücksichtigen Sie die Integrationen
    Ein häufiger Fehler, der bei Migrationen gemacht wird, ist das Weglassen von Integrationen. Bei so vielen zu portierenden Komponenten wie Repositories, Teams und mehr werden Integrationen leicht vergessen, selbst wenn es sich um wichtige Komponenten wie SDLC-Tools, Build-Tools, Deployment-Tools, Artifactory usw. handelt.

    Die Migration ist ohne die Integration der oben genannten Tools in GIT unvollständig und könnte sich sogar auf die Auslieferung und die Freigaben auswirken, wenn sie nicht geplant ist.

    Analyse der Tool-Landschaft und der in das aktuelle SCM integrierten Tools, die bewertet und für die Migration geplant werden müssen. Darüber hinaus kann eine gründliche Prüfung der zu migrierenden Elemente dazu beitragen, dies zu verhindern.

  7. Messen des Migrationserfolgs und der Metriken
    Eine Migration endet nicht, wenn das letzte Team Ihrer GIT-Instanz beitritt. Um sicherzustellen, dass jedes Team und jedes Projekt mit GIT erfolgreich ist, müssen Sie kontinuierlich messen, wo das Projekt erfolgreich ist und wo weniger. Auch wenn die Leistungsindikatoren variieren, hier ein paar Ideen für den Anfang: 
    1. Prozentsatz der migrierten gemeldeten Teams 
    2. Zufriedenheit der Teams mit dem Migrationsprozess 
    3. Verwendungsmetriken aus GIT
    4. Durchschnittliche Migrationsdauer in Tagen
       
  8. Migration mit Hilfe von Importeuren
    Für jede GIT-Plattform gibt es spezielle Importeure/Migrationswerkzeuge, mit denen Repositories schnell in GIT importiert werden können.

    Diese Importeure importieren nicht nur den Code, sondern auch die Commits und History-Revisionen. Die Verwendung dieser Tools hilft bei einer sauberen Migration. 

Abschließende Gedanken

Die Planung ist der Schlüssel zu einer erfolgreichen Migration. Der obige Abschnitt behandelt alle wichtigen Aspekte, die zu berücksichtigen sind, einschließlich der Migrationsvorbereitungen, Checklisten und der besten Praktiken für die SCM-Migration, die Unternehmen bei der Planung einer risikofreien SCM-Migration helfen können.

Verwandte Inhalte