Bausteine der Cloud
- 25 Minuten
Cloud Computing bietet die Nutzung von Computingressourcen als Dienst über das Netzwerk. Vor der Erörterung der Dienstmodelle, die in einer Cloud angeboten werden, sollten wir die verschiedenen Hardware- und Softwareebenen berücksichtigen, die zur Erstellung von Clouddiensten erforderlich sind. Natürlich sind nicht alle Dienstanforderungen identisch. Einige Cloudanwendungen benötigen möglicherweise nur einfach Zugriff auf die Infrastruktur, um Anwendungen zu erstellen. Andere möchten überhaupt nichts mit der Infrastruktur zu tun haben, sondern einfach auf einer benutzerfreundlichen Plattform Anwendungen entwickeln und bereitstellen. Um diese unterschiedlichen Anforderungen zu erfüllen, unterteilen Clouddienstanbieter Ihre Angebote in verschiedene abstrakte Ebenen.
Bausteine der Cloud
Hier stellen wir eine gestapelte Abstraktion der Cloud vor, indem wir typische Bausteine vorstellen und ihre Zuordnung zu drei Dienstmodellen im Cloud Computing erörtern. Wir stellen vier Hauptbausteine im Cloud Computing vor: Anwendungssoftware, Entwicklungsplattformen, Ressourcenfreigabe und Infrastruktur, wie in Abbildung 7 dargestellt. Die Infrastruktur umfasst die physischen Ressourcen in einem Rechenzentrum. Die Ressourcenfreigabeebene umfasst in der Regel Hard- und Softwaretechniken, die die Freigabe der physischen Ressourcen ermöglichen und gleichzeitig ein gewisses Maß an Isolation bieten. Die Entwicklungsplattformen werden verwendet, um Cloudanwendungen zu entwickeln.
Abbildung 7: Bausteine des Cloud Computing
Anwendungssoftware: Die oberste Ebene im Stapel ist die Anwendungssoftware, die normalerweise die vom Endbenutzer verwendete Systemkomponente ist.
Entwicklungsplattformen: Die nächste Ebene (Entwicklungsplattformen) ermöglicht Anwendungsentwicklern, Anwendungssoftware unter Verwendung der Anwendungsprogrammierschnittstelle (API) einer Cloud zu schreiben. Entwicklungsplattformen bieten in der Regel Spezifikationen, die Entwickler für Routinen, Datenstrukturen, Objektklassen, Bibliotheken und Variablen verwenden können.
Ressourcenfreigabe: Die Mechanismen zur Ressourcenfreigabe (die dritte Ebene) verkörpern einige wichtige Cloudideen:
- Bereitstellen von Software-, Berechnungs-, Netzwerk- und Speicherdiensten.
- Ermöglicht eine gemeinsame Umgebung, in der mehrere Hardwareimages (z. B. virtuelle Computer) und Systemimages (z. B. universelle Betriebssysteme) zusammen mit Sicherheits-, Ressourcen- und Fehlerisolationen nebeneinander in einer einzelnen Infrastruktur ausgeführt werden können. Diese Isolationseigenschaften werden durch eine Kombination aus Hardware- und Softwaretechniken bereitgestellt, die später behandelt werden.
- Konsolidieren physischer Server zu virtuellen Servern, die auf einer geringeren Anzahl von physischen Servern ausgeführt werden.
- Bereitstellen von Flexibilität und Elastizität, um schnell auf Ressourcen- und Dienstanforderungen der Benutzer zu reagieren.
Zu diesen Zwecken wird in der Regel die Virtualisierung eingesetzt, eine Technologie, die in einem späteren Modul erläutert wird.
Infrastruktur: Physische Ressourcen bilden die unterste Ebene und werden beim Cloud Computing primär auf der Seite des Cloudanbieters bereitgestellt. Die allgemeinen Ressourcenklassen umfassen die folgenden:
- Computeressourcen (in der Regel Server) sind Computer, die für Enterprise Computing konzipiert sind (im Gegensatz zu Benutzerarbeitsstationen). Sie werden in der Regel in Racks eingebaut, um den Platz effizient zu nutzen.
- Speicherressourcen, mit denen die Daten der Cloud verwaltet werden. Der Anwendungsspeicher wird in der Regel nach der Kapazitätsnutzung (z. B. pro Gigabyte oder Terabyte) abgerechnet.
- Netzwerkressourcen, die sowohl die Kommunikation zwischen Servern als auch zwischen Servern und Clients ermöglichen.
- Software, die die Compute-, Netzwerk- und Speicherinfrastruktur verwaltet.
Im nächsten Schritt wird erläutert, welche dieser Abstraktionen als geleaste Dienste über ein Netzwerk bereitgestellt werden können. Beispielsweise benötigt ein Softwareentwickler andere Dienste und Ressourcen als jemand, der Zugriff auf eine in der Cloud ausgeführte Webmailanwendung haben möchte.
Cloud Computing-Dienste
Im Allgemeinen unterscheiden sich Clouddienste je nach den Anforderungen verschiedener Benutzer. In diesem Abschnitt werden drei gängige Arten von Clouddiensten untersucht:
- Software-as-a-Service (SaaS)
- Platform-as-a-Service (PaaS)
- Infrastructure-as-a-Service (IaaS)
SaaS ist eine beliebige Anwendung, in der der Endbenutzer über das Netzwerk auf eine Softwareanwendung zugreifen kann und auf Basis einer Vielzahl von Geschäftsmodellen bezahlt, von denen einige kostenlos sind. PaaS ist das Angebot von Softwareentwicklungsplattformen als Dienst, die zur Entwicklung von SaaS-Anwendungen verwendet werden. Und schließlich ist IaaS das Leasing der virtualisierten Infrastruktur über das Netzwerk. In diesem letzten Modell hat der Endbenutzer die Flexibilität, jede gewünschte Software in der geleasten Infrastruktur zu installieren und zu verwenden.
Im folgenden Video werden diese Dienste dargestellt:
SaaS-Modell
Software-as-a-Service (SaaS)
(Definition) Software-as-a-Service (SaaS) ist ein Softwarebereitstellungsmodell, bei dem Software und zugehörige Daten in der Cloud gehostet werden. Auf SaaS-Anwendungen greifen normalerweise Benutzer zu, die einen Thin Client über einen Webbrowser verwenden.
SaaS ist eines der gängigsten Clouddienstmodelle, bei dem der Cloudanbieter Software als Internetdienst bereitstellt. Das folgende Video zeigt dieses Szenario. Saas-Benutzer verwenden einfach Ihre Browser für den Zugriff auf die Software. Dadurch entfällt die Notwendigkeit, die Anwendung auf ihren Computern zu installieren, auszuführen und zu warten (aktualisieren, patchen, neu konfigurieren usw.). Der Webrowser lädt den SaaS-Anwendungsdienst dynamisch und transparent.
SaaS hat sich zu einem gemeinsamen Softwarebereitstellungsmodell für viele Geschäftsanwendungen entwickelt, darunter Buchhaltung, Zusammenarbeit, Customer Relationship Management (CRM), Managementinformationssysteme (MIS), Enterprise Resource Planning (ERP), Rechnungsstellung, Personalwesen (HRM), Content Management (CM) sowie Service Desk-Management.
Bei SaaS kümmert sich der Anbieter um die Software und die erforderliche Infrastruktur für deren Ausführung. Der Anbieter entwickelt die Software routinemäßig, und Verbesserungen werden automatisch zur Verfügung gestellt, wenn sich der Benutzer das nächste Mal anmeldet. Darüber hinaus befinden sich alle Anwendungsdaten, die sich aus der Nutzung des Dienstes ergeben, in der Cloud und stehen dem Benutzer von jedem Ort aus zur Verfügung.
SaaS-Eigenschaften
Die überwiegende Mehrheit der SaaS-Lösungen basiert auf einer so genannten mehrinstanzenfähigen Architektur. Bei dieser Architektur wird für jeden Kunden eine einzelne Version der Anwendung mit einer einzelnen Konfiguration verwendet (als Mandant bezeichnet). Damit der Dienst problemlos skalierbar ist, kann er auf mehreren Servern auf Anbieterseite installiert werden. Die dynamische Skalierung wird verwendet, um bei zunehmender Beliebtheit des Dienstes mehr Benutzern die Nutzung zu ermöglichen.
Zu den typischen Merkmalen von SaaS gehören:
- Der Zugriff auf den Softwaredienst ist webbasiert.
- Die Software wird von einem zentralen Standort aus vom Cloudanbieter verwaltet.
- Die Software wird in einem 1:N-Modell bereitgestellt, bei dem „1“ den Cloudanbieter und „N“ die Cloudbenutzer darstellt.
- Der Cloudanbieter kümmert sich um Softwareupgrades und Patches.
SaaS-Preismodelle
Im Gegensatz zu herkömmlicher Software, die im Rahmen des Softwarelizenzmodells verkauft wird (mit im Voraus anfallenden Lizenzkosten und einer optionalen fortlaufenden Supportgebühr), veranschlagen SaaS-Anbieter für Anwendungen in der Regel eine monatliche oder jährliche Abonnementgebühr. Mit diesem Modell kann SaaS einen der wichtigsten Vorteile von Cloud Computing erfüllen: die Reduzierung der Investitionskosten oder der Anschaffungskosten von Software. SaaS-Anbieter erheben in der Regel Gebühren auf der Grundlage von Nutzungsparametern, z. B. der Anzahl der Benutzer, die die Anwendung verwenden.
SaaS-Anwendungsfälle
SaaS ist ein gutes Modell für bestimmte Arten von Anwendungen. Beispiele:
- Anwendungen, die weitgehend standardisiert sind und keine benutzerdefinierten Lösungen erfordern. E-Mail-Anwendungen sind ein gutes Beispiel für eine weitgehend standardisierte Anwendung.
- Anwendungen, die einen erheblichen Bedarf an Remote-/Web-/mobilen Zugriff haben, z. B. Software für mobiles Vertriebsmanagement.
- Anwendungen, die einen kurzfristigen Bedarf haben, z. B. Kollaborationssoftware für ein bestimmtes Projekt.
- Anwendungen, bei denen die Nachfrage deutliche Spitzen aufweist, z. B. Steuer- oder Abrechnungssoftware, die einmal im Monat eingesetzt wird.
Es gibt jedoch Situationen, in denen SaaS möglicherweise nicht die richtige Wahl ist. Beispiele:
- Anwendungen, die einen Offlinezugriff auf Daten erfordern.
- Anwendungen, die eine erhebliche Anpassung erfordern.
- Anwendungen, bei denen Richtlinien oder Vorschriften verhindern, dass Daten extern gehostet werden.
- Anwendungen, für die bestehende interne Lösungen alle Anforderungen des Unternehmens erfüllen.
SaaS-Beispiele
Webmail ist eines der ersten Beispiele für SaaS. Webmail ermöglicht Benutzern mit einem Browser und einer Internetverbindung, jederzeit und überall auf ihre E-Mails zuzugreifen. Angebote wie Outlook, Yahoo Mail und Gmail sind sehr beliebt. Einige dieser Dienste basieren auf dem „Freemium“-Modell, bei dem Basisdienste kostenlos und erweiterte Features über ein Abonnement verfügbar sind. Darüber hinaus erzielen Anbieter Einnahmen hauptsächlich aus Werbung, die den Benutzern bei der Nutzung des Dienstes angezeigt wird.
Ein weiteres beliebtes Beispiel für SaaS-Angebote sind Online-Office-Suiten wie Microsoft 365, mit denen Benutzer Dokumente online erstellen, bearbeiten und freigeben können.
PaaS-Modell
Platform-as-a-Service (PaaS)
(Definition) Platform-as-a-Service (PaaS) ist eine Computing-Plattform, die die einfache Erstellung von Webanwendungen ohne die Komplexität von Erwerb und Wartung der zugrunde liegenden Software und Infrastruktur ermöglicht.
Auf PaaS basierende Angebote ermöglichen Benutzern, Anwendungen auf Plattformen zu entwickeln, bereitzustellen und zu skalieren, die von Cloudanbietern angeboten werden. PaaS ist analog zu SaaS, abgesehen davon, dass nicht die Software über das Internet bereitgestellt wird, sondern eine Plattform zum Erstellen von Software.
PaaS-Eigenschaften
PaaS-Angebote unterscheiden sich von Anbieter zu Anbieter, bieten aber in der Regel einige grundlegende Funktionen, darunter:
- Dienste zum Entwickeln, Testen, Bereitstellen, Hosten und Warten von Anwendungen in derselben integrierten Entwicklungsumgebung (Integrated Development Environment, IDE).
- Webbasierte Tools zur Erstellung von Benutzeroberflächen, mit denen verschiedene Benutzeroberflächenszenarios erstellt, geändert und getestet werden können.
- Mehrinstanzenfähige Architektur, bei der mehrere gleichzeitige Benutzer dieselben Entwicklungstools verwenden.
- Integrierte Skalierungsmechanismen der bereitgestellten Software, die automatisch vom Cloudanbieter mit Lastenausgleich und Failovermechanismen angewendet werden können.
PaaS-Preismodelle
Im Gegensatz zum Preismodell von SaaS (bei dem es sich um ein Modell auf Abonnement- oder Anzeigenbasis handelt) wird PaaS in der Regel gemäß Nutzung der Plattform abgerechnet. Im Preismodell von Azure Functions werden beispielsweise die Gesamtzahl der Ausführungen und die Ausführungszeit abgerechnet. Je mehr eine mit PaaS entwickelte Anwendung verwendet wird, desto mehr wird dem PaaS-Entwickler in Rechnung gestellt.
PaaS-Anwendungsfälle
PaaS ist ein gutes Modell für bestimmte Arten von Anwendungen. Beispiele:
- Szenarien für die schnelle Anwendungsentwicklung.
- Anwendungen, die eine webbasierte Infrastruktur benötigen, um unterschiedliche Anforderungen von Benutzern zu bearbeiten.
- Anwendungen, die in Zukunft möglicherweise nicht mehr erneut bereitgestellt oder auf andere Plattformen migriert werden müssen.
Es gibt bestimmte Szenarien, in denen PaaS möglicherweise nicht ideal ist. Beispiele:
- Wenn die Anwendung hinsichtlich des Ortes, an dem sie gehostet wird, besonders portierbar sein muss, da PaaS-APIs von einem PaaS-Anbieter zum anderen variieren können.
- Wenn proprietäre Sprachen oder APIs den Entwicklungsprozess beeinflussen oder in Zukunft durch die Anbieterabhängigkeit Probleme verursachen könnten.
- Wenn die Anwendungsleistung eine Anpassung der zugrunde liegenden Hard- und Software erfordert.
PaaS-Beispiele
Azure Functions ist ein Beispiel für PaaS. Mit Azure Functions können Entwickler kleine Codeelemente in der Azure-Infrastruktur ausführen, ohne sich Gedanken über die Verwaltung Ihrer eigenen Infrastruktur machen zu müssen.
IaaS-Modell
Infrastructure-as-a-Service (IaaS)
(Definition) Infrastructure-as-a-Service (IaaS) ist ein Cloud Computing-Modell, bei dem Cloudanbieter den Clients Computingressourcen zur Verfügung stellen, meist in Form von Instanzen oder virtuellen Computer.
Im IaaS-Modell vermieten Anbieter Computingressourcen in Form von Instanzen oder virtuellen Computern, denen eine Art von konfigurierbaren CPUs, Speichern, Datenträgern und Netzwerkbandbreiten angefügt ist. Nach der Bereitstellung können IaaS-Benutzer eine Remoteverbindung mit diesen Instanzen herstellen und Ihre Auswahl von Plattformen und Anwendungen konfigurieren. Dieses Modell bietet den IaaS-Benutzern die meiste Flexibilität in Bezug auf Softwareentwicklung und -bereitstellung. Anstatt Server, Software, Netzwerkgeräte oder die Räumlichkeit für Rechenzentren zu kaufen, mieten Benutzer diese Ressourcen bei Bedarf als vollständig ausgelagerten Dienst.
IaaS-Eigenschaften
IaaS hat die folgenden Merkmale:
- Computingressourcen werden IaaS-Benutzern als Dienst zur Verfügung gestellt.
- IaaS-Anbieter stellen Tools zur Verfügung, die IaaS-Benutzern ermöglichen, die dynamische Skalierung von Ressourcen zu konfigurieren.
- IaaS-Anbieter bieten in der Regel unterschiedliche Ressourcenangebote zu unterschiedlichen Kosten und folgen einem bedarfsabhängigen Preismodell (in der Regel stundenweise berechnet).
- Dieselben physischen Ressourcen werden von mehreren Benutzern gemeinsam genutzt.
IaaS-Preismodelle
Im Gegensatz zum Preismodell von SaaS (bei dem es sich um ein Modell auf Abonnement- oder Anzeigenbasis handelt) oder dem PaaS-Modell (das in der Regel nach der Anzahl von Transaktionen oder verwendeter Bandbreite oder verwendetem Speicher abgerechnet wird), wird IaaS in der Regel stündlich pro Instanz abgerechnet. So bietet Azure Virtual Machines z. B. ein Spektrum von Computeressourcen als virtualisierte Betriebssysteminstanzen, die sich hinsichtlich Compute, Arbeitsspeicher, Speicherplatz und Bandbreite unterscheiden.
Cloudanbieter können auch wählen, ob sie anteilig oder nicht anteilig fakturieren. Auf anteiliger Basis wird jede Teilstunde anteilig abgerechnet, während auf nicht anteiliger Basis jede angefangene Stunde als volle Stunde abgerechnet wird. Dieser Unterschied wird deutlich, wenn IaaS-Benutzer für einen kurzen Zeitraum eine große Anzahl von Instanzen für die Burstverarbeitung benötigen.
IaaS-Anwendungsfälle
IaaS ist in einer Reihe von Situationen sinnvoll:
- Wenn die Nachfrage nach Computingressourcen unbeständig ist. Beispielsweise werden während der Urlaubssaison die meisten Anforderungen an E-Commerce-Websites gestellt.
- Für neue Unternehmen, die nicht über das Kapital verfügen, um in die lokale Infrastruktur zu investieren.
- Wenn Unternehmen ihre IT-Ressourcen schnell erweitern müssen (z. B. Internet-Startups).
- Für temporäre Projekte oder temporäre Infrastrukturanforderungen (wenn Unternehmen für eine begrenzte Zeit eine große Menge an Computeleistung benötigen).
IaaS ist möglicherweise in folgenden Fällen nicht die beste Option:
- Die Einhaltung gesetzlicher Bestimmungen ermöglicht keine Auslagerung von Daten.
- Anwendungen haben strikte QoS-Anforderungen (Quality of Service).
- Unternehmen verfügen über eine eigene interne, angepasste Infrastruktur, um ihre IT-Anforderungen zu erfüllen.
IaaS-Beispiele
Alle großen Cloudanbieter bieten IaaS-Produkte an. Azure Virtual Machines vermietet Instanzen aus verschiedenen, über die ganze Welt verteilten Rechenzentren. Benutzer können aus verschiedenen Instanzentypen auswählen, die von CPUs mit wenig Arbeitsspeicher (für nur wenige US-Cents pro Stunde) bis hin zu Instanzen mit mehreren Kernen, hoher Leistung und GPU-Beschleunigung (für mehrere US-Dollar pro Stunde) reichen.