Der Begriff „Cloud Computing“ wurde maßgeblich durch einige schnell wachsende Internetfirmen wie Amazon, Google und Yahoo geprägt. Diese Firmen standen aufgrund 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) eine um Faktoren höhere Nutzerzahl bedienen zu können, als dies für das sonstige Tagesgeschäft nötig war. Für Amazon war diese Differenz im Jahre 2006 um den Faktor 10 höher. Um diesem Problem zu begegnen, entschied man sich, die 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. das dieses Problem in Spitzenlastzeiten auf die Nutzer der Cloud zu verteilen.
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, die sich für die internen Teams als Blackbox darstellten, wurden damit zur Basis des Produktes „Cloud Computing“ selbst, das man ab da nicht mehr nur intern, sondern auch extern anbot.
Es existieren eine Reihe von pragmatischen Definitionsansätzen:
Demzufolge geht „Cloud Computing“ über andere gegenwärtig diskutierte Ansätze (Software-as-a-Service (SaaS), „Organic Computing“) und Konzepte (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.
Da Clouds primär durch den Skalierungsgedanken entstanden sind, finden sich dort auch die stärksten Distinktionsmerkmale.
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. Google hat seine Persistenzschicht (GFS) auf ca ~15.000 einzelnen Rechnern verteilt (Stand 2009).
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 Jahre 2008 gibt Google bekannt, 10 Milliarden Dokumente, die über 1000 physikalische Computer verteilt sind, innerhalb von 68 Sekunden sortieren zu können.
Um Millionen von Nutzern innerhalb von Bruchteilen von Sekunden Ergebnisse zu liefern, den Kauf eines Produktes zu ermöglichen oder via Twitter täglich Gigabytes an Kurznachrichten anzunehmen und an die Abonnenten durchzureichen, müssen die Systeme selbst hochskalierend ausgelegt sein. Klassischen IT-Ansätze wie relationale Datenbanken, zentralisierte Speicher (SANs, NAS) oder Gruppierungen von Rechnern im Verbund („Clustering“) sind nicht fähig, diese Einsatzszenarien abzudecken.
Cloud-Computing-Produkte werden in verschiedenen Darreichungsformen am Markt auch von der Hüls IT angeboten. Unterscheiden tun sie sich in der Gestalt, wie man die Cloud als Nutzer oder auch Anbieter eines Dienstes innerhalb der Cloud wahrnimmt.
Eine gebräuchliche Darstellungsform ist die Pyramidendarstellung, in der es drei Schichten gibt:
Â
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 EC2#Amazon Simple Storage Service (S3)) 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.
Dieses Modell wird als Platform-as-a-Service (PaaS) bezeichnet.
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 virtuelle 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 das 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.
Dieses Modell wird als Software-as-a-Service (SaaS) bezeichnet.
Die Anwendungssicht stellt die abstrakteste Sicht auf Cloud-Dienste dar. Hierbei bringt der Benutzer seine Applikation nicht in die Cloud ein, noch muss er sich um Skalierbarkeit oder Datenhaltung kümmern. Er nutzt hierbei 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 Docs, Microsoft Skydrive Office Web Apps und Exchange Online, Sharepoint Online, Livemeeting, Office Communications Online.
Man kann zwischen verschiedenen Arten von „Clouds“ unterscheiden, die je nach Anwendungsfall ihre Berechtigung haben:
Ebenso wie die Virtualisierung ermöglicht „Cloud Computing“ Kostenvorteile 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 die Belastungsspitzen 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 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.
Kritiker befürchten, dass die Kontrolle der privaten Daten von Benutzern durch die marktdominanten Anbieter, wie etwa Google, hierdurch überhandnehme.
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.
Â
(Quellen: wikipedia, )
Â
Kontaktinfo
Hüls IT GmbH & Co. KG
Römerstädterstr. 4 O
86199 Augsburg
Tel: +49 821 9069234