Spring Performance Workshop
Performantes Backend, glückliche Kunden
Sie haben erfolgreich Ihr Produkt am Markt platziert und konnten Ihren Kunden helfen. Nun sind Sie bereit für den nächsten Schritt. Sie skalieren Ihr Geschäft.
Und Sie wissen: Um Ihr Geschäft zu skalieren, muss Ihr Backend performant sein.
Stellen Sie sich vor...
Ihr Backend ist Ihrem Geschäft gewachsen.
Ohne Sorgen live gehen
Im Vertrieb den Hahn aufdrehen
Mehr Kunden, schneller bedienen
Wissen was Ihr Backend leistet
Erst vertikal, dann horizontal skalieren
Ihr 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 Sie viel Geld und birgt hohe Risiken. Eine horizontale Skalierung ist bis zu 10-mal teurer.
Lösung
Verstehen Sie Ihr System, schöpfen Sie die Möglichkeiten der vertikalen Skalierung aus. Danach gehen Sie in die Horizontale.
Optimieren Sie Ihr Backend mit System
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.
- Nutzen Sie Tools zur Visualisierung Ihrer Metriken wie Grafana oder datadog, um Muster im Verhalten Ihrer Applikation zu finden
- Monitoren Sie Ihre Systemmetriken: CPU Utilization, CPU Load, Memory Usage (swap), Festplattenspeicher, Netzwerk Bandbreiten Nutzung, etc.
- Erfassen Sie RED Metriken Ihrer API, Calls zu externen APIs und anderer Services
- Implementieren Sie Tracing (Open Tracing) und visualisieren Sie diese mit Grafana Tempo, Jaeger oder Sleuth
- Erstellen Sie Lasttests mit JMeter oder Gatling, die Ihre wichtigsten Businessszenarien und Nutzerverhalten abbilden
- Betrachten Sie die JVM spezifischen Metriken, wie Heap Usage und Garbage Collector Runs
- Achten Sie auf die File Deskriptoren und noch verfügbaren Ports in Ihrem Netzwerk
- Zeichnen Sie das Verhalten Ihrer Connection und Thread Pools auf
- Vergleichen Sie die Antwort und Verarbeitungszeiten Ihrer Datenbank Queries mit dem EXPLAIN Befehl und der pg_stat_statements extension
- Profilen Sie Ihre Applikation mit Flight Recordings und analysieren Sie die hot-code paths mit Java Mission Control
- Analysieren Sie das Verhalten Ihrer Threads und den Einfluss der context-switches auf Ihr System
- etc.
Bottleneck finden
Suchen Sie nach Auffälligkeiten zwischen Ihrem System im gesunden Zustand und unter Last.
Ist die CPU Load höher als die Anzahl Ihrer Kerne? Dann haben Sie vielleicht blocking I/O Threads.
Sehen Sie ein Zick-Zack Muster in kurz-intervalligen Abständen in Ihrem RAM? Vielleicht läuft der Garbage Collector so oft, dass er andere Threads blockiert.
Sehen Sie Datenbank Queries mit hoher Laufzeit? Sie machen vielleicht einen Full-Table Scan statt eines indizierten Zugriffs auf Ihre Records.
Sie müssen mit Ihrem Team mutig und kreativ diskutieren, argumentieren und mutmaßen welche Eigenschaft Ihr System beeinflusst. Hier zahlt sich die Erfahrung und das tiefe Verständnis Ihrer erfahrensten Entwickler aus.
Behebung
Mit jeder Hypothese entsteht eine Idee, wie das erkannte Bottleneck behoben werden kann. Denken Sie über die Einführung von Thread-, Object- und Connection-Pools nach. Führen Sie Operationen mit hoher Latenz in einem asynchronen Thread aus. Optimieren Sie Ihre Queries, indem Sie Indizes und gezielte Projektionen einführen. Optimieren Sie Ihren JSON Serializer, um weniger Objekte im Speicher zu erzeugen.
Die meisten Performanceprobleme können schnell behoben werden - wenn Sie sie identifiziert haben.
Wiederholung
Bei der Optimierung Ihrer Performance sehen Sie immer nur die nächste Mauer. Erst, wenn Sie diese entfernt haben, können Sie neue Symptome sehen. Deshalb iterieren Sie. Passen Sie Ihre Metriken an, interpretieren Sie die neuen Muster und stellen Sie neue Hypothesen auf.
Skalieren heißt verstehen
Wenn Sie bis hier gelesen haben, dann haben Sie 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 Ihr Team in die Lage versetzt Ihr Backend mit Ihrem Business zu skalieren.
Mit diesem Workshop helfen wir Ihnen die notwendige Kompetenz in Ihrem Team aufzubauen. Das Konzept ist darauf ausgelegt Ihre akuten Probleme mit Ihrem Team zu lösen und sie für zukünftige Herausforderungen zu wappnen. Wir werden:
- Vorab-Interviews mit dem Product Owner und Technischen Leiter führen, damit wir Ihre Probleme und Herausforderungen auch wirklich verstehen
- Einen Schulungstag mit Ihrem Team veranstalten, der dem Team vermittelt welche Grundlagen notwendig sind, um die akuten Performanceprobleme zu lösen
- Eine Bestandsaufnahme über das aktuelle Monitoring machen und eine priorisierte Liste der noch zu erfassenden Metriken erstellen
- Anhand der Metriken entwickeln wir mit Ihrem Team Hypothesen zu den aktuellen Bottlenecks und…
- Wir betreuen und begleiten die Umsetzung Ihres Teams
Nachdem wir diesen Prozess gemeinsam durchlaufen haben, ist Ihr 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ählen Sie den passenden Tarif für Ihren Workshop
Basic
Perfekt für Start-Ups mit jungen Teams. Der Impuls für Ihre Entwickler.
- Vorab-Interview: 1 Stunde
- Grundlagen Schulung: 4 Stunden
- Praxisworkshop:
- Monitoring Analyse:
- Lasttest Support:
- Hands-On Mentoring: 1 Iteration
Premium
Wenn Sie auf Nummer sicher gehen wollen. 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
Individuell
Besondere Herausforderung? Wir stellen das perfekte Paket zusammen.
- Vorab-Interview: Individuell
- Grundlagen Schulung: Individuell
- Praxisworkshop: Individuell
- Monitoring Analyse:
- Lasttest Support:
- Hands-On Mentoring:
Noch Fragen?
Schauen Sie in die FAQs
Ihre Frage wurde nicht beantwortet?
Schnelle Beratung
Anrufen24 Stunden Support
E-Mail schreibenJa. Sobald Ihr 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 Ihr 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 sind Sie nicht in der Lage, Ihr Geschäft weiter zu skalieren. Im schlimmsten Fall verlieren Sie Kunden und haben keine Ressourcen zur weiteren Feature-Entwicklung.
Nach Ihrer Buchung setzen wir uns schnellstmöglich mit Ihnen in Verbindung, um ein Vorgespräch zu führen. In diesem werden wir Ihnen das genaue Vorgehen erläutern und Sie haben 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 Ihrer 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 Ihre Situation passt.
Es gibt keine feste Grenze für die Anzahl der Teilnehmer. Es hat sich aber gezeigt, dass Gruppen über 10 Personen nicht mehr effektiv lernen und daher kleiner gehalten werden sollten.
Nach der Buchung erhalten Sie ein konkretes Angebot auf dem die Zahlungsbedingungen aufgeführt sind. Um die beiderseitige Absicht zur Durchführung des Workshops und zur festen Reservierung des Veranstaltungstags 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 Ihren aktuellen Stand und schauen in Ihre Tools. Als Ergebnis bekommen Sie ein Dokument über unsere Empfehlungen und Einschätzungen zu Ihrer jetzigen Aufstellung. Dies bildet die Grundlage zum Support in der Erstellung der Lasttest Szenarien und der Iterationen.
Beachten Sie, um diese Analyse durchführen zu können, ist es notwendig uns Zugang zu Ihren Systemen und Quellcode zu gewähren.
Nachdem Ihr 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 Ihnen 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 Ihren Räumlichkeiten. Dies erzeugt eine höhere Beteiligung der Teilnehmer und ermöglicht es im Anschluss an die Veranstaltung individuell Fragen zu klären. Sollten Sie über keinen angemessenen Raum zur Durchführung verfügen, dann übernehmen wir für Sie gerne die Anmietung passender Räumlichkeiten. Bitte beachten Sie, dass wir die anstehenden Kosten in diesem Fall separat in Rechnung stellen.
Wenn es Ihnen nicht möglich ist eine Präsenzveranstaltung zu organisieren, ist eine Durchführung Remote ebenfalls möglich.
Ja, wenn Sie die Technik vor Ort zur Verfügung stellen können. 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