Migration mit Python Unterstützung

Migration mit Python Unterstützung

  Bildquelle: www.pixabay.com

Im letzten Sommer startete bei meinem Arbeitgeber Büro für Bauökonomie AG das Projekt für den Umstieg in die Cloud. Die Emch+Berger Gruppe gab die Vorgabe der Microsoft Azure Cloud mit Microsoft Office 365, SharePoint in Kombination mit Microsoft Teams. Nach Klärung aller offenen Punkte planten wir die Datenmigration zwischen Weihnachten 2020 und Neujahr 2021.

Mitte November begann ich mir zu überlegen, wie ich die Migration mit Python automatisieren könnte. Ich begann die pyOsTools zu entwickeln: Python Scripte zum erfassen und vergleichen von komplexen Datei-Strukturen. Ich entwickelte sie privat auf Linux mit dem Hinblick diese auf Windows 10 zu portieren.

Die pyOsTools sind ohne Benutzeroberfläche konzipiert. Die Einstellungen werden am Anfang der Scripte gemacht, die Resultate werden als Text-Dateien in die Ziel-Verzeichnisse geschrieben. Während der Migration verbesserte ich die Datei-Ausgabe und machte diese übersichtlicher.

Ich habe über den Jahreswechsel 2020 bis 2021 über 1'000 Datei-Strukturen migriert mit durchschnittlich 2 Gigabyte pro Struktur, insgesamt etwas mehr als 2 Terrabyte. Wenn eine Datei durchschnittlich 2 Megabyte hätte, wären das 1'000'000 Dateien. Ich konnte die Prüfung der Migration in der 2. Januarwoche abschliessen.

Die Vergleich- und Prüfbarkeit ist mir wichtig. Bei der Migration hatte ich Fehlermeldungen durch zu lange Pfade. Dies gab es bei Kopier Operationen im Explorer und auch bei automatisierten Kopbierbefehlen mit dem Windows CMD Befehl "robocopy". Ich prüfte die Migration mit den pyOsTools und besserte bei vielen Datei-Strukturen nach. Ich glaube ich habe eine Übereinstimmung von 99.5% erreicht.

Bei obigem Zahlenbeispiel wären das 5'000 Dateien, welche nicht korrekt migriert werden konnten, 5 Dateien pro Struktur.

Da das Nachbessern anhand der Vergleichsdaten von pyOsTools nicht immer sehr intuitiv war, begann ich die pyOsV2 zu entwickeln. Die gleiche Funktionalität, jedoch mit einer grafischen Benutzeroberfläche. Aus den Erfahrungen der Prüfung der Migration verzichtete ich ganz auf eine detaillierte Darstellung der unterschiedlichen Dateien mit den Informationen und legte meinen Fokus auf eine Integration des Dateimanagers.

Die Unterschiede werden anhand von Dateinamen, Grössen und Datum im Vergleich des Ziels mit der Quelle angezeigt. Für Detailinformationen kann das Verzeichnis angeklickt und direkt das Quell- und das Zielverzeichnis in 2 Dateimanager Fenster geöffnet werden. Damit kann nachgebessert werden, ohne dass man zuerst manuell in die Verzeichnisse wechseln muss.

Bei der Entwicklung der pyOsV2 habe ich eine Funktion eingebaut, welche ich mir immer gewünscht habe: Die Dokumentation grosser Datei-Strukturen. Erst letzten Herbst dokumentierte ich eine Struktur mit dem Windows CMD Befehl "dir /s > dirs.txt" und machte die erfassten Dateien im Excel schön. Das war sehr aufwendig.

Mit pyOsV2 kann eine Datei-Struktur elegant als HTML Dokument geschrieben werden. Darauf freue ich mich schon beim nächsten Mal!

Ich freue mich über eure Rückmeldungen und Verbesserungen.

Weiter Informationen zu beiden Tools findet ihr hier:
pyOsTools
pyOsV2