Seminar Flask Legacy-Anwendungen modernisieren und migrieren

Ältere Flask-Anwendungen enthalten häufig globale Zustände, direkte Erweiterungsbindung, unklare Abhängigkeiten und nicht mehr unterstützte Paketstände. Ein erfolgreicher Umbau beginnt mit einer reproduzierbaren Baseline und kleinen überprüfbaren Schritten.

Das Seminar verbindet Abhängigkeitsupgrade, Deprecation-Bereinigung, Factory- und Blueprint-Refactoring, Datenmigration und sicheren Rollout. Ein Big-Bang wird ausdrücklich vermieden.

Inhaltsübersicht

  1. Bestandsaufnahme und technische Baseline
  2. pytest-Struktur und Fixtures
  3. Abhängigkeiten und Deprecations aktualisieren
  4. Refactoring zu Factory, Blueprints und Services
  5. Schema-Migrationen und Datenänderungen
  6. Migrationsplan, Datenänderungen und Rollout
  7. Continuous Integration und Qualitätsgates
  8. Praxisprojekt und Wissenssicherung

Lernziele

  • Technische Ausgangslage und kritische Pfade belastbar erfassen.
  • Abhängigkeiten und Deprecations in kontrollierten Stufen aktualisieren.
  • Globale Strukturen zu Factory, Blueprints und Services refaktorieren.
  • Regressionstests und Migrationen als Sicherheitsnetz aufbauen.
  • Rollout und Rückfallweg nach messbaren Kriterien planen.

Zielgruppe

Erfahrene Flask-Entwickler, Architekten und technische Verantwortliche für gewachsene Anwendungen mit Modernisierungsbedarf.

Voraussetzungen

Gute Flask- und Python-Kenntnisse, Erfahrung mit Git, Tests und Datenbanken. Eine eigene Altanwendung kann als Fallbeispiel dienen.

Seminarinhalte

1. Bestandsaufnahme und technische Baseline

Vor Änderungen werden Versionen, Erweiterungen, Betriebswege und kritische Funktionen belastbar erfasst.

  1. Schritt 1: Python-, Flask-, Werkzeug-, Jinja- und Erweiterungsstände inventarisieren.
  2. Schritt 2: Startpfade, globale Zustände, Importseiteneffekte und eigene Patches identifizieren.
  3. Schritt 3: Kritische Endpunkte, Datenflüsse und Betriebsabhängigkeiten priorisieren.
  4. Schritt 4: Reproduzierbare Entwicklungs- und Testumgebung als Ausgangsbasis herstellen.

2. pytest-Struktur und Fixtures

Tests erhalten wiederverwendbare, klar begrenzte Setups für Anwendung, Client, CLI und Daten.

  1. Schritt 1: Testverzeichnisse und Benennung nach pytest-Konventionen anlegen.
  2. Schritt 2: App-Fixture mit TESTING-Konfiguration und sauberem Teardown erstellen.
  3. Schritt 3: Client-, Runner- und Daten-Fixtures aus der App-Fixture ableiten.
  4. Schritt 4: Fixture-Sichtbarkeit und Scope so klein wie möglich halten.

3. Abhängigkeiten und Deprecations aktualisieren

Versionssprünge werden in kleinen, überprüfbaren Schritten statt als unkontrollierter Rundumschlag durchgeführt.

  1. Schritt 1: Abhängigkeiten sperren und Sicherheits- sowie Kompatibilitätsgrenzen dokumentieren.
  2. Schritt 2: Deprecation-Warnungen sammeln und nach Auswirkung priorisieren.
  3. Schritt 3: Zuerst transitive Bibliotheken, danach Flask und Erweiterungen stufenweise aktualisieren.
  4. Schritt 4: Nach jedem Schritt Testlauf, Startprobe und Datenbankzugriff prüfen.

4. Refactoring zu Factory, Blueprints und Services

Monolithische Einstiegsmodule werden ohne Big-Bang in klar getrennte Bestandteile überführt.

  1. Schritt 1: Globale Erweiterungsobjekte vom konkreten App-Objekt lösen.
  2. Schritt 2: Application Factory einführen und bestehende Konfiguration übernehmen.
  3. Schritt 3: Routen schrittweise in Blueprints und Geschäftslogik in Services verschieben.
  4. Schritt 4: Alte und neue Struktur während der Übergangsphase mit denselben Regressionstests prüfen.

5. Schema-Migrationen und Datenänderungen

Datenbankschemata werden versioniert, überprüft und mit sicheren Vorwärts- und Rückwärtswegen ausgeliefert.

  1. Schritt 1: Migrationswerkzeug initialisieren und Metadaten der Anwendung korrekt anbinden.
  2. Schritt 2: Autogenerierte Migrationen fachlich prüfen und manuelle Korrekturen dokumentieren.
  3. Schritt 3: Schemaänderung und Datenmigration trennen, wenn Laufzeit oder Sperren kritisch werden.
  4. Schritt 4: Upgrade, Downgrade und Neuaufbau der Datenbank in einer isolierten Umgebung testen.

6. Migrationsplan, Datenänderungen und Rollout

Technische Modernisierung wird mit Datenkompatibilität, Betriebsfenster und Rückfallstrategie abgestimmt.

  1. Schritt 1: Änderungen nach Risiko, Kopplung und Betriebswirkung in Releases schneiden.
  2. Schritt 2: Schemaänderungen rückwärtskompatibel vorbereiten und getrennt ausrollen.
  3. Schritt 3: Shadow-, Canary- oder Parallelbetrieb anhand der Plattformmöglichkeiten planen.
  4. Schritt 4: Rollback-Kriterien, Datensicherung und Nachkontrolle vor dem Produktivwechsel testen.

7. Continuous Integration und Qualitätsgates

Jede Änderung durchläuft reproduzierbare Prüfungen, bevor sie zusammengeführt oder ausgeliefert wird.

  1. Schritt 1: Installation aus Lockfile beziehungsweise definierten Abhängigkeiten in sauberer Umgebung durchführen.
  2. Schritt 2: Formatierung, Linting, Typprüfung, Tests und Sicherheitsprüfung in getrennten Schritten ausführen.
  3. Schritt 3: Testmatrix für unterstützte Python- und Flask-Stände festlegen.
  4. Schritt 4: Abbruchkriterien, Artefakte und nachvollziehbare Berichte als Merge-Gate konfigurieren.

Praxisprojekt

Eine bewusst veraltete Beispielanwendung wird inventarisiert, mit Tests eingefroren und schrittweise modernisiert. Das Ergebnis umfasst aktualisierte Abhängigkeiten, Factory-Struktur, Migrationen und einen dokumentierten Rolloutplan.

Methodik

Kurze fachliche Einordnungen wechseln mit Demonstrationen, geführten Umsetzungen, Fehleranalysen und eigenständigen Übungen. Jede größere Änderung wird durch einen Test, eine Diagnose oder eine betriebliche Prüfroutine abgesichert. Die Arbeitsstände werden schrittweise zu einem durchgängigen Beispielprojekt zusammengeführt.

Fachbereichsleitung / Trainerteam / Ansprechpartner

Seminardetails

   
Dauer: 2 Tage ca. 6 h/Tag, Beginn 1. Tag: 10:00 Uhr, weitere Tage: 09:00 Uhr
Preis: Öffentlich oder Live Stream: € 1.198 zzgl. MwSt.
Inhaus: € 3.400 zzgl. MwSt.
Teilnehmeranzahl: min. 2 - max. 8
Teilnehmer: Erfahrene Flask-Entwickler, Architekten und technische Verantwortliche für gewachsene Anwendungen mit Modernisierungsbedarf.
Voraussetzungen: Gute Flask- und Python-Kenntnisse, Erfahrung mit Git, Tests und Datenbanken. Eine eigene Altanwendung kann als Fallbeispiel dienen.
Standorte: Stream Live, Inhaus/Firmenseminar, Berlin, Bremen, Darmstadt, Dresden, Erfurt, Essen, Flensburg, Frankfurt, Freiburg, Friedrichshafen, Hamburg, Hamm, Hannover, Jena, Kassel, Köln, Konstanz, Leipzig, Luxemburg, Magdeburg, Mainz, München, Münster, Nürnberg, Paderborn, Potsdam, Regensburg, Rostock, Stuttgart, Trier, Ulm, Wuppertal, Würzburg
Methoden: Vortrag, Demonstrationen, praktische Übungen am System
Seminararten: Öffentlich, Webinar, Inhaus, Workshop - Alle Seminare mit Trainer vor Ort, Webinar nur wenn ausdrücklich gewünscht
Durchführungsgarantie: ja, ab 2 Teilnehmern
Sprache: Deutsch - bei Firmenseminaren ist auch Englisch möglich
Seminarunterlage: Dokumentation auf Datenträger oder als Download
Teilnahmezertifikat: ja, selbstverständlich
Verpflegung: Kalt- / Warmgetränke, Mittagessen (wahlweise vegetarisch)
Support: 3 Anrufe im Seminarpreis enthalten
Barrierefreier Zugang: an den meisten Standorten verfügbar
  Weitere Informationen unter + 49 (221) 74740055

Seminartermine

Die Ergebnissliste kann durch Anklicken der Überschrift neu sortiert werden.

Seminar Startdatum Enddatum Ort Dauer
Darmstadt 2 Tage
Frankfurt 2 Tage
Paderborn 2 Tage
Essen 2 Tage
Konstanz 2 Tage
Freiburg 2 Tage
Potsdam 2 Tage
Flensburg 2 Tage
Leipzig 2 Tage
Hamm 2 Tage
Rostock 2 Tage
Hamburg 2 Tage
Luxemburg 2 Tage
Hannover 2 Tage
Stuttgart 2 Tage
Dresden 2 Tage
Madgeburg 2 Tage
Regensburg 2 Tage
Jena 2 Tage
Trier 2 Tage
München 2 Tage
Friedrichshafen 2 Tage
Kassel 2 Tage
Ulm 2 Tage
Münster 2 Tage
Nürnberg 2 Tage
Köln 2 Tage
Wuppertal 2 Tage
Bremen 2 Tage
Berlin 2 Tage
Mainz 2 Tage
Erfurt 2 Tage
Paderborn 2 Tage
Essen 2 Tage
Darmstadt 2 Tage
Frankfurt 2 Tage
Potsdam 2 Tage
Flensburg 2 Tage
Konstanz 2 Tage
Freiburg 2 Tage
Nach oben
Seminare als Stream SRI zertifiziert
© 2026 www.seminar-experts.de All rights reserved. | Kontakt | Impressum | Nach oben