Share on facebook
Share on twitter
Share on linkedin

Der Aufbau einer modernen, serverlosen Anwendung ist der meistdiskutierte Trend im Bereich Cloud-Engineering, da er die geschäftliche Agilität erhöht und die Gesamtbetriebskosten senkt. Es befreit ihre Entwickler von der schweren Arbeit der Serververwaltung mit Skalierbarkeit und hoher Verfügbarkeit, sodass sich das Team auf die Anwendungsentwicklung konzentrieren kann.

Die Fehlersuche (Debugging) ist jedoch das größte Problem bei serverlosen Anwendungen und bestehenden Lösungen.

In diesem Beitrag geht es um einem Anwendungsfall, bei dem MIND einem Kunden bei der Fehlersuche und -behebung für seine serverlose Anwendung geholfen hat.

Übersicht

 

Einer der Kunden von MIND hat eine serverlose Anwendung auf AWS erstellt, die API Gateway, Lambda und DocumentDB als Backend für das Zahlungsabwicklungs-Gateway verwendet (siehe Abbildung unten), das kritisch ist und eine sehr geringe Latenz und hohe Verfügbarkeit erfordert.

Als Ergebnis wurde mit AWS Managed Services (einschl. API Gateway, Lambda und DocumentDB) eine hohe Verfügbarkeit erreicht, aber die Latenz und Timeout-Fehler machten dem Kunden zu schaffen.

Diese Latenzprobleme und Timeouts waren zufällig und wiesen kein Muster auf. Deshalb begann das MIND-Team, jede Schicht der serverlosen Anwendung zu analysieren, um die tatsächliche Komponente zu finden, die das Problem verursachte.

Herangehensweise

 

Zunächst wurde eine Analyse der API-Gateway-Protokolle durchgeführt. Wir untersuchten die Messgrößen für die Integrationslatenz, um die Reaktionsfähigkeit des Backends zu messen, und die Latenzmessgrößen, um die allgemeine Reaktionsfähigkeit der API-Aufrufe zu berechnen.

Anschließend untersuchten wir die Lambda-Protokolle und schalteten das X-Ray ein, ein großartiges Tool zur Visualisierung der Anwendungsteile, zur Fehlersuche bei der Leistung und zur Überprüfung der Lambda-Kaltstartprobleme.

Zur Bewältigung des Lambda-Kaltstartproblems, das auftritt, wenn keine wiederverwendbaren Container zur Bedienung der Anforderung vorhanden sind, muss AWS einen neuen Container bereitstellen, den Code und die Abhängigkeiten von S3 herunterladen und durch Ausführen des Codes außerhalb der Handler-Funktion initialisieren.

Dieser Kaltstart führt zu einer Latenzzeit von etwa 1 bis 4 Sekunden, was für Finanzanwendungen äußerst kritisch ist.

Das Team plante CloudWatch-Ereignisse, um jede Lambda-Funktion alle fünf Minuten aufzurufen, um die Lambda-Funktionen warm zu halten. In jeder Lambda-Funktion gab es einen Code, der geprüft werden musste, wenn er eine Anfrage vom CloudWatch-Ereignis erhielt (mit Übergabe eines Dummy-Parameters). Nach dem Empfang einer solchen Anfrage wurde diese zurückgegeben, ohne dass irgendwelche Prozesse ausgeführt wurden.

Bei der Analyse der Lambda X-Ray-Protokolle konnten wir feststellen, dass dies auf ein Kaltstartproblem zurückzuführen war.

Ergebnisse

 

Anhand der Protokolle und Fehlermeldungen konnte das MIND-Team den Hauptgrund für das Problem ermitteln – den MongoDB Node.js-Treiber. Daher rieten wir dem Kunden, den Treiber zu aktualisieren, woraufhin das Timeout-Problem behoben wurde.

Was die Latenzprobleme anbelangt, so stellten wir fest, dass der Ansatz des Kunden, die Lambda-Container zu warm zu halten, um die Lambda-Kaltstartprobleme zu bewältigen, problematisch war. Daraufhin schlugen wir eine neue Methode zur Verwendung von Provisioned Concurrency vor und halfen dem Kunden, diese zu implementieren, wodurch das Latenzproblem gelöst wurde.

Wenn Sie mehr über serverlose Webanwendungen erfahren möchten, fordern Sie eine Demo an oder kontaktieren Sie uns hier.

About the Author:

Shailendra Singh Tomar – Principal Cloud Consultant

Shailendra hat über 17 Jahre Erfahrung in Java-Technologien und AWS Cloud. Er liebt es, mit Kunden zusammenzuarbeiten, um sichere, leistungsstarke, kostenoptimale und belastbare Cloud-Lösungen mit dem AWS Well-Architected Framework aufzubauen. Er leitet das AWS Immersion Days-Programm der MIND, das Kunden dabei hilft, die AWS-Plattform optimal zu nutzen, um Geschäftspotenziale zu erschließen und wichtige Ziele zu erreichen.

Insights

Trends and insights from our IT Experts