LocalStack – Die Cloud ganz nah bei dir

13.03.2023

LocalStack ist eine Lösung für die lokale Entwicklung cloudbasierter Anwendungen, die eine Vielzahl von Herausforderungen meistert. Oftmals stellen Cloud Provider wie beispielsweise AWS (Amazon Web Services)

ein kostenloses, aber meist zeitlich oder funktional begrenztes Nutzungskontingent zur Verfügung, um einen Anreiz zur Nutzung der angebotenen Cloud Services zu schaffen. Kann dieses Kontingent hingegen nicht (mehr) genutzt werden, fallen bereits während der Entwicklung Kosten gegenüber dem Cloud Provider an, ohne dass die Anwendung gleichzeitig Umsätze generiert. Die Nutzung realer Cloud Services setzt zudem eine Internetverbindung voraus, was sich z.B. bei unerwarteten Internetausfällen negativ auf die Entwicklung auswirken kann.

 

 

Abhilfe schafft das Mocking Framework LocalStack, das eine Vielzahl von AWS Services nachbildet bzw. emuliert. Dies minimiert die Verwendung von realen Services und eliminiert die Notwendigkeit einer Internetverbindung. Das ist insbesondere für Continuous Integration (CI) Umgebungen von Vorteil. Hier können beispielsweise automatisierte Integrations- oder Lasttests große Datenmengen produzieren, ohne reale AWS Services in Anspruch nehmen oder diese mit Testdaten „verunreinigen“ zu müssen. Nach erfolgter Testausführung kann die LocalStack Umgebung bei Bedarf zurückgesetzt werden, um einen definierten Zustand für die nächste Testausführungen zu gewährleisten. LocalStack ist somit eine kosteneffektive, flexible und zuverlässige Lösung für die lokale Entwicklung und das Testen von cloudbasierten Anwendungen.

1

 

Feature Coverage

Die Feature Coverage gibt Entwicklern einen klaren Überblick darüber, welche Services am besten geeignet sind, um in ihrer lokalen Umgebung verwendet zu werden. In der offiziellen Dokumentation von LocalStack wird durch die sogenannte Feature Coverage eine detaillierte Übersicht über den „Reifegrad“ der nachgebildeten AWS Services bereitgestellt. Diese Übersicht zeigt nicht nur den aktuellen Coverage Level Services an, der von „nicht implementiert“ bis „vollständig unterstützt“ reicht, sondern auch den Emulation Level, der zwischen statischen Antworten und vollständiger Emulation variiert.

Community vs. Pro Version

Wenn Sie LocalStack verwenden, sollten Sie von Anfang an darauf achten, welche der angebotenen Services langfristig genutzt werden sollen, da einige Services nur in der kostenpflichtigen Pro Version verfügbar sind. Ob ein bestimmter Service in der kostenfreien Community Version oder lediglich in der kostenpflichtigen Pro Version enthalten ist, kann über folgende Seiten eingesehen werden:

Sollte die Pro oder eine höherwertige Version erforderlich sein, können Sie das aktuelle Preismodell eingesehen, um die passende Version für Ihre Bedürfnisse auszuwählen.

Docker Compose

LocalStack lässt sich einfach und effektiv mithilfe Docker Compose konfigurieren und betreiben. Unter Referenzierung des offiziellen Docker Hub Images localstack/localstack kann die Konfiguration beispielsweise wie folgt aussehen:

 

Nachdem die Konfiguration abgeschlossen ist, kann die LocalStack Umgebung mit dem Befehl docker-compose up localstack gestartet werden. Sobald alle Services bereit sind, können diese mittels http://localhost:4566 durch eine Anwendung angesprochen werden.

Zusätzlich kann seit kurzem die Cockpit Desktop UI (Beta) eingesetzt werden, um eine LocalStack Umgebung mittels Docker und einer ansprechenden UI zu orchestrieren.

Portierungen

Soll anstelle von AWS auf Azure Cloud Services gesetzt werden, so stellt Microsoft mittels Azurite eine vergleichbare Lösung bereit, die ebenfalls mittels Docker Compose betrieben werden kann. Derzeit gibt es jedoch keine vergleichbare Alternative für die Google Cloud Platform.

 

Fazit

LocalStack ist eine großartige Lösung für die Herausforderungen, die bei der lokalen Entwicklung cloudbasierter Anwendungen auftreten können. Es bietet eine Vielzahl von Vorteilen wie das Emulieren von AWS Services, um die Verwendung von realen Diensten zu minimieren, das Eliminieren der Notwendigkeit einer Internetverbindung und das Bereitstellen einer ausführlichen Übersicht über den „Reifegrad“ der nachgebildeten AWS-Services. Auch Continuous Integration (CI) Umgebungen können von LocalStack profitieren, da es automatisierte Tests mit großen Datenmengen ohne den Einsatz von realen AWS Services ermöglicht. Wenn bestimmte AWS Services langfristig genutzt werden sollen, sollte jedoch darauf geachtet werden, ob sie nur in der kostenpflichtigen Pro Version verfügbar sind. LocalStack kann einfach über Docker Compose konfiguriert und betrieben werden und bietet sogar eine Cockpit Desktop UI (Beta) zur Orchestrierung von LocalStack Umgebungen mittels Docker und einer ansprechenden UI.

Quelle:

1 https://localstack.cloud ^

 

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*Pflichtfelder

*