2 Was ist Cloud Computing?
Cloud Computing ist ein Phänomen, das – bewusst oder unbewusst – bereits von vielen Menschen genutzt wird. Es zeichnet sich dadurch aus, dass über das Internet auf Ressourcen zugegriffen wird, ohne dass der Nutzer weiß, wo genau diese Ressourcen angesiedelt sind. Täglich werden Webseiten, die sich in der Cloud befinden, aufgerufen. Gleiches gilt für E-Mail-Services! Wer weiß schon, wo genau die eigenen E-Mails liegen?
Wie erklärt sich nun der Erfolg des Cloud Computing? Es gibt eine immer breiter werdende Palette an technologischen Neuerungen. Cloud Computing wurde ins Leben gerufen, indem einige dieser Innovationen kombiniert wurden (siehe Abb. 2–1). Das weltumspannende Breitband-Internet macht es möglich, die physischen Standorte der Computer mit ihren gespeicherten Daten von den Schreibtischen der Kunden zu entkoppeln. Die dafür genutzte Webtechnologie basiert auf Standards, die es jedem ermöglichen, jederzeit und von jedem Ort aus mithilfe beliebiger Geräte auf seine Daten zuzugreifen. Zusätzlich erlaubt die Virtualisierung, jede Art von Softwareumgebung in beliebiger Größe zu erzeugen. So werden die logische und die physische Infrastruktur voneinander entkoppelt, ohne dass sich die Benutzer dessen bewusst sind oder die Anwendungen dies extra berücksichtigen müssen. Die Verbreitung von ServiceOrientierten Architekturen (SOA), in deren Rahmen Serviceanwendungen angeboten werden, die auf Standardformaten und Standardprotokollen basieren, hat das Cloud Computing ebenso maßgeblich mitgeformt. Das Grid Computing, bei dem Rechner systematisch zusammenarbeiten, sodass Aufgabenpakete über diese Cluster hinweg verteilt werden können, stattet die Cloud mit großer Prozessorkapazität aus, die als quasi-unendlich wahrgenommen wird. Einen letzten wesentlichen Einfluss auf das Cloud Computing hat das Vergütungsmodell, das verwendet wird: Gezahlt wird nur, wenn das System genutzt wird (engl. pay per use). Wir kennen dieses Modell aus der Welt der Gebrauchsgüter, wo die Höhe der Rechnungen auf der konsumierten Menge an Wasser, Elektrizität oder Gas basiert.
Abb. 2–1 Schlüsselfaktoren des Cloud Computing
Mit dem Cloud Computing können viele neue Möglichkeiten in die gegenwärtige IT-Landschaft integriert werden.
Um ein gutes Verständnis der Begriffe und Konzepte, die in diesem Buch dargestellt werden, zu gewährleisten, ist eine praxisorientierte Einordnung des Begriffes wesentlich. Dafür ziehen wir die Definition, die vom American National Institute of Standards and Technology (NIST) verwendet wird, heran.
NIST-Definition des Cloud Computing
»Cloud Computing ist ein Modell, das es erlaubt bei Bedarf, jederzeit und überall bequem über ein Netz auf einen geteilten Pool von konfigurierbaren Rechnerressourcen (z.B. Netze, Server, Speichersysteme, Anwendungen und Dienste) zuzugreifen, die schnell und mit minimalem Managementaufwand oder geringer Serviceprovider-Inter-aktion zur Verfügung gestellt werden können.«a
Dieses Cloud-Modell besteht aus fünf wesentlichen Eigenschaften, drei grundlegenden Dienstmodellenb und vier Bereitstellungsmodellen.
a. Siehe https://www.bsi.bund.de/DE/Themen/DigitaleGesellschaft/CloudComputing/Grundlagen/Grundlagen_node.html.
b. Anm. d. Übers.: Wir sprechen in diesem Buch angelehnt an den üblichen Sprachgebrauch von »Services« und daher im Weiteren, wenn von Dienstmodellen die Rede ist, von »Servicemodellen«.
Die Eigenschaften, Servicemodelle und Bereitstellungsmodelle, die in dieser Definition aufgeführt werden, beschreiben voneinander getrennt zu betrachtende Dimensionen des Cloud Computing, die in jeder Kombination auftreten können. Die Risiken, die in diesem Buch beschrieben werden, sind ein direktes Resultat von einem oder mehreren Elementen aus diesen Dimensionen.
2.1 Wesentliche Eigenschaften des Cloud Computing
Die fünf wesentlichen Eigenschaften aus der NIST-Definition sind:
Selbstbedienung auf Abruf (on-demand self-service)
Breiter Netzwerkzugriff (broad network access)
Gleichzeitige Nutzung von Ressourcen durch mehrere Parteien (resource pooling)
Anpassung der bereitgestellten Ressourcen an den aktuellen Bedarf (rapid elasticity)
Messbarkeit des Nutzungsumfangs (measured service)
Diese wollen wir hier kurz näher beschreiben.
Selbstbedienung auf Abruf (on-demand self-service)
Kunden konfigurieren die benötigten Systeme selbst, ohne dass aufseiten des Anbieters menschliche Interaktion notwendig wird. Auf die Services kann sehr leicht und direkt über das Internet zugegriffen werden.
Breiter Netzwerkzugriff (broad network access)
Services werden über ein Netzwerk angeboten. Indem hier Standardprotokolle und -formate zum Einsatz kommen, ist es möglich, diese Services auf unterschiedlichen Plattformen, wie PCs, Laptops, Tablets und Smartphones, zur Verfügung zu stellen.
Gleichzeitige Nutzung von Ressourcen durch mehrere Parteien (resource pooling)
Verschiedene Kunden teilen sich über ein Mietmodell die vom Anbieter zur Verfügung gestellte Infrastruktur. Die Ressourcen werden dynamisch zugewiesen. Dies geschieht abhängig vom Bedarf des Kunden. Für den Kunden ist dabei nicht wichtig, wo die von ihm genutzte Infrastruktur steht, allerdings kann er üblicherweise einige Vorbedingungen stellen, z.B. kann er ein bestimmtes Land oder Rechenzentrum wählen. Computerressourcen, die dafür infrage kommen, sind: Speicherkapazität, Rechenkapazität, Arbeitsspeicher, Netzwerkbandbreite und virtuelle Umgebungen.
Anpassung der bereitgestellten Ressourcen an den aktuellen Bedarf (rapid elasticity)
Services können elastisch, das heißt kurzfristig und oft auch automatisch konfiguriert und freigegeben werden. Dies bietet die Möglichkeit, schnell hoch und herunter zu skalieren. Für den Kunden sieht es so aus, als verfüge er über unbegrenzte Möglichkeiten, Services jederzeit in jeder gewünschten Menge zu erhalten.
Messbarkeit des Nutzungsumfangs (measured service)
Systeme überprüfen und optimieren die Nutzung der zugrunde liegenden Infrastruktur. Gemessen wird hier beispielsweise die Auslastung von Speicherkapazität, Rechenkapazität, Bandbreite und aktiven Benutzerkonten. Das Ergebnis ist sowohl dem Anbieter als auch dem Kunden transparent und ist so eine gute Grundlage für die Rechnungsstellung.
2.2 Servicemodelle
NIST definiert drei Servicemodelle: Infrastructure as a Service (IaaS), Platform as a Service (PaaS) und Software as a Service (SaaS). Obwohl mit einiger Regelmäßigkeit neue *ssS-Varianten entstehen, sind diese drei Grundmodelle ausreichend, um ein gutes Verständnis für das Cloud Computing zu entwickeln. Die Servicemodelle beschreiben in Form eines Schichtmodells vom IaaS über PaaS bis zu SaaS einen immer höheren Grad an Auslagerung einzelner Aspekte der Serviceleistung an den Anbieter. In Abbildung 2–2 wird schematisch dargestellt, welche Ebenen betrachtet werden, um die verschiedenen Modelle zu unterscheiden:
Hardware: die Ausrüstung (Server, Netzwerk, Ressourcen, Speicher)
Virtualisierung: die Software, die es ermöglicht, basierend auf der Hardware, unterschiedliche oder mehrfache Umgebungen laufen zu lassen. Tatsächlich läuft die Software auf einer Umgebung, die keine materielle Entsprechung hat
Plattform: die Laufzeitumgebung in der Software laufen kann (.NET, PHP, Apache usw.)
Anwendung: die Software für den Kunden
Abb. 2–2 Kein Service erworben
Vom Ausgangspunkt in Abbildung 2–2 ist der erste Schritt in der Wachstumsphase der Einsatz von IaaS.
IaaS
Der Kunde bekommt Zugang zu Rechenkapazität, Speicher, Netzwerk und anderen grundlegenden Computerressourcen und baut seine eigene Infrastruktur auf. Der Kunde verwaltet zwar die Cloud-Infrastruktur nicht selbst, kann aber entscheiden, welche Betriebssysteme darauf laufen und welche Speicherkapazitäten und Anwendungen dafür bereitgestellt werden. Der Kunde beeinflusst auch die Konfiguration von Netzwerkkomponenten wie Firewalls. Mit IaaS werden die Hardware und die Virtualisierung in die Cloud verschoben (siehe Abb. 2–3).
Beispiele für IaaS
Amazon und Rackspace liefern Serverkapazität, die je nach Bedarf des Kunden erhöht oder verringert werden kann. Dies ist für Unternehmen eine Möglichkeit, ohne größere Investitionen auf flexible Server- und Speicherkapazitäten zuzugreifen. Eine nutzungsabhängige Vergütung (pay per use) macht es möglich,...