Cloud-Computing (selten auch: Rechnerwolke) umschreibt den Ansatz, abstrahierte IT-Infrastrukturen (z. B. Rechenkapazität, Datenspeicher, Netzwerkkapazitäten oder auch fertige Software) dynamisch an den Bedarf angepasst über ein Netzwerk zur Verfügung zu stellen. Aus Nutzersicht scheint die zur Verfügung gestellte abstrahierte IT-Infrastruktur fern und undurchsichtig, wie in einer „Wolke“ verhüllt, zu geschehen. Angebot und Nutzung dieser Dienstleistungen erfolgen dabei ausschließlich über definierte technische Schnittstellen und Protokolle. Die Spannbreite der im Rahmen von Cloud-Computing angebotenen Dienstleistungen umfasst das komplette Spektrum der Informationstechnik und beinhaltet unter anderem Infrastruktur (z. B. Rechenleistung, Speicherplatz), Plattformen und Software.[1]
Vereinfacht kann das Konzept wie folgt beschrieben werden: Ein Teil der IT-Landschaft (in diesem Zusammenhang etwa Hardware wie Rechenzentrum, Datenspeicher sowie Software) wird auf Nutzerseite nicht mehr selbst betrieben oder örtlich bereitgestellt, sondern bei einem oder mehreren Anbietern als Dienst gemietet, der meist geografisch fern angesiedelt ist. Die Anwendungen und Daten befinden sich dann nicht mehr auf dem lokalen Rechner oder im Firmenrechenzentrum, sondern in der (metaphorischen) Wolke (engl. ‚cloud‘). Das Gestaltungselement eines abstrahierten Wolkenumrisses wird in Netzwerkdiagrammen häufig zur Darstellung eines nicht näher spezifizierten Teils des Internets verwendet.
Der Zugriff auf die entfernten Systeme erfolgt über ein Netzwerk, beispielsweise das des Internets. Es gibt aber im Kontext von Firmen auch sogenannte „Private Clouds“, bei denen die Bereitstellung über ein firmeninternes Intranet erfolgt. Die meisten Anbieter von Cloudlösungen nutzen die Poolingeffekte, die aus der gemeinsamen Nutzung von Ressourcen entstehen, für ihr Geschäftsmodell.
2009 veröffentlichte das National Institute for Standards and Technology (NIST) eine Definition,[2] die auf weitgehende Akzeptanz stieß und verschiedene Definitionsansätze bündelt:
Cloud-Computing enthält die drei verschiedenen Servicemodelle:
Zudem enthält die Definition des National Institute for Standards and Technology (NIST) vier Liefermodelle:
… und listet fünf essenzielle Charakteristika für Cloud-Computing:
Demzufolge geht „Cloud-Computing“ über andere gegenwärtig diskutierte Ansätze („Organic Computing“) (Virtualisierung) hinaus. Unter der Bedingung einer öffentlichen Verfügbarkeit, ähnlich beispielsweise dem öffentlichen Telefonnetz, kann man „Cloud-Computing“ je nach Architektur auch als Summe von SaaS und „Utility Computing“ ansehen.[4]
Da Clouds primär durch den Skalierungsgedanken entstanden sind, finden sich dort auch die stärksten Unterscheidungsmerkmale.
Um sich der Architektur zu nähern, kann man sich einen einfachen Rechner vorstellen. Er hat Prozessorkerne, Arbeitsspeicher, eine Festplatte und Programme. Diese Komponenten finden sich auch in einer Cloud, nur in einer Form, die massive Skalierung ermöglicht.
Demzufolge lesen sich die Kenndaten einer „Cloud-Festplatte“ dann auch anders als die einer klassischen Festplatte im Computer. Amazon spricht für seine Persistenzschicht (S3) von: „Die Anzahl der speicherbaren Objekte ist unbegrenzt.“[5] Google hat seine Persistenzschicht (GFS) auf etwa 15.000 einzelne Rechner verteilt (Stand 2009).[6]
Für die anderen Komponenten wie Programme oder Prozessorkerne gelten ähnliche große Maße. Warum dies so ist, erklärt sich allein durch die Zahlen. Im Jahr 2008 gibt Google bekannt, 10 Milliarden Dokumente, die über 1000 physische Computer verteilt sind, innerhalb von 68 Sekunden sortieren zu können.
“We are excited to announce we were able to sort 1TB (stored on the Google File System as 10 billion 100-byte records in uncompressed text files) on 1,000 computers in 68 seconds.”
„Mit Begeisterung geben wir bekannt: wir konnten 1TB (gespeichert im Google File System in 10 Milliarden Dokumenten mit je 100 Bytes Datensatzgröße in unkomprimierten Textdateien), verteilt auf 1000 Computer, innerhalb von 68 Sekunden sortieren.“[7]
Es gibt unterschiedliche Arten von Cloud-Computing, eine mögliche Gliederung ist der sogenannte technische Cloud-Stack, mit drei Schichten, in der obere Schichten auf den unteren Schichten aufbauen können, es aber nicht müssen:[8]
Jede Schicht stellt hier einen Grad an Abstraktion dar. Auf diese Art können auch die unterschiedlichen Typen von „Clouds“ klassifiziert werden.
Dieses Modell wird als Infrastructure-as-a-Service (IaaS) bezeichnet.
Die Infrastruktur oder „Cloud Foundation“ stellt die unterste Schicht im „Cloud-Computing“ dar. Der Benutzer greift hier auf bestehende Dienste innerhalb des Systems zu, verwaltet seine Recheninstanzen (siehe virtueller Server) allerdings weitestgehend selbst. Dienste innerhalb des IaaS-Konzeptes sind typischerweise verteilte Persistenz (siehe Amazons Simple Storage Service) und ein Nachrichtendienst (siehe Message Oriented Middleware). Sind die Cloud-Dienste selbst noch hochskalierend ausgelegt, trifft dies nicht zwingend auf die Programme zu, die auf den vom Benutzer eingebrachte Recheninstanzen laufen.
Der Vorteil gegenüber und die Unterscheidung zu traditionellen Datencentern ist die Skalierbarkeit: Die Recheninstanzen können je nach Anforderungen beliebig um weitere Instanzen erweitert oder verkleinert werden. Der Benutzer hat dabei vollen Zugriff auf die Instanzen mit der Eigenschaft, dass er für die Instanzen ab der Betriebssystemebene selbst verantwortlich ist.
Beispiele hierfür sind GoGrid und Linode.
→ siehe Hauptartikel: Platform as a Service (PaaS)
Hier steht die Anwendung im Vordergrund. Der Entwickler erstellt die Anwendung und lädt diese in die Cloud. Diese kümmert sich dann selbst um die Aufteilung auf die eigentlichen Verarbeitungseinheiten. Im Unterschied zu IaaS hat der Benutzer hier keinen direkten Zugriff auf die Recheninstanzen. Er betreibt auch keine virtuellen Server. Im PaaS-Szenario bringt er ausschließlich seine Programmlogik in die Cloud ein, die ihm gegenüber als Programmierschnittstelle auftritt.
Die Infrastruktur der Cloud selbst kümmert sich hierbei um die erforderliche Instanziierung der Verarbeitungseinheiten und das Verteilen der zu verarbeitenden Daten.
Als Beispiel können hier die Produkte Windows Azure von Microsoft, „App Engine“ von Google oder „force.com“ von Salesforce.com der Plattform-Schicht zugeordnet werden.
Dadurch, dass der Benutzer hier nur seine Applikationslogik liefert, kann die Cloud die Anzahl der tatsächlich arbeitenden Instanzen nach Belieben erhöhen oder reduzieren. Die Abstraktion von jeglicher technischen Komponente ist hierbei explizit gewünscht, da der Benutzer der Cloud in erster Linie Daten verarbeiten, nicht aber das System administrieren möchte.
→ siehe Hauptartikel: Software as a Service (SaaS)
Die Anwendungssicht stellt die abstrakteste Sicht auf Cloud-Dienste dar. Hierbei bringt der Benutzer seine Applikation weder in die Cloud ein, noch muss er sich um Skalierbarkeit oder Datenhaltung kümmern. Er nutzt eine bestehende Applikation, die ihm die Cloud nach außen hin anbietet. Dieser Anwendungsfall inkludiert die beiden darunterliegenden Ebenen, da die Cloud-Funktionalitäten wie hochskalierender, verteilter Speicher, ausfallsichere Infrastruktur und üblicherweise ein hochskalierendes Queuingsystem zwar die Grundlage der benutzten Anwendung sind, der Nutzer des SaaS-Dienstes damit allerdings nicht in Kontakt kommt.
Eine „Cloud-Anwendung“ im SaaS-Modell berücksichtigt typischerweise die folgenden Aspekte:
Bekannte Beispiele für eine Cloud-Anwendung sind Google Drive, Microsoft Skydrive Office Web Apps und Exchange Online, Sharepoint Online, Livemeeting, Office Communications Online.
Man kann neben dem technischen Cloudstack auch zwischen verschiedenen Organisationsformen von „Clouds“ unterscheiden, die je nach Anwendungsfall ihre Berechtigung haben:
Ebenso wie die Virtualisierung ermöglicht „Cloud-Computing“ Kostenvorteile[10] gegenüber konventionellen Systemen. Dies ist der Fall, wenn sich beispielsweise die Bezahlung nach der Dauer der Nutzung des Dienstes richtet und der Dienst nur gelegentlich genutzt wird. Lokale Ressourcen (Software und Hardware) lassen sich einsparen. Zunehmend wird diese Ressourceneffizienz auch in Verbindung mit der nachhaltigen Nutzung von IKT-Systemen gebracht, wobei entsprechende Überlegungen keineswegs neu sind. Ein häufig zitiertes Beispiel ist die Realisierung von E-Mail-Systemen auf Basis von „Cloud-Computing“, denn hier nimmt die Komplexität der Anwendung durch Maßnahmen zur Unterbindung von Kompromittierungsversuchen kontinuierlich zu, so dass kleinere Unternehmen von einer Auslagerung profitieren können. Vorteile ergeben sich auch im Fall von stark schwankender Nachfrage: Normalerweise müsste man genug Kapazität vorhalten, um Lastspitzen bedienen zu können. Bei Nutzung von „Cloud-Computing“ lässt sich die genutzte Kapazität variabel an den tatsächlichen Bedarf kurzfristig anpassen. Das gilt besonders für volatile Geschäftsfelder, die externen Anforderungen umgehend entsprechen müssen, wie beispielsweise die Logistik. Ständig schwankende und vom Markt abhängige Warenvolumina erfordern zeitnahes Reagieren und die durchgehende Verfügbarkeit der zur Ausführung benötigten Kapazitäten. Dank der Flexibilität und der variablen Skalierbarkeit der Cloud wäre die Bereitstellung benötigter Ressourcen für logistische Software (wie zum Beispiel WMS, TMS, ERP, etc.) wesentlich günstiger und einfacher zu bewerkstelligen, als es momentan mit statischen Systemen der Fall ist. Laut einer aktuellen Studie des Fraunhofer-Instituts für Materialfluss und Logistik IML ist eine Kostenreduktion im Bereich Warehouse Management um bis zu 56 Prozent im ersten Jahr und 48 Prozent in den Folgejahren machbar.[11] Konzepte zur praktischen Umsetzung existieren und befinden sich bereits in der Anwendung.[12]
Das Grundproblem, nämlich die Absicherung des Zugriffs auf die Anwendungsdaten beim Transfer zwischen lokalem Client und entferntem Server, konnte bis heute nicht befriedigend gelöst werden. Es existieren allerdings zahlreiche Entwicklungen im Bereich der Datensicherheit, wie beispielsweise SSL/TLS-Verschlüsselung. Eine Übersicht über die Probleme der Datensicherheit und des Datenschutzes im Rahmen des Public Cloud-Computing mit dem Stand der Technik vom Januar 2011 geben Jansen und Grance vom NIST.[13]
Kritiker befürchten, dass die Kontrolle der privaten Daten von Benutzern durch die marktdominanten Anbieter, wie etwa Google, hierdurch überhandnehme.[14] Allerdings gibt es mittlerweile Algorithmen, die Berechnungen so auf einzelne Instanzen aufteilen können, dass es selbst allen Instanzen gemeinsam nicht möglich ist, Rückschlüsse auf die verarbeiteten Daten zu ziehen. Dies ist lediglich der ausführenden Instanz möglich, da nur sie den genauen Algorithmus kennt, mit dem die Teilergebnisse wieder zusammengeführt werden. Der kommerziellen Nutzung solcher Verfahren stehen heute allerdings noch Performanceprobleme im Weg. Ein weiterer Ansatz, der sich zur Behebung dieses Problems eignet, ist die Anwendung einer voll homomorphen Verschlüsselung. Dabei wird innerhalb der Cloud ausschließlich auf verschlüsselten Daten gerechnet, die im privaten Bereich dann wieder entschlüsselt werden können. Die Herausforderung liegt hier jedoch momentan darin, eine solche Verschlüsselung zu finden, die noch dazu performant genug ist für einen massiven, großflächigen Einsatz, wie er in der Cloud nötig wäre. Eine weitere Herausforderung in der Cloud ist die Abhängigkeit (Lock-in-Effekt) vom jeweiligen Cloud-Anbieter, da die angebotenen Schnittstellen meist sehr herstellerspezifisch sind. Privatanwender stehen zudem vor der Frage, was mit ihren Daten in der Cloud passiert, wenn der Anbieter eines Cloud-Dienstes Insolvenz anmeldet.[15]
Cloud-Computing ist in einigen Elementen mit dem klassischen Online Outsourcing verwandt. Es grenzt sich jedoch in wesentlichen Punkten von diesem ab. In der Regel wird im Bereich der Infrastructure as a Service-Anbieter die IT-Infrastruktur von mehreren Kunden genutzt, sodass Kapazitätsspitzen leichter verteilt werden können und Reserven gemeinsam genutzt werden. So können Cloud-Dienstleistungen kurzfristig angepasst werden und unterscheiden sich dadurch vom klassischen Modell, in dem Kunden Rechnerinfrastruktur „exklusiv“ nutzen. Weiterhin erfolgt die Steuerung und Administration der Dienste durch den Nutzer via Webinterface selbst.[1]
Für die Industrie ist Cloud Computing aus Sicherheits-Gründen noch wenig verbreitet, es gibt jedoch erste Anwendungen (siehe SPS-Cloud).
Die Cloud ist eines der ältesten Sinnbilder der Informationstechnik und steht als solches für Rechnernetze, deren Inneres unbedeutend oder unbekannt ist.[16]
Der Begriff „Cloud-Computing“ wurde maßgeblich durch einige schnell wachsende Internetfirmen wie Amazon, Google und Yahoo geprägt. Diese Firmen standen auf Grund des schnellen Wachstums ihrer Nutzerbasis vor dem Problem, ständig wachsende Systeme vorhalten zu müssen, die auch zu Spitzenlastzeiten (für Amazon wäre dies z. B. das Weihnachtsgeschäft) ausreichende Performance bereitstellen.[17]
Für Amazon war diese Spitzenlast im Jahr 2006 um den Faktor 10 höher als die Grundlast im Tagesgeschäft. Um diesem Problem zu begegnen, entschied man sich, die (serviceorientierte) Architektur und die Dienste, die man zum Bewältigen der zum Teil stark schwankenden oder auch sehr hohen Nutzerzahlen entworfen und etabliert hatte, zu einem Produkt zu machen, das man nach außen hin anbietet, d. h. dass dieses Problem in Spitzenlastzeiten auf die Nutzer der Cloud verteilt wird.
Für Amazon war dieser Schritt Mitte der 2000er Jahre eine logische Konsequenz, da man intern zu diesem Zeitpunkt schon auf kleine schnell-bewegliche Teams (fast-moving „two-pizza teams“) umgeschwenkt hatte, die neue Funktionalitäten auf Basis der bestehenden Cloud-Infrastruktur implementierten. Die Skalierungseffekte der Cloud-Dienste wurden damit zur Basis des Produktes „Cloud-Computing“ selbst, das man ab da nicht mehr nur intern, sondern auch extern anbot.
Bei „Grid Computing“ geht es um die gemeinschaftliche Nutzung der gemeinsamen Ressourcen und es gibt keine zentrale Steuerung. Im Fall von „Cloud-Computing“ hat man einen Anbieter der Ressourcen und einen Nutzer. Die Steuerung der Ressourcen ist zentralisiert.
Rechtlich müssen sowohl die Beziehungen zwischen Cloud-Anbietern und ihren Kunden als auch die Rechte betroffener Dritter betrachtet werden.
Nach Urteil des Europäischen Gerichtshofs dürfen nur eingeschränkt Daten in die USA gelangen, wo sich über 90 % der Infrastruktur vom Cloud-Computing befindet.[18] Nationale Datenschutzagenturen stützen sich auf Arbeiten der ENISA, wenn sie darlegen, warum Cloud Computing trotz Safe Harbor beispielsweise für Schulen unzulässig ist.[19] Auch die Datenschutzbeauftragten der Schweiz warnen insbesondere vor Verletzung des Datenschutzrechts bei Verwendung von Rechenzentren im Ausland.[20]
Wenn personenbezogene Daten Dritter in die Cloud gegeben werden, müssen sich beispielsweise deutsche Auftraggeber vorab und anschließend regelmäßig nachvollziehbar vor Ort in der Cloud davon überzeugen, dass die Vorgaben des Bundesdatenschutzgesetzes eingehalten werden.[21] Weil namhafte Cloud-Anbieter Datenbestände ihrer Kunden weitergeben, drohen den Kunden Bußgelder.[22] Cloud-Betreiber mit Sitz in den USA unterliegen dem US-Recht und demnach dem Patriot Act. Unternehmen mit Sitz in den USA sind deshalb gezwungen, auch Daten an amerikanische Behörden auszuliefern, die sich auf Servern in fremdem Hoheitsbereich befinden. Dies ist beispielsweise von Amazon, Microsoft und Google bestätigt worden.[23]
Bei den Cloud-spezifischen Leistungen werden in der Regel Web- oder Filespace, Datenbanken, Applikationen und Hostingservices zur Verfügung gestellt. Beim Webhosting (ggf. auch für das Storage-Management), bei dem Daten auf den Host des Hosting-Providers gespeichert werden, wird vertreten, dass es sich hierbei nicht um einen Mietvertrag nach §§ 535 ff. BGB handelt, sondern um einen Werkvertrag nach §§ 631 ff. BGB. Der Hosting-Provider schuldet als Leistung lediglich, dass die Website des Kunden bei ihm irgendwo gespeichert wird und dass sie im Internet aufgerufen werden kann. Eigentliche Leistung ist daher die Aufbewahrung der Information und ihr Zurverfügunghalten für den Abruf im Internet. Für den Kunden ist vor allem wichtig, dass die Inhalte dauernd abrufbar sind. Wie der Hosting-Provider oder Cloudanbieter diese Leistung erbringt, ist dem Kunden gleichgültig. Damit wird nicht primär Speicherplatz überlassen, sondern primär ein Erfolg, nämlich die Abrufbarkeit im Internet geschuldet. Das Einspeichern der Website ist nur technische Voraussetzung des geschuldeten Erfolgs.
Bei der zur Verfügungstellung von Applikationen wird in der Regel ein Software-as-a-Service (SaaS) oder „Application Service Providing“-Modell (ASP) gewählt. Hierbei wird vom ASP-Anbieter einem Kunden die temporäre Nutzung von Applikationen zur Verfügung gestellt. Der BGH hat entschieden,[24] dass auf Application-Service-Providing-Verträge grundsätzlich die mietrechtlichen Vorschriften Anwendung finden. Auch wenn diese Entscheidung sicherlich bedeutsam gewesen ist, bedarf es doch einer erheblichen vertraglichen Gestaltung, insbesondere bei der Gestaltung der Service-Levels, da hier die mietrechtlichen Regelungen des §§ 535 ff. BGB allein nicht ausreichend sein dürften.
Die Einordnung von Hosting-Verträgen für Datenbanken in die vertragstypologische Einordnung des BGB richtet sich nach der vertraglich geschuldeten Leistung. Hierbei ist grundsätzlich zu unterscheiden, ob wie weiter oben beschrieben Filespace zur Speicherung der Datenbank vom Provider zur Verfügung gestellt wird (sogenanntes Datenbank-Hosting) oder eine Applikation wie eine Oracle-Datenbank (zur zeitweiligen Nutzung) zur Verfügung gestellt wird. Schuldet der Cloud-IT-Anbieter über die Hosting-Leistung hinaus Leistungen, wie z. B. bei der Gestaltung der Datenbanken, sind ggf. die Regelungen von § 87 a–e UrhG zu berücksichtigen.
siehe Liste von Cloud-Umsetzungen
Dieser Artikel basiert auf dem Artikel Cloud_Computing aus der freien Enzyklopädie Wikipedia und ist unter der Lizenz Creative Commons Attribution/Share Alike verfügbar. Zusätzliche Bedingungen können anwendbar sein. In der Wikipedia ist eine Liste der Autoren verfügbar. |