Page MenuHomePhorge: Wikonia

Infrastruktur-Change: Migration des Code-Review- und Repository-Hostings: Ablösung von Phorge Differential/Diffusion
New or open task, HighPublictask

Description

Zusammenfassung und Motivation

Die aktuellen Phorge-Module Differential (Code-Review) und Diffusion (Repo-Hosting) inklusive Arcanist stellen ein erhebliches technisches Risiko dar und sind nicht mehr zeitgemäß. Die Ablösung des Systems ist notwendig, um die Zukunftsfähigkeit unserer Entwicklungs-Workflows, die Stabilität unserer Infrastruktur sowie die Einhaltung aktueller Sicherheitsstandards zu gewährleisten.

Dieser Schritt erfordert einen komplexen, strategischen Infrastruktur-Change (Lift & Shift / Replatforming) mit weitreichenden Auswirkungen auf unsere Entwicklungsprozesse.

Die Dokumentation des Projekts wird im Hauptwiki stattfinden, da das Projekt globale Auswirkungen haben wird. Die Doku steht auf der Seite Wikonia:Code-Review_verbessern_(Projekt)

Tickert: Problemstellung (IST-Analyse)

  • Veraltete Technologie/Wartung: Die Basis von Phorge (ehemals Phabricator) ist veraltet, die aktive Community-Unterstützung ist stark begrenzt, und die langfristige Stabilität und Sicherheit ist nicht garantiert.
  • Komplexität im Workflow: Der Pre-Commit-Review-Workflow von Differential mit Arcanist ist im Vergleich zu modernen Pull/Merge-Request-Systemen (z.B. in GitLab, GitHub) weniger intuitiv und führt zu Ineffizienzen bei neuen Mitarbeitern und in der Zusammenarbeit mit externen Teams.
  • Mangelnde Integration: Die Integration in moderne CI/CD-Pipelines und andere zeitgemäße DevOps-Tools ist oft aufwendig oder nur über Workarounds möglich.

Ticket: Zielsetzung (SOLL-Zustand)

  • Ablösung: Vollständige Deaktivierung und schrittweise Außerbetriebnahme der Phorge-Module Differential und Diffusion.
  • Migration: Migration aller aktiven Code-Review-Daten (Revisions/Diffs) und aller gehosteten Repositories (inklusive Verlauf, Branches und Tags) in das neue Zielsystem.
  • Modernisierung des Workflows: Einführung eines modernen, standardisierten Pull/Merge-Request-basierten Code-Review-Workflows.
  • Stabilität und Zukunftsfähigkeit: Wechsel zu einer stabileren, zeitgemäßen Plattform mit aktiver Weiterentwicklung, besserem Support und besserer CI/CD-Integration (z.B. GitLab, GitHub Enterprise, Gerrit o.ä.).

Phasen des Infrastruktur-Changes

Dieser komplexe Change wird in folgenden Phasen durchgeführt:

1. IST-Analyse & Strategie (Current State Assessment)
  • Detaillierte Erfassung aller von Differential und Diffusion genutzten Repositories, User-Accounts, aktiven Reviews und Customisations (z.B. Herald Rules).
  • Dokumentation der Abhängigkeiten zu anderen internen Systemen (z.B. CI/CD, Build-Server, interne Authentifizierung).
  • Kandidaten-Analyse: Bewertung möglicher Zielsysteme (siehe Vergleichstabelle unten) basierend auf Kriterien wie Funktionalität, Stabilität, Wartungsaufwand, Lizenzkosten und Migrationsaufwand.
  • Entscheidung und Strategie-Wahl: Auswahl des Zielsystems und Festlegung der Migrationsstrategie (z.B. Big Bang vs. Phasenweise).
2. Konzeption & Proof-of-Concept (POC)
  • Zielsystem-Setup: Aufbau der neuen Ziel-Infrastruktur.
  • Datenmigration: Entwicklung und Test von Skripten/Tools zur Überführung von Repositories und Metadaten. Besonderer Fokus auf der Konvertierung von Arcanist-Patch-Workflows in Merge/Pull Requests.
  • Workflow-Definition: Ausarbeitung des neuen Code-Review-Prozesses.
  • POC: Durchführung einer vollständigen Test-Migration mit einem nicht-kritischen Repository und Test der End-to-End-Workflows.
3. Migration & Parallelbetrieb (Rollout)
  • Piloten-Migration: Migration einer Pilotgruppe/eines kritischen Projekts zur Validierung des Prozesses unter Produktionsbedingungen.
  • Schulung und Change Management: Schulung der Entwicklerteams auf den neuen Workflow.
  • Full Migration: Schrittweise Migration der restlichen Repositories und Teams.
  • Wichtig: Sicherstellung eines stabilen Parallelbetriebs oder eines geplanten Migrationsfensters mit minimaler Ausfallzeit.
4. Abschließende Außerbetriebnahme
  • Validierung: Umfassende Überprüfung der neuen Systeme und Workflows.
  • Deaktivierung: Abschaltung der Phorge-Module Differential und Diffusion.
  • Archivierung: Archivierung zur Compliance (historische Daten).

Ticket: Kandidaten-Vergleich (Auszug)

SystemCode-Review-ModellCI/CD-IntegrationOn-Premise-OptionMigrationsaufwand (geschätzt)
GitLab (Self-Managed)Merge RequestNative & TiefJa (Enterprise)Mittel-Hoch (Viele Features)
GitHub (Enterprise)Pull RequestGitHub ActionsJa (GHES)Mittel-Hoch (Standardisiert)
GerritChange/Patch SetJenkins, AndereJa (Open Source)Hoch (Workflow-Wechsel)

Ticket: Risiken und Chancen

    1. Chancen
  • Zukunftssicherheit: Nutzung einer modernen, aktiv gewarteten Plattform.
  • Effizienzsteigerung: Vereinfachung des Code-Review-Workflows durch Branchenstandards (Merge/Pull Request).
  • Integration: Nahtlose Anbindung an moderne CI/CD-Systeme und andere DevOps-Tools.
  • Skalierbarkeit/Stabilität: Verbesserte Performance und Hochverfügbarkeit des Repository-Hostings.
    1. Risiken
  • Datenverlust: Gefahr des Verlusts oder der fehlerhaften Übertragung von Code-Review-Historie (Kommentare, Zustände). (Minderung: POC, Testmigrationen, Backup-Strategie).
  • Akzeptanz: Widerstand in Entwicklerteams gegen den Wechsel des gewohnten Arcanist-Workflows. (Minderung: Change Management, Schulungen, Einbeziehung der Key User).
  • Ausfallzeiten: Lange oder ungeplante Ausfallzeiten während der Migration kritischer Repositories. (Minderung: Geplante Wartungsfenster, Parallelbetrieb, automatisierte Migrationstools).

Details

Schwierigkeitsgrad
Chuck Norris!
Ticket-Details
Komponente
Phorge
Kategorie der Aufgabe
Orga / Koordination