Performanceprobleme entstehen häufig außerhalb des offensichtlichen Codes: übermäßige Datenbankzugriffe, große Serialisierung, blockierende Arbeit, unkontrollierte Parallelität oder falsch dimensionierte Laufzeitgrenzen. Optimierung ohne Messung verschiebt solche Probleme nur.
Der Kurs verbindet Messung, Instrumentierung und Bereitstellung. Ein Dienst wird unter reproduzierbarer Last untersucht, gezielt optimiert, mit Telemetrie ausgestattet und anschließend kontrolliert ausgerollt sowie zurückgenommen.
Inhaltsübersicht
- Lernziele
- Messmodell und reproduzierbare Baseline
- Engpassanalyse und gezielte Optimierung
- Logging, Metriken und Tracing
- Health Checks und kontrolliertes Deployment
- Praxisprojekt: Analyse und Rollout eines API-Dienstes
- Prüfpunkte und typische Fehler
Lernziele
- Repräsentative Lastprofile, Baselines und messbare Performanceziele definieren.
- CPU-, Speicher-, Event-Loop-, Datenbank- und Serialisierungsengpässe eingrenzen.
- Strukturierte Logs, Metriken, Traces und Korrelationsdaten konsistent implementieren.
- Liveness, Readiness, Startup und Abhängigkeitsprüfungen korrekt trennen.
- Container, Ressourcenlimits, Konfiguration, Secrets und Shutdown-Verhalten gestalten.
- Rollout, Smoke Tests, Beobachtungsschwellen und Rollback ausführen.
Messmodell und reproduzierbare Baseline
Eine belastbare Analyse beginnt mit einem festen Lastprofil und klaren Zielgrößen. Durchschnittswerte allein reichen nicht; Verteilung, Sättigung und Fehlerzustände müssen sichtbar sein.
- Kritische Nutzerabläufe, Datenmengen, Parallelität und Zielantwortzeiten festlegen.
- Testdaten und Umgebung reproduzierbar vorbereiten.
- Baseline für Durchsatz, Perzentile, Fehlerquote, CPU, Speicher und Event-Loop-Verzögerung erfassen.
- Datenbankabfragen, externe Aufrufe und Serialisierungszeiten getrennt messen.
- Warmup, Cache-Zustand und Messdauer kontrollieren.
- Messprotokoll mit Version, Konfiguration und Lastparametern speichern.
Entscheidungskriterien und Hinweise
- Vergleichsmessungen verwenden dieselbe Umgebung und dasselbe Lastprofil.
- Perzentile und Fehlerquote werden gemeinsam mit dem Durchsatz bewertet.
Engpassanalyse und gezielte Optimierung
Optimierungen werden einzeln durchgeführt und jeweils gegen die Baseline verglichen. So bleiben Wirkung und Nebenwirkungen nachvollziehbar.
- Blockierende oder CPU-intensive Arbeit erkennen und aus dem Request-Pfad verlagern.
- Provider-Scopes, Objektallokationen und große Transformationen prüfen.
- Datenbank-Roundtrips, N+1-Abfragen, Indizes und Pagination optimieren.
- Serialisierung und Antwortfelder auf den tatsächlichen Clientbedarf begrenzen.
- Caching mit Schlüssel, Gültigkeit, Invalidierung und Fehlverhalten definieren.
- HTTP-Adapter und Kompression anhand realer Payloads bewerten.
- Parallelität, Connection Pools und Backpressure gemeinsam dimensionieren.
Entscheidungskriterien und Hinweise
- Caching wird erst nach identifiziertem Engpass und mit Invalidierungsstrategie eingesetzt.
- Laufzeitgrenzen werden gemeinsam mit Datenbank- und Netzwerkpools dimensioniert.
Logging, Metriken und Tracing
Logs erklären diskrete Ereignisse, Metriken zeigen Trends und Grenzwerte, Traces verbinden Latenz über Abhängigkeiten. Telemetrie wird an konkrete Betriebsfragen gekoppelt.
- Korrelations-ID am Eingang übernehmen oder erzeugen und durch alle Schichten weitergeben.
- Strukturierte Logs mit Ereignisname, Dienstversion, Dauer und Ergebnis erstellen.
- Sensible Daten, Tokens und große Payloads aus Logs entfernen.
- Metriken für Request-Rate, Fehler, Dauer, Sättigung, Datenbank und Hintergrundarbeit definieren.
- Traces für HTTP, Datenbank und externe Aufrufe instrumentieren.
- Sampling, Kardinalität und Aufbewahrung an Betriebszielen ausrichten.
- Alarmregeln aus Symptomen und Nutzerwirkung ableiten.
Entscheidungskriterien und Hinweise
- Metrik-Labels enthalten keine ungebremsten IDs oder Freitexte.
- Logs und Traces nutzen dieselbe Korrelation, ohne sensible Inhalte zu vervielfachen.
Health Checks und kontrolliertes Deployment
Health Checks steuern Prozessüberwachung und Traffic-Zuweisung. Zu aggressive Abhängigkeitsprüfungen können gesunde Instanzen unnötig aus dem Verkehr nehmen.
- Liveness auf interne Prozessfähigkeit begrenzen.
- Readiness nach tatsächlicher Fähigkeit zur Annahme von Traffic bewerten.
- Startup-Prüfung für langsame Initialisierung und Migrationen berücksichtigen.
- Container nicht privilegiert, mit reproduzierbarem Build und externen Secrets ausführen.
- Ressourcenrequests, Limits, Grace Period und Shutdown-Hooks abstimmen.
- Rollout mit Readiness, Smoke Test, Telemetrievergleich und Abbruchschwellen absichern.
- Rollback einschließlich Konfiguration und Datenbankverträglichkeit testen.
Entscheidungskriterien und Hinweise
- Liveness und Readiness prüfen bewusst unterschiedliche Zustände.
- Deployment ist ein kontrollierter Prozess und nicht nur das Starten eines neuen Containers.
Praxisprojekt: Analyse und Rollout eines API-Dienstes
Ein API-Dienst enthält bewusst mehrere Engpässe: N+1-Abfragen, große Antworten, blockierende Transformation und unkontrollierte Parallelität. Die Anwendung besitzt zunächst nur einfache Textlogs und einen unzureichenden Health-Endpunkt.
Nach der Optimierung wird ein Container-Release ausgerollt. Smoke Tests und Telemetrie entscheiden über Fortsetzung oder Rollback; eine fehlerhafte Konfiguration wird gezielt eingebracht.
- Lastprofil und Baseline mit reproduzierbaren Testdaten erzeugen.
- Engpass über Messwerte und Traces lokalisieren.
- Datenzugriff, Serialisierung und Parallelität einzeln optimieren.
- Strukturierte Logs, Metriken und Tracing mit Korrelationsdaten ergänzen.
- Liveness-, Readiness- und Startup-Prüfungen getrennt implementieren.
- Container mit Ressourcen- und Shutdown-Konfiguration bauen.
- Rollout mit Smoke Tests und Telemetrievergleich durchführen.
- Fehlerhafte Konfiguration erkennen und kontrolliert zurückrollen.
Prüfpunkte und typische Fehler
- Performanceziele, Lastprofil und Testdaten sind vor der Optimierung festgelegt.
- Jede Optimierung besitzt einen messbaren Vorher-Nachher-Nachweis.
- Metrik-Labels und Logfelder erzeugen keine unkontrollierte Kardinalität.
- Readiness und Liveness prüfen unterschiedliche Zustände.
- Ressourcenlimits passen zu Connection Pools, Parallelität und Shutdown-Zeit.
- Ein Rollout wird bei verschlechterten Nutzerkennzahlen abgebrochen.
Fachbereichsleitung und Trainerteam
-

Lucas Beich
Telefon: + 49 (221) 74740055
E-Mail: lucas.beich@seminar-experts.de -

Paul Goldschmidt
Telefon: + 49 (221) 74740055
E-Mail: paul.goldschmidt@seminar-experts.de
Seminardetails
| Dauer: | 2 Tage ca. 6 h/Tag, Beginn 1. Tag: 10:00 Uhr, weiterer Tag 09:00 Uhr |
| Preis: |
Öffentlich oder Live Stream: € 1.198 zzgl. MwSt. Inhaus: € 3.400 zzgl. MwSt. |
| Teilnehmeranzahl: | min. 2 - max. 8 |
| Teilnehmer: | NestJS- und TypeScript-Entwickler, DevOps- und Plattformteams, SRE-Verantwortliche sowie technische Betriebsleitungen |
| Voraussetzungen: | Praktische NestJS-Erfahrung, Kenntnisse zu HTTP, Datenbanken, Containern und grundlegender Systemüberwachung |
| 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: | Fachvortrag, Live-Coding, Demonstrationen, praktische Übungen und strukturierte Auswertung am System |
| Seminararten: | Öffentlich, Webinar, Inhouse, 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.
