© StonePictures/Shutterstock.com
Ein Überblick über Softwarearchitekturen und Entwurfsmuster für Cloud-Lösungen

Architekturen für Cloud-Lösungen


Bereits seit einigen Jahren sind Cloud-Anwendungen in aller Munde. Besonders in Aspekten wie Kostenreduktion und effizienterer Nutzung verfügbarer Ressourcen ist die Cloud schwer zu schlagen. Dabei zeigt sich das wahre Potenzial erst bei der Verwendung Cloud-optimierter Architekturen und Entwurfsmuster, da diese es ermöglichen, stabile Software zu entwickeln und komplexe Anforderungen in kleine, handliche Lösungen aufzuteilen. Doch dieser Vorteil hat seinen Preis. So stellen sich beispielsweise die folgenden Fragen: „Wie können die Services untereinander kommunizieren, wenn Systeme ausfallen?“ oder „Wie gehe ich mit Lastspitzen um?“

Durch die Cloud verändert sich die Art und Weise, wie Softwarelösungen entwickelt, entworfen und betrieben werden. Der Fokus liegt auf der Entwicklung kleiner und unabhängiger Services. Die Kommunikation zwischen den Services geschieht über definierte Schnittstellen. Diese können sowohl synchron (z. B. Request/Response) als auch asynchron (z. B. Events oder Commands) sein. Man kann sie je nach Auslastung einzeln skalieren. Damit Cloud-Anwendungen trotz verteilter Zustände ordnungsgemäß funktionieren, sollten bei der Planung die Stabilität und die Resilienz berücksichtigt werden. Zusätzlich ist die Überwachung der Telemetriedaten wichtig, um einen Einblick in das System zu erhalten, falls Anomalien im Anwendungsprozess auftreten.

Die ersten Überlegungen

Bevor die Entwicklung von Cloud-Lösungen starten kann, sollte die grundlegende Architektur der Anwendung erörtert und entworfen werden. In den folgenden Abschnitten schauen wir uns die bekanntesten Architekturstile an und erläutern die Vor- und Nachteile ihrer Verwendung.

N-Schichten-Architektur

Der wohl bekannteste Stil ist die sogenannte N-Schichten-Architektur. Bei der Entwicklung monolithischer Anwendungen kommt in den meisten Fällen dieses Prinzip zum Einsatz. Beim Entwurf der Lösung werden logische Funktionen in Schichten unterteilt, so wie in Abbildung 1 beispielhaft verdeutlicht ist. Die konventionellen Schichten (Präsentationsschicht/UI, Business Layer, Data Layer) bauen aufeinander auf, wodurch die Kommunikation nur von einer übergeordneten zu einer untergeordneten Schicht stattfindet. Die Ebene Business Layer beispielsweise kennt also keine Details des UI. Eine Kommunikation zwischen diesen Schichten geht daher immer vom UI aus.

lenz_cloudarchitektur_1.tif_fmt1.jpgAbb. 1: Skizze einer 3-Schichten-Architektur

Im Kontext der Cloud-Entwicklung können die Schichten auf eigenen Instanzen gehostet werden und über Schnittstellen miteinander kommunizieren. In der Regel werden N-Schichten-Architekturen verwendet, wenn die Anwendung als Infrastructure-as-a-Service-(IaaS-)Lösung implementiert wird. Dabei wird jede Schicht auf einer eigenen virtuellen Maschine gehostet. In der Cloud bietet es sich an, zusätzlich verwaltete Dienste, wie etwa ein Content Delivery Network, Load Balancer, Caching oder Entwurfsmuster wie den Circuit Breaker zu verwenden.

Die Stärken der N-Schichten-Architektur liegen in der einfachen Ausführung auf lokalen Systemen sowie in der Cloud. Auch bei der Entwicklung einfacher Webanwendungen bietet sich dieses Verfahren an. Sobald die Geschäftsfunktionen einer Anwendung komplexer werden oder die Skalierung einzelner Geschäftsfunktionen im Vordergrund steht, bieten sich Architekturen an, die im Gegensatz zu dieser nicht monolithisch sind. Bei diesen Prinzipien können die einzelnen fachlichen Anforderungen getrennt gehostet und skaliert werden.

Microservices-Architektur

Dieses Verfahren ist, wie bereits angeschnitten, nützlich, wenn die Komplexität einer Anwendung steigt [2]. Denn hiermit kann man einzelne Domänen (Geschäftsfunktionen) separat entwickeln. Jeder Microservice kann individuell kreiert werden und muss lediglich abgestimmte Schnittstellen implemen...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang