Einleitung

Dieses Dokument stellt eine Zusammenfassung von Design-Pattern im Hinblick auf Cloud Computing dar und richtet sich dabei an das Buch "Cloud Design Patterns - Prescriptive Architecture Guidance for Applications" (ISBN: 978-1-62114-036-8). Im Buch werden acht grundlegende Aspekte für Probleme in der Entwicklung im Bereich Cloud Computing betrachtet:

  • Verfügbarkeit:

    Die Verfügbarkeit ist definiert als die Zeit, indem das System funktions- und arbeitsfähig ist. Für gewöhnlich wird diese Zeit prozentual angegeben und mit Benutzern in Form eines Service-Level-Agreements (SLA) vereinbart.

  • Datenmanagement:

    Datenmanagement ist eines der Schlüsselaspekte im Bereich des Cloud-Computings. Im Hinblick auf Anforderungen bezüglich Performance, Skalierbarkeit oder Verfügbarkeit liegen Daten an mehreren Orten und auf mehreren Servern gestreut vor. Hier sind bspw. Datensynchronisation und Datenintegrität gefordert.

  • Design und Implementierung

    Entscheidungen in der Design- und Entwicklungsphase haben immense Auswirkungen auf die Qualität und die Kosten einer Applikation. Das Design hat bspw. Einfluss auf die Konsistenz und Kohärenz zusammenhängender Komponenten, die Wartbarkeit eines Systems und die Wiederverwendbarkeit einzelner Komponenten.

  • Benachrichtigungen

    Die dezentrale Natur von Cloud-Applikationen erfordert eine Infrastruktur für Benachrichtigungen, um verteilte Komponenten und Dienste koppeln zu können.

  • Management und Überwachung

    Cloud-Applikationen werden in Datenzentren betrieben, dadurch besteht oft keine volle Kontrolle über die Infrastruktur. Somit gestaltet sich das Management und die Überwachung oft schwieriger als bei einem "on-premises" Betrieb. Applikationen müssen zur Laufzeit Informationen freigeben, um Administratoren die Möglichkeit zu bieten das System zu verwalten und zu überwachen.

  • Performanz und Skalierbarkeit

    Performanz beschreibt die Fähigkeit eines Systems eine Aktion in einem bestimmten Zeitinterval ausführen zu können, während die Skalierbarkeit die Fähigkeit eines Systems beschreibt erhöhte Lasten verwalten zu können, ohne dass sich Auswirkungen in der Performanz oder bei anderen verfügbaren Ressourcen bemerkbar machen.

  • Elastizität

    Elastizität beschreibt die Fähigkeit eines Systems auf Fehler reagieren zu können, sowie sich von Fehlern erholen zu können. Da typischerweise mehrere Kunden einen Dienst auf einem Server in Anspruch nehmen, besteht eine erhöhte Fehlerwahrscheinlichkeit.

  • Sicherheit

    Sicherheit beschreibt die Fähigkeit eines Systems böswillige oder unbeabsichtigte Aktionen zu vermeiden und nur Aktionen innerhalb des System-Designs zu genehmigen. Cloud-Applikationen sind oft öffentlich zugänglich und müssen deshalb vor böswilligen Angriffen und unautorisiertem Zugriff geschützt werden.

Im Folgenden werden diverse Design-Pattern vorgestellt, welche Hilfestellungen für Herausforderungen in der Entwicklung cloudbasierter Systeme bieten und dabei die oben genannten Aspekte einbeziehen.

results matching ""

    No results matching ""