Seminar Flask Intensivseminar – Betrieb, Performance und verteilte Verarbeitung

Dieses Intensivformat verbindet produktive Bereitstellung, Leistungsanalyse, Hintergrundverarbeitung und asynchrone beziehungsweise verteilte Abläufe. Damit entsteht ein durchgängiger Betriebsweg vom Build bis zur Kapazitätsgrenze.

WSGI-Server, Proxy, Container, Secrets und Rollout werden gemeinsam mit Profiling, Caching, Worker-Dimensionierung, Celery, Async Views, Streaming und Telemetrie behandelt. Jede Betriebsentscheidung wird gemessen oder durch eine Störungssimulation überprüft.

Inhaltsübersicht

  1. Produktionsbetrieb mit WSGI-Servern
  2. Reverse Proxy, TLS und Proxy-Vertrauen
  3. Container-Image und reproduzierbare Laufzeit
  4. Secrets, Umgebungswerte und Betriebsparameter
  5. Health Checks, Migrationen und Rollback
  6. Strukturiertes Logging und Korrelationskennungen
  7. Metriken, Tracing und Anwendungsdiagnose
  8. Alarmierung und Störungsbearbeitung
  9. Messstrategie und Profiling
  10. Datenbank- und ORM-Optimierung
  11. Caching und Invalidierungsstrategien
  12. Worker-Modell und horizontale Skalierung
  13. Lasttests und Kapazitätsgrenzen
  14. Celery-Integration und Brokeranbindung
  15. Task-Schnittstellen und Zustandsmodell
  16. Retries, Idempotenz und Fehlerpfade
  17. Zeitplanung, Workflows und Task-Ketten
  18. Queue-Betrieb, Monitoring und Kapazität
  19. Async Views im WSGI-Modell
  20. Parallele I/O-Aufrufe und Zeitlimits
  21. Streaming-Antworten und große Datenmengen
  22. Echtzeitmuster und Integrationsgrenzen
  23. Entscheidung zwischen Flask, ASGI-Adapter und async-first Framework
  24. Praxisprojekt und Wissenssicherung

Lernziele

  • Eine reproduzierbare und gehärtete Produktionsbereitstellung aufbauen.
  • Leistungsengpässe messen und gezielt optimieren.
  • Worker, Cache und horizontale Skalierung belastbar dimensionieren.
  • Hintergrundjobs mit Retries und Idempotenz betreiben.
  • Async- und Streamingmuster realistisch einordnen.
  • Störungen über Logs, Metriken, Traces und Alarme diagnostizieren.

Zielgruppe

Erfahrene Flask-Entwickler, DevOps-, Plattform-, SRE- und Betriebsteams mit Verantwortung für Verfügbarkeit, Leistung und Verarbeitungskapazität.

Voraussetzungen

Sehr gute Flask-Kenntnisse, Linux- und HTTP-Grundlagen sowie Erfahrung mit Datenbanken, Containern und automatisierten Tests.

Seminarinhalte

1. Produktionsbetrieb mit WSGI-Servern

Der Entwicklungsserver wird durch einen belastbaren WSGI-Server mit passendem Worker-Modell ersetzt.

  1. Schritt 1: Anwendungsimport beziehungsweise Factory-Aufruf für den Server eindeutig konfigurieren.
  2. Schritt 2: Prozess-, Thread- und asynchrone Worker nach Lastprofil auswählen.
  3. Schritt 3: Timeouts, Workeranzahl, Max-Requests und Graceful Shutdown festlegen.
  4. Schritt 4: Start, Reload, Absturz und kontrolliertes Herunterfahren unter Last prüfen.

2. Reverse Proxy, TLS und Proxy-Vertrauen

Externe Verbindungen werden am HTTP-Server terminiert und vertrauenswürdige Weiterleitungsinformationen korrekt behandelt.

  1. Schritt 1: Reverse-Proxy-Pfad, Host, Protokoll und Clientadresse als Datenfluss dokumentieren.
  2. Schritt 2: Forwarded Header nur für die bekannte Anzahl vertrauenswürdiger Proxies auswerten.
  3. Schritt 3: TLS, HSTS, Größenlimits und statische Dateien am vorgeschalteten Server konfigurieren.
  4. Schritt 4: Direktzugriff, gefälschte Header und falsche Präfixe mit Integrationstests prüfen.

3. Container-Image und reproduzierbare Laufzeit

Die Anwendung wird als kleines, nicht privilegiertes und reproduzierbares OCI-Image bereitgestellt.

  1. Schritt 1: Build- und Laufzeitabhängigkeiten trennen und einen festen Basisstand wählen.
  2. Schritt 2: Anwendung als Paket installieren und Build-Cache sinnvoll nutzen.
  3. Schritt 3: Nicht als root ausführen, Schreibpfade begrenzen und Konfiguration erst zur Laufzeit injizieren.
  4. Schritt 4: Image lokal, in der CI und mit schreibgeschütztem Dateisystem testen.

4. Secrets, Umgebungswerte und Betriebsparameter

Geheime und veränderliche Werte werden außerhalb des Images verwaltet und beim Start geprüft.

  1. Schritt 1: Schlüssel, Datenbankzugänge und Provider-Credentials inventarisieren.
  2. Schritt 2: Secret-Dateien oder Secret-Store-Anbindung mit minimalen Dateirechten konfigurieren.
  3. Schritt 3: Rotation vorbereiten und mehrere gültige Schlüssel während eines Übergangs unterstützen.
  4. Schritt 4: Fehlende, abgelaufene oder versehentlich protokollierte Secrets erkennen.

5. Health Checks, Migrationen und Rollback

Bereitstellungen werden mit Zustandsprüfungen, kontrollierten Schemaänderungen und einem Rückweg abgesichert.

  1. Schritt 1: Liveness, Readiness und fachliche Abhängigkeiten getrennt definieren.
  2. Schritt 2: Datenbankmigrationen als eigenen, einmaligen Deployment-Schritt ausführen.
  3. Schritt 3: Rolling-, Blue-Green- oder einfache Austauschstrategie passend zur Plattform wählen.
  4. Schritt 4: Fehlgeschlagene Version anhand von Metriken erkennen und Rollback praktisch durchführen.

6. Strukturiertes Logging und Korrelationskennungen

Protokolle werden so gestaltet, dass technische Abläufe und einzelne Requests zuverlässig nachvollziehbar bleiben.

  1. Schritt 1: Logger-Hierarchie, Level und Handler zentral konfigurieren.
  2. Schritt 2: Request-, Benutzer- und Korrelationskennung als strukturierte Felder ergänzen.
  3. Schritt 3: Sensible Daten, Tokens und vollständige Request-Körper konsequent filtern.
  4. Schritt 4: Logausgabe für Entwicklung und zentrale Sammlung getrennt testen.

7. Metriken, Tracing und Anwendungsdiagnose

Latenz, Durchsatz, Fehler und Abhängigkeiten werden messbar gemacht, ohne unnötige Kardinalität zu erzeugen.

  1. Schritt 1: Golden Signals und fachliche Kennzahlen für die Anwendung festlegen.
  2. Schritt 2: Metriken an Request-Grenzen und kritischen Services erfassen.
  3. Schritt 3: Trace-Kontext über HTTP-, Datenbank- und Queue-Grenzen weitergeben.
  4. Schritt 4: Dashboards anhand realer Betriebsfragen statt dekorativer Diagramme strukturieren.

8. Alarmierung und Störungsbearbeitung

Alarme werden aus Nutzerwirkung abgeleitet und mit klaren Diagnose- und Eskalationsschritten verbunden.

  1. Schritt 1: Schwellwerte und SLO-Verletzungen statt einzelner Logzeilen als Signal definieren.
  2. Schritt 2: Warnung, dringenden Alarm und Informationsereignis voneinander trennen.
  3. Schritt 3: Runbooks mit Prüfpfad, Verantwortlichkeit und sicheren Sofortmaßnahmen erstellen.
  4. Schritt 4: Störung simulieren, Alarmweg prüfen und Erkenntnisse in Tests sowie Monitoring zurückführen.

9. Messstrategie und Profiling

Optimierungen beginnen mit reproduzierbaren Messungen statt mit Vermutungen.

  1. Schritt 1: Relevante Nutzerpfade, Lastprofile und Zielwerte festlegen.
  2. Schritt 2: Request-Latenzen, CPU-Zeit, Speicher und externe Wartezeiten getrennt erfassen.
  3. Schritt 3: Profiler in einer sicheren Testumgebung einsetzen und Hotspots priorisieren.
  4. Schritt 4: Vorher-Nachher-Messung mit identischen Daten und Lastbedingungen durchführen.

10. Datenbank- und ORM-Optimierung

Abfragen werden anhand realer Ausführungspläne und Zugriffsprofile verbessert.

  1. Schritt 1: Langsame Abfragen und N+1-Zugriffe über Logging beziehungsweise Tracing identifizieren.
  2. Schritt 2: Ladeoptionen, Pagination und gezielte Spaltenauswahl einsetzen.
  3. Schritt 3: Indizes aus Filter-, Join- und Sortiermustern ableiten und mit Ausführungsplänen prüfen.
  4. Schritt 4: Transaktionsdauer und Poolauslastung unter paralleler Last messen.

11. Caching und Invalidierungsstrategien

Caches werden nur für klar definierte Daten, Lebensdauern und Konsistenzanforderungen eingesetzt.

  1. Schritt 1: Cachekandidaten anhand Berechnungskosten, Änderungsrate und Nutzerwirkung auswählen.
  2. Schritt 2: Schlüssel, TTL, Mandantenbezug und maximale Größe festlegen.
  3. Schritt 3: Cache-Aside, gezielte Invalidierung und Schutz vor Cache Stampede implementieren.
  4. Schritt 4: Trefferquote, veraltete Daten und Ausfall des Cache-Backends testen.

12. Worker-Modell und horizontale Skalierung

Prozesse, Threads und Instanzen werden anhand von CPU-, I/O- und Speicherprofil dimensioniert.

  1. Schritt 1: Synchrones, Thread- und asynchrones Worker-Verhalten für den Anwendungsfall vergleichen.
  2. Schritt 2: Startwert für Worker und Threads festlegen und mit Lasttests verifizieren.
  3. Schritt 3: Sitzungs-, Datei- und Cachezustand für mehrere Instanzen externalisieren.
  4. Schritt 4: Überlastschutz, Warteschlangen und kontrollierte Degradation definieren.

13. Lasttests und Kapazitätsgrenzen

Die Anwendung wird mit realistischen Szenarien bis zu klar erkennbaren Sättigungspunkten geprüft.

  1. Schritt 1: Nutzerpfade, Denkzeiten, Datenvariation und Anlaufphase modellieren.
  2. Schritt 2: Baseline, Ziel- und Stresstest mit identischer Telemetrie durchführen.
  3. Schritt 3: Fehlerquote, Perzentile, Ressourcen und Abhängigkeiten gemeinsam auswerten.
  4. Schritt 4: Kapazitätsannahmen, Sicherheitsreserve und nächste Optimierung dokumentieren.

14. Celery-Integration und Brokeranbindung

Hintergrundverarbeitung wird an die Application Factory angebunden und vom Request-Prozess entkoppelt.

  1. Schritt 1: Broker, Ergebnisbackend und Serialisierung nach Betriebsanforderung auswählen.
  2. Schritt 2: Celery-App in create_app initialisieren und Anwendungskontext für Tasks bereitstellen.
  3. Schritt 3: Worker und Scheduler mit getrennten Konfigurationen starten.
  4. Schritt 4: Verbindungsabbruch, Neustart und fehlerhafte Brokerkonfiguration testen.

15. Task-Schnittstellen und Zustandsmodell

Aufgaben werden klein, serialisierbar und unabhängig von flüchtigem Request-Zustand entworfen.

  1. Schritt 1: Nur stabile Kennungen und primitive Daten statt ORM-Objekte an Tasks übergeben.
  2. Schritt 2: Task-Eingaben validieren und benötigte Daten innerhalb des Tasks erneut laden.
  3. Schritt 3: Status, Fortschritt und Ergebnis nur bei fachlichem Bedarf speichern.
  4. Schritt 4: Task separat ohne laufenden Webserver testen.

16. Retries, Idempotenz und Fehlerpfade

Wiederholungen werden gezielt auf vorübergehende Fehler begrenzt und verursachen keine doppelten Seiteneffekte.

  1. Schritt 1: Temporäre, dauerhafte und fachliche Fehler in getrennte Kategorien einordnen.
  2. Schritt 2: Exponentielles Backoff, Jitter und maximale Versuche konfigurieren.
  3. Schritt 3: Idempotenzschlüssel oder Zustandsprüfungen für verändernde Tasks implementieren.
  4. Schritt 4: Doppelte Zustellung, Workerabbruch und erschöpfte Retries automatisiert prüfen.

17. Zeitplanung, Workflows und Task-Ketten

Wiederkehrende und mehrstufige Abläufe werden mit klarer Reihenfolge und Fehlerstrategie modelliert.

  1. Schritt 1: Periodische Aufgaben mit Zeitzone und eindeutiger Zuständigkeit planen.
  2. Schritt 2: Ketten, Gruppen und Akkorde nur für nachvollziehbare Abhängigkeiten einsetzen.
  3. Schritt 3: Teilresultate, Abbruch und Kompensation mehrstufiger Abläufe festlegen.
  4. Schritt 4: Zeitplanänderungen und parallele Ausführung gegen Doppelverarbeitung absichern.

18. Queue-Betrieb, Monitoring und Kapazität

Warteschlangen werden nach Priorität, Laufzeit und Fehlerverhalten beobachtet und dimensioniert.

  1. Schritt 1: Queues nach Arbeitsart und Priorität trennen, ohne unnötige Fragmentierung.
  2. Schritt 2: Wartelänge, Laufzeit, Fehlerrate und Retry-Anteil als Metriken erfassen.
  3. Schritt 3: Dead-Letter- beziehungsweise Fehlerablage und kontrollierte Wiederaufnahme definieren.
  4. Schritt 4: Workerzahl und Vorabruf anhand gemessener Last einstellen.

19. Async Views im WSGI-Modell

Asynchrone View-Funktionen werden nur dort eingesetzt, wo parallele I/O-Arbeit tatsächlich einen Vorteil bringt.

  1. Schritt 1: Sync- und Async-View hinsichtlich Workerbindung und Event-Loop-Verhalten vergleichen.
  2. Schritt 2: Async-Unterstützung installieren und erste await-fähige Route implementieren.
  3. Schritt 3: Blockierende Bibliotheksaufrufe in Async-Views identifizieren und vermeiden.
  4. Schritt 4: Laufzeit, Fehlverhalten und Workerbelegung mit reproduzierbaren Messungen prüfen.

20. Parallele I/O-Aufrufe und Zeitlimits

Mehrere unabhängige Netzwerk- oder Datenzugriffe werden kontrolliert parallelisiert und mit Grenzen versehen.

  1. Schritt 1: Unabhängige I/O-Aufgaben erkennen und gemeinsam starten.
  2. Schritt 2: Timeouts, Abbruch und Fehleraggregation für Teilaufrufe definieren.
  3. Schritt 3: Ergebnisse deterministisch zusammenführen und Teilausfälle fachlich behandeln.
  4. Schritt 4: Sequenzielle und parallele Variante unter identischer Last vergleichen.

21. Streaming-Antworten und große Datenmengen

Große oder fortlaufend erzeugte Inhalte werden speicherschonend übertragen, ohne Header- und Kontextregeln zu verletzen.

  1. Schritt 1: Generator für schrittweise Ausgabe erstellen und passenden Inhaltstyp setzen.
  2. Schritt 2: Alle Header vor Beginn des Nachrichtentextes festlegen.
  3. Schritt 3: Request-Kontext bei Bedarf mit geeigneter Kontextbindung erhalten.
  4. Schritt 4: Proxy-Pufferung, Clientabbruch und Fehler nach Streamingbeginn testen.

22. Echtzeitmuster und Integrationsgrenzen

Polling, Server-Sent Events, WebSockets und Nachrichtenbroker werden nach Anwendungsfall und Betriebsmodell bewertet.

  1. Schritt 1: Latenz-, Verbindungs- und Skalierungsanforderungen des Anwendungsfalls erfassen.
  2. Schritt 2: Polling beziehungsweise Streaming als einfachste tragfähige Lösung prototypisch umsetzen.
  3. Schritt 3: WebSocket- oder Socket-Erweiterungen nur bei echtem bidirektionalem Bedarf einplanen.
  4. Schritt 4: Verbindungsabbruch, Wiederaufnahme und horizontale Skalierung im Architekturentwurf berücksichtigen.

23. Entscheidung zwischen Flask, ASGI-Adapter und async-first Framework

Die technische Plattform wird anhand des tatsächlichen Parallelitäts- und Verbindungsmodells ausgewählt.

  1. Schritt 1: Anteil asynchroner Logik, Langläufer und dauerhafter Verbindungen quantifizieren.
  2. Schritt 2: Flask mit WSGI, Flask über Adapter und ein ASGI-natives Modell gegenüberstellen.
  3. Schritt 3: Erweiterungskompatibilität, Betriebskomplexität und Migrationsaufwand bewerten.
  4. Schritt 4: Entscheidung mit messbaren Kriterien und einer kleinen Lastprobe dokumentieren.

Praxisprojekt

Eine Anwendung wird containerisiert, hinter einem Proxy betrieben und telemetrisch sichtbar gemacht. Anschließend werden Lastprobleme behoben, ein Celery-Workflow integriert, eine Streamingroute ergänzt und ein fehlerhafter Rollout diagnostiziert.

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: 5 Tage ca. 6 h/Tag, Beginn 1. Tag: 10:00 Uhr, weitere Tage: 09:00 Uhr
Preis: Öffentlich oder Live Stream: € 2.995 zzgl. MwSt.
Inhaus: € 8.500 zzgl. MwSt.
Teilnehmeranzahl: min. 2 - max. 8
Teilnehmer: Erfahrene Flask-Entwickler, DevOps-, Plattform-, SRE- und Betriebsteams mit Verantwortung für Verfügbarkeit, Leistung und Verarbeitungskapazität.
Voraussetzungen: Sehr gute Flask-Kenntnisse, Linux- und HTTP-Grundlagen sowie Erfahrung mit Datenbanken, Containern und automatisierten Tests.
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
Graz 5 Tage
Wien 5 Tage
Inhaus / Firmenseminar 5 Tage
Stream live 5 Tage
Innsbruck 5 Tage
Stream gespeichert 5 Tage
Klagenfurt 5 Tage
Bregenz 5 Tage
Linz 5 Tage
Salzburg 5 Tage
Linz 5 Tage
Salzburg 5 Tage
Graz 5 Tage
Wien 5 Tage
Inhaus / Firmenseminar 5 Tage
Stream live 5 Tage
Innsbruck 5 Tage
Stream gespeichert 5 Tage
Klagenfurt 5 Tage
Bregenz 5 Tage
Klagenfurt 5 Tage
Bregenz 5 Tage
Linz 5 Tage
Salzburg 5 Tage
Graz 5 Tage
Wien 5 Tage
Stream live 5 Tage
Inhaus / Firmenseminar 5 Tage
Stream gespeichert 5 Tage
Innsbruck 5 Tage
Inhaus / Firmenseminar 5 Tage
Stream live 5 Tage
Innsbruck 5 Tage
Stream gespeichert 5 Tage
Klagenfurt 5 Tage
Bregenz 5 Tage
Linz 5 Tage
Salzburg 5 Tage
Graz 5 Tage
Wien 5 Tage
Nach oben
Seminare als Stream SRI zertifiziert
© 2026 www.seminar-experts.at All rights reserved.  | Kontakt | Impressum | Nach oben