Leistungsprobleme entstehen häufig außerhalb der eigentlichen View-Funktion: in Datenbankabfragen, externen Aufrufen, falschen Worker-Einstellungen, großen Objekten oder unkontrollierten Cache-Strategien. Optimierung beginnt deshalb mit Messbarkeit.
Das Seminar verbindet Profiling, ORM-Analyse, Caching, Worker-Dimensionierung und realistische Lasttests. Jede Änderung wird mit identischer Ausgangslast gemessen und auf Nebenwirkungen geprüft.
Inhaltsübersicht
- Messstrategie und Profiling
- Datenbank- und ORM-Optimierung
- Caching und Invalidierungsstrategien
- Worker-Modell und horizontale Skalierung
- Lasttests und Kapazitätsgrenzen
- Metriken, Tracing und Anwendungsdiagnose
- Queue-Betrieb, Monitoring und Kapazität
- Praxisprojekt und Wissenssicherung
Lernziele
- Reproduzierbare Leistungsziele und Messszenarien definieren.
- CPU-, I/O- und Datenbankengpässe voneinander unterscheiden.
- Cachekandidaten und Invalidierungsregeln fachlich korrekt auswählen.
- Worker und horizontale Instanzen anhand gemessener Last dimensionieren.
- Kapazitätsgrenzen mit realistischen Lasttests nachweisen.
Zielgruppe
Erfahrene Flask-Entwickler, Performance Engineers, SRE- und Betriebsteams mit Latenz-, Durchsatz- oder Kapazitätsproblemen.
Voraussetzungen
Gute Flask-Kenntnisse, Erfahrung mit Datenbanken und Produktionsbetrieb. Grundlagen zu Metriken und Lasttests sind hilfreich.
Seminarinhalte
1. Messstrategie und Profiling
Optimierungen beginnen mit reproduzierbaren Messungen statt mit Vermutungen.
- Schritt 1: Relevante Nutzerpfade, Lastprofile und Zielwerte festlegen.
- Schritt 2: Request-Latenzen, CPU-Zeit, Speicher und externe Wartezeiten getrennt erfassen.
- Schritt 3: Profiler in einer sicheren Testumgebung einsetzen und Hotspots priorisieren.
- Schritt 4: Vorher-Nachher-Messung mit identischen Daten und Lastbedingungen durchführen.
2. Datenbank- und ORM-Optimierung
Abfragen werden anhand realer Ausführungspläne und Zugriffsprofile verbessert.
- Schritt 1: Langsame Abfragen und N+1-Zugriffe über Logging beziehungsweise Tracing identifizieren.
- Schritt 2: Ladeoptionen, Pagination und gezielte Spaltenauswahl einsetzen.
- Schritt 3: Indizes aus Filter-, Join- und Sortiermustern ableiten und mit Ausführungsplänen prüfen.
- Schritt 4: Transaktionsdauer und Poolauslastung unter paralleler Last messen.
3. Caching und Invalidierungsstrategien
Caches werden nur für klar definierte Daten, Lebensdauern und Konsistenzanforderungen eingesetzt.
- Schritt 1: Cachekandidaten anhand Berechnungskosten, Änderungsrate und Nutzerwirkung auswählen.
- Schritt 2: Schlüssel, TTL, Mandantenbezug und maximale Größe festlegen.
- Schritt 3: Cache-Aside, gezielte Invalidierung und Schutz vor Cache Stampede implementieren.
- Schritt 4: Trefferquote, veraltete Daten und Ausfall des Cache-Backends testen.
4. Worker-Modell und horizontale Skalierung
Prozesse, Threads und Instanzen werden anhand von CPU-, I/O- und Speicherprofil dimensioniert.
- Schritt 1: Synchrones, Thread- und asynchrones Worker-Verhalten für den Anwendungsfall vergleichen.
- Schritt 2: Startwert für Worker und Threads festlegen und mit Lasttests verifizieren.
- Schritt 3: Sitzungs-, Datei- und Cachezustand für mehrere Instanzen externalisieren.
- Schritt 4: Überlastschutz, Warteschlangen und kontrollierte Degradation definieren.
5. Lasttests und Kapazitätsgrenzen
Die Anwendung wird mit realistischen Szenarien bis zu klar erkennbaren Sättigungspunkten geprüft.
- Schritt 1: Nutzerpfade, Denkzeiten, Datenvariation und Anlaufphase modellieren.
- Schritt 2: Baseline, Ziel- und Stresstest mit identischer Telemetrie durchführen.
- Schritt 3: Fehlerquote, Perzentile, Ressourcen und Abhängigkeiten gemeinsam auswerten.
- Schritt 4: Kapazitätsannahmen, Sicherheitsreserve und nächste Optimierung dokumentieren.
6. Metriken, Tracing und Anwendungsdiagnose
Latenz, Durchsatz, Fehler und Abhängigkeiten werden messbar gemacht, ohne unnötige Kardinalität zu erzeugen.
- Schritt 1: Golden Signals und fachliche Kennzahlen für die Anwendung festlegen.
- Schritt 2: Metriken an Request-Grenzen und kritischen Services erfassen.
- Schritt 3: Trace-Kontext über HTTP-, Datenbank- und Queue-Grenzen weitergeben.
- Schritt 4: Dashboards anhand realer Betriebsfragen statt dekorativer Diagramme strukturieren.
7. Queue-Betrieb, Monitoring und Kapazität
Warteschlangen werden nach Priorität, Laufzeit und Fehlerverhalten beobachtet und dimensioniert.
- Schritt 1: Queues nach Arbeitsart und Priorität trennen, ohne unnötige Fragmentierung.
- Schritt 2: Wartelänge, Laufzeit, Fehlerrate und Retry-Anteil als Metriken erfassen.
- Schritt 3: Dead-Letter- beziehungsweise Fehlerablage und kontrollierte Wiederaufnahme definieren.
- Schritt 4: Workerzahl und Vorabruf anhand gemessener Last einstellen.
Praxisprojekt
Eine absichtlich langsame Anwendung wird profiliert. Nacheinander werden Abfrageverhalten, Cache, Workerzahl und Skalierung verbessert. Jeder Schritt wird mit denselben Lastszenarien und Telemetriedaten bewertet.
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
-

Lucas Beich
Telefon: + 49 (221) 74740055
E-Mail: lucas.beich@seminar-experts.de
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, Performance Engineers, SRE- und Betriebsteams mit Latenz-, Durchsatz- oder Kapazitätsproblemen. |
| Voraussetzungen: | Gute Flask-Kenntnisse, Erfahrung mit Datenbanken und Produktionsbetrieb. Grundlagen zu Metriken und Lasttests sind hilfreich. |
| 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.
