© Excellent backgrounds/Shutterstock.com
Patterns und Best Practices

Architektur im Kontext der Cloud


Cloud Computing hat unbestreitbar erhebliche Vorteile in Bezug auf Kosten, Ausfallsicherheit und Flexibilität. Auch ZANOX möchte – wie andere Firmen auch – von diesen Vorteilen profitieren. Aber ist es ausreichend, wenn ich meine Applikationen einfach in einer Cloud-Umgebung ohne Modifikation laufen lasse? In den allermeisten Fällen lässt sich diese Frage mit einem klaren „Nein“ beantworten. Um die Vorteile einer Cloud-Infrastruktur voll ausnutzen zu können, muss ich auch die entsprechenden Patterns bei der Architektur meiner Applikation verwenden. In diesem Artikel werden einige Best Practices und Patterns beschrieben, um skalierbare, ausfall­sichere und verteilte Applikationen zu entwickeln, die global ausgerollt werden können.

Unsere Beispielapplikation ist eine simple Webanwendung, bestehend aus einem Application Server oder einer Applikation, die die notwendigen Frameworks mitbringt und einer Datenbank. Die Applikation kann z. B. Java EE oder Spring nutzen – an dieser Stelle macht das keinen Unterschied und ist ein vernachlässigbares Detail. Alle in diesem Artikel betrachteten Patterns sind im Prinzip auch bei anderen Cloud-Providern einsetzbar. An dieser Stelle wird aber lediglich Amazon Web Services (AWS) betrachtet.

Regions und Availability Zones

Die Services von Amazon werden an verschiedenen Standorten weltweit angeboten. Diese Standorte bestehen aus einer so genannten Region und Availability Zones (AZs). Jede Region ist ein separater geografischer Bereich; innerhalb einer Region befinden sich mehrere voneinander getrennte Standorte, die sog. Availability Zones. Um das Ausfallrisiko zu minimieren, sollte die verwendete Infrastruktur in verschiedenen Availability Zones innerhalb einer Region aufgesetzt werden. Zwischen einzelnen Regions werden keine Daten repliziert, falls das nicht ausdrücklich vom Kunden gewünscht/angefordert wird [1].

Für die Beispielarchitektur in diesem Artikel verwenden wir folgende Komponenten:

Amazon EC2: Amazon Elastic Compute Cloud (EC2) ist ein Service, der konfigurierbare Rechenkapazität in der Cloud in Form von virtuellen Maschinen bietet. Für diesen Service existiert eine Fülle unterschiedlicher OS-Images. In unserem Beispiel verwenden wir Amazon Linux, was eine Art RHEL-basiertes Linux-OS von Amazon ist.

Amazon S3: Amazon Simple Storage Service (S3) ist eine Art HTTP-basiertes Speichersystem „für das Internet“. S3 bietet simple APIs zum Lesen und Schreiben nahezu beliebiger Datenmengen.

Amazon CloudFront ist ein...

Neugierig geworden?

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