Logo

Halalo Lieferdienst

Für den Lieferdienst Halalo GmbH & co.KG hat Bosco Consulting eine Smartphone-App für die Bestellung von Lebensmitteln entwickelt. Die Kunden bestellen bequem per App Lebensmittel, die Ihnen zeitnah geliefert werden. Sowohl das Frontend als auch die Serverless Backend Architektur wurden in Amazon Web Service (AWS) umgesetzt. Das Projekt wurde zwischen 07/21 und 04/22 realisiert.

Serverless

Mit AWS Lambda Funktionen wurde eine Serverless Architektur umgesetzt. Dabei werden Funktionen (d. h. Code) bereitgestellt, die auf Ereignisse reagieren, ohne sich um die zugrunde liegende Infrastruktur kümmern zu müssen. Es werden keine virtuellen Maschinen (Server) instanziieren, auf denen die Anwendung läuft. AWS kümmert sich für dich um die Laufzeitumgebung, daher ein serverlosen (serverless) Dienst.

Entkoppelt

Die einzelnen Microservices der Applikation wir Auftragsanlage, Zahlungsabwicklung, Kundenkommunikation oder Statistikauswertung sind entkoppelt und daher unabhängig voneinander. Die Entkopplung wurde mittels AWS Simple Queuing Service (SQS) und Simple Notification Service (SNS) umgesetzt. Mit Amazon SQS wirden Nachrichten in eine Warteschlange geschrieben, in der Nachrichten für die weitere Bearbeitung bereitgehalten werden. Dabei gehen keine Nachrichten verloren und es muss nicht jede Komponente stets verfügbar sein.

Skalierbar

Dem Kunde war eine nahtlose Skalierbarkeit aufgrund vom wachsendem Geschäft sehr wichtig. Der Einsatz von Lambda Funktionen und Queueing Architektur mit SQS bietet eine hochgradige Skalierbarkeit. Für die Datenhaltung wurde eine AWS Aurora RDS MySQL Daten gewählt, die ebenfalls skalierbar ist. Aurora bietet mehrere Skalierungsoptionen, einschließlich der Möglichkeit, bis zu 15 Lese-Replikate für ein einzelnes Datenbank-Cluster hinzuzufügen, der Unterstützung von Auto-Scaling von Lese-Replikaten, der Erstellung von Cross-Region-Lese-Replikaten und Speicherauto-Scaling.

Systembild
Logo

AWS Architektur

Obige Abbildung zeigt die Systemarchitektur der Halalo Lieferdienst Anwendung. Die Frontend Applikation wird auf Amazon EC2 Servern gehostet und bezieht die benötigten Images von S3 Bucket. Die Authentifizierung wurde über AWS Cognito abgebildet. Die Zahlungsabwicklung erfolgt über den Zahlungsdienst Paypal. Die Frontend Applikation nutzt API Gateway um mit dem Backend zu kommuniziren. Die Entkopplung des der Auftragsanlage und der Abrechnung ist mittels AWS Simple Queuing Service (SQS) realisiert. Die Kundenkommunikation wird über Simple Notification Service (SNS) durchgeführt.

Projekt Setup

Anforderungen erkunden

In enger Zusammenarbeit mit dem Kunden wurden zunächst alle Anforderungen aufgenommen und priorisiert. Nach Abwägung der Kosten und der Machbarkeit jeder Anforderung wurde ein Scope für das Projekt definiert.

UX Design

Die einzelnen Screens der Applikation wurden nach Kundenvorgaben und in agiler Weise mit dem Feedback vom Kunden vom UX Team erstellt. Ebenso hat der Kunde die Erstellung des Logos von Halalo Lieferdienst in Auftrag gegeben.

Entwicklung

In der Entwicklungphase wurde kleine Arbeitspakete definiert (User Stories) und diese wurden in definierten Zeitabschnitten nach SCRUM umgesetzt. Der Steakholder hat die umgesetzten Stories im Review abgenommen.

Test

Der Test war in unterschiedliche Phase eingeteilt. Während der Entwicklung wurden Unit Tests durchgeführt und abgeschlossene Arbeitspakete wurde integrativ getestet. Nach Abschluß der Entwicklungsphase wurden Abnahme Tests, Lasttests und auch manuelle Tests mit verschiedenen Endgeräten durchgeführt.

Deployment Pipeline

Damit weitere Anpassungen der Software möglichst einfach und ohne manuellen Aufwand produktiv gebracht werden können, wurden Deployment Pipeline aufgesetzt. Für die AWS Infrastruktur wurden CloudFormation Skrupte erstellt, die das Aufsetzen einer Umgebung bequem ermöglichen. Für die Lambda Funktionen wurde das Serverless Framwork genutzt.

Live-Gang und Support

Die Applikation wurde in Playstore und im AppStore live geschaltet und der Kunde wurde noch in einer Support Phase aktiv bei jeglichen Fragen und Problemen unterstüzt.