Cloud-Architektur
Was ist eine Cloud-Architektur?
Bei einer Cloud-Architektur werden Infrastrukturkomponenten miteinander verbunden und konfiguriert, um eine geeignete Cloud-Computing-Umgebung zu schaffen, die die erforderliche Leistung, Zuverlässigkeit und Skalierbarkeit für das Hosting von Benutzer-Workloads und Daten bietet. Die Cloud-Architektur dient als Blaupause, welche die effizientesten und kostengünstigsten Optionen zur Kombination von Cloud-Komponenten für Geschäftsanforderungen definiert.
Die Cloud-Architektur basiert auf den gewünschten Cloud-Komponenten, die vom Geschäftsanwender bereitgestellt und miteinander verbunden werden. Der Begriff Komponente ist ein weit gefasster Begriff für die erforderlichen Ressourcen, Dienste und Anwendungen:
- Zu den Ressourcen gehören Bare-Metal-Server, virtuelle Maschinen (VMs), virtualisierte Container, Storage-Ressourcen wie Datenträger oder Amazon S3 Buckets und Netzwerkinfrastruktur.
- Services stellen verschiedene Tools und Frameworks dar, die bereits vom Cloud-Anbieter bereitgestellt werden, darunter Firewall, Identitäts- und Zugriffsverwaltung (IAM), Load Balancer, Datenbanken, Monitoring und Reporting Tools.
- Zu den Anwendungen gehören verschiedene Frameworks, wie zum Beispiel Monitoring und Verwaltungs-Tools, Softwareentwicklungsplattformen, wie zum Beispiel integrierte Entwicklungsumgebungen (IDE), Abrechnungs- und Empfehlungs-Tools.
Nehmen wir zum Beispiel an, ein Unternehmen migriert seine lokalen Webserver in die Cloud. Eine Cloud-Architektur kann die Bereitstellung von VMs zum Hosten der Webserver-Anwendungen beinhalten. Diese VMs können dann mit Storage-Ressourcen verknüpft werden, um Daten zu empfangen, zwischenzuspeichern, zu sichern und der Webanwendung bereitzustellen. Die VMs und der Speicher können mit einem Domain Name System, Lastausgleichs- und Firewall-Diensten verbunden werden, um die Cloud-Infrastruktur verfügbar und sicher zu halten. Sobald eine geeignete Infrastruktur entworfen und validiert wurde, kann sie als Vorlage für ähnliche zukünftige Arbeitslasten verwendet werden.
Ein Cloud-Architekt entwirft und implementiert in der Regel die Architektur. Er entwickelt Cloud-Anpassungsstrategien, erstellt das Cloud-Architekturdesign, arbeitet mit dem DevOps-Team und anderen Entwicklungsspezialisten zusammen, empfiehlt Kostenoptimierungen und spezifiziert die Systeme, die für die Verwaltung und Überwachung der Cloud-Infrastruktur und der Cloud-Anwendungen erforderlich sind.
Wie funktioniert eine Cloud-Architektur?
Es gibt viele Möglichkeiten, eine Cloud-Architektur zu beschreiben, aber am besten lässt sich eine Cloud anhand ihrer verschiedenen Schichten konzipieren. Eine vollständige Cloud-Architektur ist kein einzelnes Konzept. Der Zugriff auf Ressourcen und Dienste erfolgt über einen Client-Server-ähnlichen Ansatz von Anfrage und Antwort über Folgendes:
- Backend. Wie bei der normalen Client-Server-Datenverarbeitung werden fast alle Ressourcen und Dienste im Backend – oder auf der Serverseite – gehostet, wo der Cloud-Anbieter seine proprietäre Technologieinfrastruktur aufbaut und betreibt. Hier betreibt der Anbieter seine Server, Storage-Ressourcen, Virtualisierungs-Frameworks sowie Verwaltungs- und Überwachungsanwendungen.
- Frontend. Das Frontend – oder die Client-Seite – ist die Benutzerschnittstelle, über die Benutzer auf das Backend des Cloud-Anbieters zugreifen und mit diesem interagieren. In den meisten Fällen handelt es sich dabei um ein Webportal, das über einen gängigen Browser eingerichtet wird und es Benutzern ermöglicht, sich anzumelden, neue Cloud-Architekturkomponenten zur Nutzung bereitzustellen, die Verfügbarkeit und Leistung dieser Komponenten zu überwachen, die Abrechnung zu verwalten und andere benutzerseitige Aufgaben auszuführen.
- Middleware. Frontends und Backends sind in der Regel über Middleware verbunden, die Frontend-Anfragen in Backend-Aufgaben und Backend-Aktionen in Frontend-Antworten umwandelt. Cloud-Anbieter verwenden in der Regel eine oder mehrere Programmierschnittstellen (API) als Middleware. APIs stellen eine standardisierte und sichere Interaktionsmöglichkeit dar. Wenn beispielsweise ein Benutzer in einem Frontend-Browser eine neue Storage-Ressource im Backend des Cloud-Anbieters erstellt, wird diese Aktion durch API-Middleware erleichtert.
- Netzwerk. Schließlich greift das Frontend über ein Netzwerk, das das lokale Netzwerk und das gesamte Internet – das Wide Area Network (WAN) – umfasst, auf die Middleware und das Backend zu. Obwohl die meisten Cloud-Architekturen mit geringer Netzwerkbandbreite und geringer Latenz aufgerufen und betrieben werden können, kann für intensivere Aufgaben, wie das Verschieben von Dateien vom lokalen Rechenzentrum zu einer in der Cloud erstellten Storage-Ressource, eine größere Bandbreite und eine geringere Latenz erforderlich sein.
Diese vier Hauptschichten können in drei großen Cloud-Architekturmodellen ausgedrückt werden:
- Infrastructure as a Service (IaaS). Hierbei handelt es sich um ein flexibles und granulares Cloud-Computing-Modell. Benutzer können spezifische Ressourcen, Dienste und Anwendungen bereitstellen und verknüpfen, um eine Computerumgebung zu entwerfen, die die in der Cloud bereitgestellten Anwendungen optimal unterstützt. Mit IaaS können Benutzer die Architektur direkt steuern.
- Platform as a Service (PaaS). Dieses Cloud-Computing-Modell bietet Benutzern Zugriff auf bestimmte Frameworks oder Toolsets, die umfassende Funktionen direkt aus der Cloud bereitstellen sollen, ohne dass diese Frameworks und Tools in lokalen Rechenzentren installiert oder gewartet werden müssen. Beispielsweise können vielbeschäftigte Softwareentwickler ein DevOps PaaS mit einem umfassenden Toolset verwenden, das einen vollständigen Workflow unterstützt und verwaltet.
- Software as a Service (SaaS). Dieses Cloud-Computing-Modell bietet Benutzern Zugriff auf eine bestimmte Anwendung, die von einem Anbieter verwaltet und gewartet wird. Beispielsweise kann ein Unternehmen ein Buchhaltungs-, Personal- oder Design-Tool verwenden, das als SaaS bereitgestellt wird, anstatt dieses Tool lokal zu kaufen, zu installieren und zu warten.
In jedem größeren Cloud-Architekturmodell sind die Hauptelemente Frontend, Middleware, Backend und Netzwerk vorhanden. Der einzige Unterschied zwischen den einzelnen Cloud-Modellen besteht in der Ebene der Benutzerkontrolle, die über die Infrastruktur des Anbieters ausgeübt wird.
Komponenten einer Cloud-Architektur
Eine Cloud-Architektur umfasst zahlreiche Komponenten, darunter die folgenden:
- Infrastruktur oder Ressourcen. Dies stellt die Hardwareebene einer Cloud dar, die Server, Storage, Netzwerkgeräte, Verkabelung und alle anderen Elemente umfasst, die in einem herkömmlichen Rechenzentrum zu finden sind, wie Hardware-Firewalls und Lastverteiler. Die globale Präsenz von Cloud-Anbietern wird durch die Standorte der Rechenzentren gekennzeichnet.
- Virtualisierung. Bei der Virtualisierung wird die physische Hardware von Diensten, Anwendungen und Benutzern getrennt, um zwei wesentliche Vorteile gegenüber physischen Ressourcen zu erzielen. Erstens ermöglicht die Virtualisierung eine bessere Hardware-Auslastung, zum Beispiel durch das Hosting mehrerer VMs auf demselben physischen Server, und eine höhere Effizienz. Zweitens ermöglicht Virtualisierung die Aggregation und Bündelung von Ressourcen, sodass Ressourcen bereitgestellt und genutzt werden können, unabhängig davon, wo sie sich innerhalb der physischen Infrastruktur des Cloud-Anbieters befinden.
- Middleware. Middleware ist im Grunde eine Softwareschicht, die es Benutzern ermöglicht, mit den Ressourcen, Diensten und Anwendungen des Cloud-Anbieters zu interagieren. APIs sind die typische Middleware für Cloud-Umgebungen und stellen den standardisierten Satz von Befehlen und Funktionen bereit, die für die Interaktion mit dem Cloud-Anbieter verwendet werden. Obwohl andere Software, wie Datenbanken und Kommunikationsanwendungen, in traditionellen Unternehmensrechenzentren als Middleware angesehen werden kann, werden diese Elemente von Cloud-Anbietern in der Regel als Dienste behandelt.
- Automatisierung und Orchestrierung. Die Bereitstellung und Nutzung einer Cloud kann unzählige Prozesse, Richtlinien und Arbeitsabläufe umfassen, die alle nicht manuell aufgerufen werden können. Automatisierungs- und Orchestrierungs-Tools sind wichtige Komponenten einer Cloud-Infrastruktur, die Benutzerbefehle in umsetzbare Ereignisse übersetzen können, die alle erforderlichen Aktionen im Backend ausführen können. Beispielsweise können Automatisierungs-Tools für Cloud-Aufgaben wie die automatische Skalierung von entscheidender Bedeutung sein, bei der Cloud-Ressourcen je nach Bedarf hinzugefügt oder freigegeben werden.
- Verwaltung. Benutzer benötigen umfassende Einblicke in die Cloud-Infrastruktur, um sicherzustellen, dass bereitgestellte Ressourcen ordnungsgemäß genutzt und abgerechnet werden, damit der Benutzer einen angemessenen Mehrwert erhält. Verwaltungs-Tools bieten Einblicke in die Cloud-Kapazität und -Leistung und ermöglichen es Benutzern, die Nutzung zu verfolgen, Bereitstellungen vorzunehmen und zu ändern, Daten zu verschieben, Backups zu verwalten und Disaster Recovery (DR) zu implementieren.
- Dienste. Cloud-Umgebungen sind oft weit mehr als nur virtualisierte Hardware, und Anbieter bieten in der Regel eine Vielzahl von Anwendungen an, die Cloud-Nutzern nützliche Dienste bereitstellen sollen. So können beispielsweise Kubernetes-Dienste für Container-Nutzer von entscheidender Bedeutung sein, von Anbietern betriebene Datenbanken können wichtige Unterstützung für in der Cloud bereitgestellte Unternehmensanwendungen bieten und Dienste für maschinelles Lernen können Geschäftsanwendern bei der Entwicklung von Plattformen für künstliche Intelligenz helfen.
Arten von Cloud-Architekturen
Unternehmen können vier grundlegende Cloud-Architekturmodelle nutzen:
- Public Cloud. Dies ist das gängigste und anerkannteste Cloud-Architekturmodell und wird in der Regel standardmäßig für Cloud Computing in Betracht gezogen. Der Cloud-Anbieter besitzt und betreibt die Ressourcen und Dienste und bietet sie kommerziell Nutzern an, die die gemeinsame Infrastruktur des Anbieters in einer mandantenfähigen Umgebung gemeinsam nutzen. Die Public Cloud bietet globale Verfügbarkeit, hohe Skalierbarkeit und eine überschaubare Kostenstruktur für Cloud Computing mit nutzungsbasierter Bezahlung.
- Private Cloud. Dieses Cloud-Architekturmodell konzentriert sich auf die Bereitstellung von Ressourcen und Diensten, die dem Unternehmen selbst gehören und von ihm selbst betrieben werden, und nicht von einem Drittanbieter, wobei die Bereitstellung auf die gleiche Weise wie bei einer Public Cloud erfolgt. Dies bietet eine bessere Sicherheit und Anpassungsfähigkeit als die Public Cloud, erfordert jedoch das gesamte finanzielle und technische Engagement, das für ein traditionelles Rechenzentrum vor Ort erforderlich ist. Diese Art von finanzieller und technischer Investition begrenzt gleichzeitig die Ressourcen und Dienste der Private Cloud und macht sie weniger skalierbar als Public Clouds.
- Hybrid Cloud. Eine Hybrid-Cloud-Architektur stellt eine Verbindung zwischen einer Public und einer Private Cloud her. Mit einer passenden Architektur kann eine Hybrid Cloud die Skalierbarkeit und den Umfang einer Public Cloud mit der Sicherheit und Kontrolle einer Private Cloud verknüpfen, sodass Arbeitslasten und Daten zwischen den beiden Clouds verschoben werden können. Hybrid-Cloud-Architekturen erfordern den gesamten Arbeitsaufwand und das technische Know-how, das für eine Private Cloud erforderlich ist, sowie das umfangreiche Fachwissen, das für die Nutzung einer Public Cloud notwendig ist, was zu einem erheblichen Aufwand für das Unternehmen führt.
- Multi-Cloud. Cloud-Architekturen sind alles andere als standardisiert oder einheitlich. Jede Public Cloud hat bestimmte Spezialisierungen und Arten von Ressourcen und Diensten, die andere Public Clouds möglicherweise nicht bieten. Eine Multi-Cloud-Architektur ermöglicht es Benutzern, die Ressourcen und Dienste von zwei oder mehr Public Clouds gleichzeitig zu nutzen. Dies ermöglicht mehr Flexibilität, kann die Widerstandsfähigkeit verbessern und das Potenzial für eine Bindung an einen Cloud-Anbieter verringern. Allerdings müssen die Benutzer über umfassende Kenntnisse im Umgang mit allen Clouds in der Multi-Cloud-Architektur verfügen, was mehr Wissen und Mitarbeiterfähigkeiten erfordert als eine einzige Public Cloud.
Vorteile einer Cloud-Architektur
Bei der Cloud-Architektur geht es um Definition und Planung – darum, zu wissen, was benötigt wird, und zu verstehen, wie diese Elemente optimal miteinander verbunden, konfiguriert und betrieben werden können. Wie bei jeder strategischen Planung kann das Unternehmen erhebliche Vorteile daraus ziehen, darunter die folgenden:
- Bereitstellung. Durch die Einrichtung einer formellen Cloud-Architektur können neue Bereitstellungen viel schneller und zuverlässiger implementiert werden. Benutzer müssen sich nicht mit Experimenten und Optimierungen herumschlagen, um die richtigen Elemente und Konfigurationen zu finden – diese Arbeit wurde bereits erledigt.
- Leistung. Eine gut geplante Cloud-Architektur kann die Leistung und Ausfallsicherheit bieten, die für den Betrieb einer Arbeitslast erforderlich ist. Elemente wie VM-Typen und Storage-Komponenten sind bereits in der Architektur ausgewählt, zusammen mit zusätzlichen Elementen wie Überwachungskomponenten, die für eine ordnungsgemäße fortlaufende Leistung erforderlich sind.
- Sicherheit. Viele Sicherheitsmängel werden durch mangelnde Planung verursacht, da Benutzer Schwierigkeiten haben, eine Ad-hoc-Architektur und -Bereitstellung zu implementieren. Eine formalisierte Cloud-Architektur ermöglicht es Architekten, Sicherheits- und Zugriffskontrollmaßnahmen wie IAM zu planen, die die Sicherheit für die Arbeitslast und ihre Daten erhöhen.
- Kosten. Eine etablierte Cloud-Architektur kann dem Unternehmen bekannte oder vorhersehbare Kosten für die Bereitstellung bieten, da die erforderlichen Ressourcen, Dienste und Anwendungen bereits bekannt sind. Dadurch ist das Unternehmen auch in der Lage, Optimierungen umzusetzen und von Kosteneinsparungsmaßnahmen wie Mengenrabatten und Rabatten für die zugesicherte Nutzung zu profitieren.
- Verwaltung. Die Erstellung eines gut durchdachten Cloud-Architekturplans ist die perfekte Gelegenheit, Überwachungs- und Verwaltungs-Tools einzubinden, mit denen das Unternehmen die Leistung und Verfügbarkeit jeder Arbeitslast überwachen und die Nutzung beobachten kann, um die Skalierung voranzutreiben und eine unkontrollierte Ausbreitung der Cloud zu verhindern.
- Einheitlichkeit. Die Erstellung einer grundlegenden Cloud-Architektur sorgt für Einheitlichkeit. Jede Bereitstellung bietet bekannte Funktionen – das Unternehmen weiß, was es bekommt und wie es funktioniert. Dies ist besser für die Unternehmensführung, die Einhaltung von Vorschriften und eine schnellere Fehlerbehebung bei Arbeitslasten.
Bewährte Verfahren für eine Cloud-Architektur
Es gibt nicht die eine beste Cloud-Architektur oder den einen besten Designansatz, aber die Vorteile einer gut durchdachten Basisarchitektur können dem Unternehmen wichtige Vorteile bringen. Unabhängig vom Architekturplan oder der Methodik, die zu seiner Umsetzung verwendet wird, können mehrere bewährte Verfahren dabei unterstützen, die Bemühungen voranzutreiben, darunter die folgenden:
- Planung. Ein Architekturplan wird selten auf Papier fertiggestellt – er ist oft das Ergebnis detaillierter Tests und Experimente in der Cloud. Eine Architektur sollte die vollen Kapazitäts- und Leistungsanforderungen berücksichtigen und genügend Ressourcen und Dienste bereitstellen, um die maximalen Anforderungen der Arbeitslast zu bewältigen oder eine angemessene Skalierung zu ermöglichen, um erhöhten Anforderungen gerecht zu werden. Dadurch werden Engpässe und Leistungseinbußen in der Produktion vermieden.
- Berücksichtigen Sie Kontinuität. Ein Plan für eine Cloud-Architektur sollte Vorkehrungen für gängige Schutzmaßnahmen wie Datensicherungen und -wiederherstellung, VM-Workload-Migrationen, Skalierbarkeit, DR und Ausfallsicherheit treffen. Das Hinzufügen geeigneter Überwachungs- und Verwaltungskomponenten ist ein wesentlicher Bestandteil dieser Bemühungen.
- Sicherheit in den Vordergrund stellen. Konzipieren Sie die Cloud-Architektur unter sorgfältiger Berücksichtigung der Arbeitslast und Datensicherheit auf verschiedenen Ebenen, einschließlich Datenverschlüsselung, Zero-Trust-Zugriff, umfassende Patch- oder Update-Tests, strenge Zugriffskontrolle und gut entwickelte Richtlinien. Zur Sicherheit sollten auch Reaktions-, Berichts- und Abhilfemaßnahmen gehören – was ist zu tun, wenn ein Verstoß auftritt?
- Verbesserung der Leistung. Die Cloud-Architektur sollte alle Instrumente enthalten, die für Monitoring und Reporting über die Leistung erforderlich sind. Dies ermöglicht eine schnelle Behebung von Leistungseinbrüchen und bietet eine Grundlage für die schrittweise Verbesserung der Architektur.
- Wertorientiertes Design. Es ist leicht, sich über die Cloud-Kosten Sorgen zu machen, aber der Schwerpunkt sollte auf dem Wert und nicht auf den reinen Cloud-Kosten liegen. Kontrollieren Sie die Kosten durch Automatisierung, zweckgebundene Nutzung und andere Taktiken, aber konzentrieren Sie sich auf den Wert und nicht auf die Kosten.
- Überdenken Sie den Plan. Die Cloud-Architektur ist keine einmalige Angelegenheit. Das Architekturdesign sollte regelmäßig überarbeitet und anhand der sich ändernden Geschäftsanforderungen und neuer Cloud-Technologien oder -Dienste neu bewertet werden.
Beispiele für Cloud-Architekturen finden
Es gibt unzählige Beispiele für Cloud-Architekturen, und viele Unternehmen haben Schwierigkeiten mit den Nuancen des Cloud-Architekturdesigns – insbesondere, wenn keine erfahrenen Cloud-Architekten zur Verfügung stehen. Eine Ressource, die dabei unterstützen kann, die Herausforderungen des Cloud-Architekturdesigns zu meistern, ist die Verwendung von Referenzarchitekturen.
Cloud-Service-Anbieter wie AWS, Microsoft Azure und Google Cloud sind eine gute Quelle für gut validierte Referenzarchitekturen und bewährte Implementierungen, die eine Vielzahl von Workload-Typen und Technologien abdecken können, wie zum Beispiel das Internet der Dinge, Serverless Computing und Container. Nützliche Referenzbibliotheken sind unter anderem:
Benutzer können Hunderte von Referenzarchitekturen durchsuchen, die gängige Anwendungsfälle und Workload-Typen in verschiedenen Branchen und Technologiebereichen abdecken. Sobald geeignete Referenzarchitekturen identifiziert wurden, können Benutzer diese Referenzen ändern und optimieren, um eine Architektur für ihre Branche und ihren Workload-Typ zu erstellen – und so unzählige Stunden an Experimenten und Versuchen zu sparen.