Haufe-Akademie: Serverless Integration eines Learning Partners mit Hilfe einer AWS Cloud Applikation

Um Buchungsinformationen der Haufe-Akademie an einen Learning Partner zu übermitteln wurde eine moderne Serverless Applikation entwickelt, die mehrere Systeme integriert bzw. Buchungen filtert und anreichert.

Was bedeutet Serverless?

Serverless Applikationen zu erstellen bedeutet Software zu entwickeln ohne sich selbst um die Bereitstellung, Skalierung und das Management von Servern und der Infrastruktur kümmern zu müssen. Dies übernimmt in diesem Fall der Cloud Provider mit bereitgestellten Diensten. Es ist die neue, modernen Art der Software Entwicklung. Entwickler können schnell und einfach Anwendungen oder Services in der Cloud ausführen, ohne dabei Abhängigkeiten zu anderen internen Infrastruktur Teams zu besitzen. Großer Vorteil eines solchen Setups ist außerdem das Kosten für die Infrastruktur nur dann anfallen, wenn die Applikation auch genutzt wird.

Moderne AWS Cloud Architektur

Die Applikation wurde in vier Module gegliedert. Ein Modul ist für die Filterung und Anreicherung von Buchungsdaten zuständig, ein weiteres für das Verschicken von Alarm Meldungen über Teams, ein drittes zur Abfrage von Produktinformationen und zu guter Letzt ein Modul zur Übermittlung der Buchungsdaten an einen Rest Endpunkt des Learning Partners.

Moderne Serverless Cloud Architektur in AWS

AWS Komponenten

In diesem Abschnitt wird erläutert welche AWS Komponenten für die Integration zum Einsatz kommen und welche Aufgabe sie hierbei übernehmen. 

Step Functions

Mit AWS Step Functions werden Lambda Funktionen zu einem Modul zusammengefasst und ein entsprechender Workflow definiert, der bestimmt in welcher Reihenfolge die Funktionen aufgerufen werden. Über die Step Function lässt sich eine Nachricht Transaktional verarbeiten.

S3 Bucket

Zur Speicherung von Zwischenergebnissen bzw. zum Aufbau eines Cache wird der S3 Speicher verwendet.

API Gateway

Zur Abfrage von Produktinformationen wurde eine Rest Schnittstelle erstellt, die als privater Endpunkt für die Lambda Module dient.

Lambda Funktionen

Mit AWS Lambda Funktionen wird die eigentliche Prozess Logik abgebildet und implementiert. Jede Funktion hat dabei einen definierten Input und ein entsprechendes Ergebnis.

DynamoDB

Zum persistieren der Buchungsinformationen wird der Objektspeicher DynamoDB von AWS genutzt.

CloudWatch

Für das zyklische Anstoßen der einzelnen Module wird CloudWatch Events eingesetzt. CloudWatch übernimmt außerdem das Monitoring der Lambda Funktionen und die Speicherung der Ausgabelogs.