Loading...

Spring Performance Workshop

Performantes Backend, glückliche Kunden

Du hast erfolgreich dein Produkt am Markt platziert und konntest deinen Kunden helfen. Nun bist du bereit für den nächsten Schritt. Du skalierst dein Geschäft.

Und du weißt: Um dein Geschäft zu skalieren, muss dein Backend performant sein.

Lerne wie du dein Backend skalierst

Stell dir vor...

dein Backend ist deinem Geschäft gewachsen.

Ohne Sorgen live gehen

Im Vertrieb den Hahn aufdrehen

Mehr Kunden, schneller bedienen

Wissen was dein Backend leistet

Erst vertikal, dann horizontal skalieren

Dein Team möchte die Performanceprobleme mit den großen Kanonen erlegen. Es wird auf eine Microservice-Architektur gesetzt. Die Kafka als Middleware wird zum Event Streaming eingeführt. Die Lösung migriert auf Kubernetes - natürlich in der Cloud. Es ist das Ziel das Backend horizontal zu skalieren.

So, oder so ähnlich erleben viele Unternehmen ihr Upscaling nach Markteintritt.

Herausforderung

Wenn Entwickler mit schlechter Performance konfrontiert werden, wird zu schnell horizontal skaliert. Der Aufwand wird unterschätzt. Das kostet dich viel Geld und birgt hohe Risiken. Eine horizontale Skalierung ist bis zu 10-mal teurer.

Lösung

Verstehe dein System, schöpfe die Möglichkeiten der vertikalen Skalierung aus. Danach gehst du in die Horizontale.

Optimiere dein Backend mit System

1

Performance-Metriken erheben

Wenn die Notwendigkeit zur Performanceoptimierung aufkommt sehen wir zunächst die äußersten Symptome. Der Seitenaufbau dauert lange, die API läuft bei Anfragen in Timeouts, bei x Anfragen pro Sekunde werden Anfragen nicht bearbeitet und Exceptions werden geworfen.

Diese Symptome weisen noch nicht auf die Ursache des Problems hin. Um diese zu finden, müssen wir Zusammenhänge in unserem System herstellen. Daher ist es notwendig unterschiedliche Metriken unseres Systems zu sammeln und zu visualisieren.

  • Nutze Tools zur Visualisierung deiner Metriken wie Grafana oder datadog, um Muster im Verhalten deiner Applikation zu finden
  • Monitore deine Systemmetriken: CPU Utilization, CPU Load, Memory Usage (swap), Festplattenspeicher, Netzwerk Bandbreiten Nutzung, etc.
  • Erfasse RED Metriken deiner API, Calls zu externen APIs und anderer Services
  • Implementiere Tracing (Open Tracing) und visualisiere diese mit Grafana Tempo, Jaeger oder Sleuth
  • Erstelle Lasttests mit JMeter oder Gatling, die deine wichtigsten Businessszenarien und Nutzerverhalten abbilden
  • Betrachte die JVM spezifischen Metriken, wie Heap Usage und Garbage Collector Runs
  • Achte auf die File Deskriptoren und noch verfügbaren Ports in deinem Netzwerk
  • Zeichne das Verhalten deiner Connection und Thread Pools auf
  • Vergleiche die Antwort und Verarbeitungszeiten deiner Datenbank Queries mit dem EXPLAIN Befehl und der pg_stat_statements extension
  • Profile deine Applikation mit Flight Recordings und analysiere die hot-code paths mit Java Mission Control
  • Analysiere das Verhalten deiner Threads und den Einfluss der context-switches auf dein System
  • etc.
2

Bottleneck finden

Suche nach Auffälligkeiten zwischen deinem System im gesunden Zustand und unter Last.
Ist die CPU Load höher als die Anzahl deiner Kerne? Dann hast du vielleicht blocking I/O Threads.
Siehst du ein Zick-Zack Muster in kurz-intervalligen Abständen in deinem RAM? Vielleicht läuft der Garbage Collector so oft, dass er andere Threads blockiert.
Siehst du Datenbank Queries mir hoher Laufzeit? Du machst vielleicht einen Full-Table Scan statt eines indiziertem Zugriff auf deine Records.

Du musst mit deinem Team mutig und kreativ diskutieren, argumentieren und mutmaßen welche Eigenschaft dein System beeinflusst. Hier zahlt sich die Erfahrung und das tiefe Verständnis deiner erfahrensten Entwickler aus.

3

Behebung

Mit jeder Hypothese entsteht eine Idee, wie das erkannte Bottleneck behoben werden kann. Denke über die Einführung von Thread-, Object- und Connection-Pools nach. Führe Operationen mit hoher Latenz in einem asynchronen Thread aus. Optimiere deine Queries, indem du Indizes und gezielte Projektionen einführst. Optimiere deinen JSON Serializer, um weniger Objekte im Speicher zu erzeugen.

Die meisten Performanceprobleme können schnell behoben werden - wenn du sie identifiziert hast.

4

Wiederholung

Bei der Optimierung deiner Performance siehst du immer nur die nächste Mauer. Erst, wenn du diese entfernt hast, kannst du neue Symptome sehen. Deshalb iterierst du. Passe deine Metriken an, interpretiere die neuen Muster und stelle neue Hypothesen auf.

Image

Skalieren heißt verstehen

Wenn du bis hier gelesen hast, dann hast du es gemerkt. Um zu skalieren, ist ein tiefes Verständnis und viel Erfahrung notwendig. Mit der Erfahrung aus Systemen mit weltweit mehr als 220 Millionen Nutzern und aus dem Coaching mehrerer Teams entwickelten wir einen Workshop, der dein Team in die Lage versetzt dein Backend mit deinem Business zu skalieren.

Mit diesem Workshop helfen wir dir die notwendige Kompetenz in deinem Team aufzubauen. Das Konzept ist darauf ausgelegt deine akuten Probleme mit deinem Team zu lösen und sie für zukünftige Herausforderungen zu wappnen. Wir werden:

  1. Vorab-Interviews mit dem Product Owner und Technischen Leiter führen, damit wir deine Probleme und Herausforderungen auch wirklich verstehen
  2. Einen Schulungstag mit deinem Team veranstalten, der dem Team vermittelt welche Grundlagen notwendig sind, um die akuten Performanceprobleme zu lösen
  3. Eine Bestandsaufnahme über das aktuelle Monitoring machen und eine priorisierte Liste der noch zu erfassenden Metriken erstellen
  4. Anhand der Metriken entwickeln wir mit deinem Team Hypothesen zu den aktuellen Bottlenecks und…
  5. Wir betreuen und begleiten die Umsetzung deines Teams

Nachdem wir diesen Prozess gemeinsam durchlaufen haben, ist dein Team gewappnet die nächsten Performance Bottlenecks selbständig zu erkennen und zu lösen - und das ohne enormen Entwicklungsaufwand und explodierenden Kosten im Betrieb.

Das richtige Angebot

Wähle den passenden Tarif für deinen Workshop

Basic

Perfekt für Start-Ups mit jungen Teams. Der Impuls für deine Entwickler.

  • Vorab-Interview:  1 Stunde
  • Grundlagen Schulung:  4 Stunden
  • Praxisworkshop: 
  • Monitoring Analyse: 
  • Lasttest Support: 
  • Hands-On Mentoring:  1 Iteration
Jetzt anfragen

Premium

Wenn du auf Nummer sicher gehst. Das umfangreiche Training.

  • Vorab-Interview:  2 Stunden
  • Grundlagen Schulung:  4 Stunden
  • Praxisworkshop:  4 Stunden
  • Monitoring Analyse: 
  • Lasttest Support:  1 Szenario
  • Hands-On Mentoring:  2 Iterationen
Jetzt anfragen

Individuell

Besondere Herausforderung? Wir stellen das perfekte Paket zusammen.

  • Vorab-Interview:  Individuell
  • Grundlagen Schulung:  Individuell
  • Praxisworkshop:  Individuell
  • Monitoring Analyse: 
  • Lasttest Support: 
  • Hands-On Mentoring: 
Jetzt anfragen
Vorab-Interview
1 Stunde
2 Stunden
Individuell
Grundlagen Schulung
4 Stunden
4 Stunden
Individuell
Praxisworkshop
4 Stunden
Individuell
Monitoring Analyse
Lasttest Support
1 Szenario
Hands-On Mentoring
1 Iteration
2 Iterationen

Noch Fragen? 
Schaue in die FAQs

Deine Frage wurde nicht beantwortet?

Schnelle Beratung

Anrufen

24 Stunden Support

E-Mail schreiben

Ja. Sobald dein Team in der heißen Phase ist, wird es hektisch. Die Entwickler arbeiten mit Hochdruck daran, die Performance des Systems zu erhöhen. Hier ist es wichtig, dass dein Team weiß wie es strukturiert vorgeht. Ansonsten ist die Gefahr hoch, dass aufgrund falscher Rückschlüsse massive Architekturänderungen vorgenommen werden. Diese kosten häufig Monate an Entwicklungszeit und bringen ein hohes Risiko mit sich. In dieser Zeit bist du nicht in der Lage dein Geschäft weiter zu skalieren. Im schlimmsten Fall verlierst du Kunden und hast keine Ressourcen zur weiteren Feature-Entwicklung.

Nach deiner Buchung setzen wir uns schnellstmöglich mit dir in Verbindung, um ein Vorgespräch zu führen. In diesem werden wir dir das genaue Vorgehen erläutern und du hast die Möglichkeit weitere Fragen zu stellen.

Dieser Termin ist noch nicht das “Vorab-Interview”. Wir identifizieren in unserem Vorgespräch gemeinsam welche Personen aus deiner Organisation sinnvollerweise an dem "Vorab-Interview" teilnehmen.

Teams und Projekte sind individuell. Auch wenn das hier präsentierte Vorgehen im Kern universell ist, sind die Voraussetzungen die ein Team mitbringt sehr unterschiedlich. Daher ist es wichtig, dass wir gemeinsam ein Paket schnüren, dass auf deine Situation passt.

Es gibt keine feste Grenze für die Anzahl der Teilnehmer. Es hat sich aber gezeigt das Gruppen über 10 Personen nicht mehr effektiv lernen und daher kleiner gehalten werden sollten.

Nach der Buchung erhältst du ein konkretes Angebot auf dem die Zahlungsbedingungen aufgeführt sind. Um die beiderseitige Absicht zur Durchführung des Workshops und zur festen Reservierung des Veranstaltungtags zu bekräftigen ist eine Anzahlung in Höhe von 20% zu leisten. Der Restbetrag wird nach Abschluss gezahlt.

Es ist unumgänglich gut aufbereitete und korrekte Daten über das System zu erhalten, um eine Performance Verbesserung herbeiführen zu können. Daher betrachten wir deinen aktuellen Stand und schauen in deine Tools. Als Ergebnis bekommst du ein Dokument über unsere Empfehlungen und Einschätzungen zu deiner jetzigen Aufstellung. Dies bildet die Grundlage zum Support in der Erstellung der Lasttest Szenarien und der Iterationen.

Beachte, um diese Analyse durchführen zu können, ist es notwendig uns Zugang zu deinen Systemen und Quellcode zu gewähren.

Nachdem dein Team gelernt hat wie sie an den Performanceproblemen arbeiten begleiten wir sie in der konkreten Umsetzung in der Praxis. Die konkrete Umsetzung davon wird individuell mit dir vereinbart. Bewährt hat sich ein regelmäßiger Austausch mit dem verantwortlichen Entwickler innerhalb der Implementierungsphase und Review der Umsetzung.

Die besten Ergebnisse erzielen wir in einer Präsenzveranstaltung in deinen Räumlichkeiten. Dies erzeugt eine höhere Beteiligung der Teilnehmer und ermöglicht es im Anschluss an die Veranstaltung individuell Fragen zu klären. Solltest du über keinen angemessenen Raum zur Durchführung verfügen, dann übernehmen wir für dich gerne die Anmietung passender Räumlichkeiten. Bitte beachte, dass wir die anstehenden Kosten in diesem Fall separat in Rechnung stellen.

Wenn es dir nicht möglich ist eine Präsenzveranstaltung zu organisieren ist eine Durchführung Remote ebenfalls möglich.

Ja, wenn du die Technik vor Ort zur Verfügung stellen kannst. Eine Teilnahme in Person wird durch die bessere und höhere Beteiligung der Teilnehmer aber empfohlen.

Wenn die Schulung vor Ort stattfindet, dann ist ein Beamer mit HDMI sowie ein Flipchart oder Whiteboard im Raum notwendig. Beim Praxisworkshop brauchen alle Teilnehmer einen lauffähigen Rechner mit einem aktuellen Browser, sowie einem Text-Editor. Im Schulungsraum ist WLAN mit Gastzutritt notwendig.

Jetzt Buchen!

Es gelten unsere allgemeinen Geschäftsbedingungen

Top