Die IT war schon immer geprägt von Trends, neuen Technologien, Wechselspielen zwischen dezentralen und zentralen räumlichen Kräften sowie ökonomischen Rahmenbedingungen. Am Anfang prägten zentrale Großrechner das Bild in Unternehmen, an denen lediglich punktuell stattfindende Interaktionen möglich waren. Nach und nach wurden in den 80er Jahren dezentrale Einzelplatz-Anwender-Computer (Clients) mit zentralen Servern kombiniert. Durch die Einführung des Internet in den 90er wurden erste Zentralisierungen angestrebt und eine räumliche Trennung der Rechenleistung vom Anwender ermöglicht. Seit der Jahrtausendwende befindet sich die IT in einer Transformation zu einer serviceorientierten IT-Welt, in der klassische Desktop-PCs an Bedeutung verlieren und Anforderungen nach Flexibilität und Integration immer stärker gefordert werden (Barot et al. 2009, S.20-21):
Cloud-Computing versucht diese Entwicklung aufzunehmen und mit bestehenden Technologien umzusetzen: Im Folgenden werden die historischen Entwicklungen dargestellt, um Technologien aufzuzeigen, die für Cloud-Computing elementare Bestandteile darstellen und Impulse gegeben haben: Dazu zählen Grid-Computing, Konsolidierungs- und Virtualisierungskonzepte sowie serviceorientierte-Architekturen (SOA) (Barot et al. 2009, S.69- 71):
1960 wurden erstmals komplexe Probleme nicht mehr mit einem großen zentralen Supercomputer gelöst, sondern mit einem Verbund vieler einzelner unabhängiger Computer: Das sogenannte verteilte System aus einzelnen Teilsystemen (Knoten) entstand und zeichnete sich vor allem durch seine Skalierbarkeit aus: Erstmals konnten Ressourcen unabhängig ihrer geografischen Verteilung hinzugefügt werden, ohne dass die Leistung des gesamten Systems beeinträchtigt worden wäre. Cluster- und Grid-Computing sind verschiedene Arten des verteilten Systems: Im Gegensatz zu Cluster-Computing, bei dem zahlreiche homogene Knoten über ein Hochgeschwindigkeitsnetzwerk verbunden wurden, bietet das Grid-Computing eine starke Heterogenität und damit Flexibilität: Zum einen unterscheiden sich Knoten in Hardware und Software voneinander. Zum Anderen ist der Zeitpunkt, in denen Knoten sich aufbauen und trennen, beliebig (Haselmann et al. 2012, S.13-16).
Das größtenteils im Forschungsumfeld verbreitete Grid-Computing zur freien, effizienten und gemeinsamen Nutzung von Rechenkapazität lieferte eine fundamentale Grundlage für das heutige Cloud-Computing: Standardisierte, hochskalierbare Systemarchitekturen, die als IT-Services über das Internet angeboten werden können, sowie erste Ansätze von nutzungsabhängigen Bezahlmodellen und anwenderbezogenen Steuerungs- und Managementmöglichkeiten wurden von Grids an Clouds vererbt. Beide vereinen Gemeinsamkeiten, aber auch Unterschiede, folgen jedoch dem Konzept IT-as-a-Service (ITaaS), wobei Cloud-Computing klar zwischen Cloud-Anbieter und -Nutzer unterscheidet und die ökonomische Nutzung (nutzungsabhängige Abrechnung) eher in den Mittelpunkt stellt (Barot et al. 2009, S.69-71; Metzger, Reitz & Villar, 2011, S.24):
ITaaS erzeugt den Grundgedanken, physische Ressourcen gemeinsam zu nutzen und über ein Netzwerk darauf zuzugreifen: Anders als Cluster- und Grid-Computing verwendet Cloud-Computing allerdings virtuelle Ressourcen und ermöglicht deren unverzügliche Anpassbarkeit an den Bedarf im Rahmen der Selbstbedienung (Haselmann et al. 2012, S.25-26).
Die technologische Entwicklung und das mit den verteilten Systemen verbundene Konzept, nachdem der geografische Standort von Knoten in IT-Systemen keine Rolle mehr spielte, führte bei den Unternehmen zu Outsourcing-Gedanken: Teile der Wertschöpfung, die nicht mit der eigentlichen unternehmerischen Kernkompetenz in Verbindung stehen, sollen an spezialisierte Drittanbieter ausgelagert werden, um Skaleneffekte zu erzeugen: Es standen bei den Unternehmen häufig hohe Kapitalinvestitionen und Betriebsaufwendungen geringer Serverauslastung (5-15 Prozent) gegenüber und verursachten eine Verschwendung von Ressourcen. Durch das Zusammenführen, Automatisieren und Standardisieren von Systemen sollten IT-Infrastrukturen konsolidiert (Komplexität reduziert) und dabei das Qualitätsniveau und Skalenniveau bei sinkenden Betriebskosten aufgewertet werden (Barot et al. 2009, S.69-71; Haselmann et al. 2012, S.16):
Application-Service-Provider (ASP) versuchten erstmals, Unternehmen einzelne von Outsourcing betroffene Anwendungen bei Bedarf (On-Demand) zur Verfügung zu stellen: Die Anwendungen konnten über exklusive Zugänge auf dedizierten Systemen in Rechenzentren von Drittanbietern abgerufen werden. Im Vergleich zum Cloud-Computing und seiner Multi-Tenancy-Fähigkeit (Mandantenfähigkeit) wurde allerdings für jeden Kunden eine eigene Server-Instanz aufgebaut. So kam es nur zu einer geringen gemeinsamen Nutzung physischer Ressourcen, wodurch die angestrebten Skaleneffekte und Kosteneinsparungen nicht erreicht werden konnten. Das gesamte Konzept schlug fehl, lieferte aber weitere Ideen für Cloud-Computing (Föckeler, 2009, S.31; Haselmann et al. 2012, S.16-17):
Einen Schritt weiter ermöglichte die Kombination von Konsolidierungs- und Virtualisierungskonzepten dem Cloud-Computing die Bereitstellung von flexiblen Services und das Erreichen einer optimierten und kostengünstigen IT-Infrastruktur (Barot et al. 2009, S.70- 71):
Virtualisierungskonzepte bilden die Grundlage der meisten Cloud-Architekturen: Im Vergleich zu einem On-Premise-Server wird mit einer virtualisierten Infrastruktur eine Abstraktion von der tatsächlich vorhandenen Hardware vorgenommen: Eine Virtualisierungsschicht wird mit Hilfe einer Virtualisierungstechnologie zwischen die Software- und Hardware-Umgebung eingebracht, sodass es zu einer Abbildung von logischer/virtueller Ressourcen auf physischen Ressourcen kommt (siehe Anhang C): Durch die Virtualisierung der Ressourcen ist es möglich, eine Vielzahl von heterogenen physischen Ressourcen zu einer gemeinsamen Menge homogener virtueller Ressourcen zusammenzufassen. Die Auslastung des Systems wird erhöht und der Anwender erhält dadurch die Illusion, auf unendlich viele Ressourcen zugreifen zu können (Haselmann et al. 2012, S.17-19):
Cloud-Computing greift dieses Konzept auf, reduziert physische Server und ersetzt diese durch virtuelle Maschinen. Ressourcen werden dadurch nicht mehr nur von einer Anwendung dediziert, sondern von mehreren gemeinsam genutzt: Neben einer besseren Systemauslastung (70-90 Prozent) können nun Ressourcen in Form von IT-Services flexibel mehreren Anwendern angeboten werden. Viele Unternehmen besitzen allerdings unterschiedliche verstreute IT-Infrastrukturen, die einen effizienten Betrieb von IT-Services behinderten: Zentralisierungen der IT mussten angestrebt werden, um die gewonnenen Qualitätsverbesserungen und Skaleneffekte sicher zu stellen (Barot et al. 2009, S.71-72; Braun, Kunze, Nimis & Tai, 2011, S.9-18):
Serviceorientierte-Architekturen (SOA) wurden von Unternehmen vor einigen Jahren eingeführt, um ähnliche Probleme der IT-Heterogenität und Dezentralisierung zu lösen: Dabei bildet SOA eine fundamentale Voraussetzung für Cloud-Computing. Es sind zwei einander ergänzende Konzepte: Unternehmen können mit SOA verschiedene Applikationen in einzelne Services zerlegen und flexibel über standardisierte Schnittstellen verbinden, orchestrieren und kombinieren. Über Webservices werden zwischen den einzelnen Services Informationen ausgetauscht. Interoperabilität und Integration der Services sind gewährleistet. Auf Basis dieser Grundlage können verteilte, lose gekoppelte IT-Dienste von Clouds genutzt werden: Gerade bei der Kombination von verschiedenen technischen Bereitstellungsmodellen der Clouds ist diese Architektur unerlässlich (Barot et al. 2009, S.72-73; Braun et al. 2011, S.19-23; Föckeler, 2009, S.32).
Cloud-Computing vereint viele angesprochene Technologien und Konzepte, um Ressourcen verschiedenster Art als elektronisch verfügbare Dienste dynamisch über das Internet oder Intranet zur Verfügung zu stellen. Eine standardisierte, einheitliche Definition gibt es für Cloud-Computing nicht. Allerdings kann auf die viel zitierte Definition des Nationalen- Institut-für-Standards-und-Technologie (NIST) verwiesen werden, die fünf wesentliche Merkmale, drei verschiedene technische Bereitstellungsmodelle und vier unterschiedliche organisatorische Servicemodelle festlegt (Braun et al. 2011, S.4-5; Grance & Mell, 2011, S.2-3):
Entsprechend der Definition werden mit Cloud-Computing nach Bedarf gemeinsam nutzbare und flexibel skalierbare IT-Leistungen durch nicht fest zugeordnete IT-Ressourcen über ein Netzwerk zur Verfügung gestellt. Die bereitgestellten Ressourcen sollen ständig verfügbar und ohne menschliche Interaktion mit dem Anbieter sich jederzeit, unverzüglich und mittels Selbstbedienung an den tatsächlichen Bedarf des Cloud-Nutzers anpassen (Dehmel, Kriesel, Neugebauer & Weber, 2010, S.15; Haselmann et al. 2012, S.20).
Eine weitere Definition spricht im Gegensatz zu der NIST-Definition von einer expliziten Virtualisierung der Ressourcen und bezeichnet die Clouds als einen großen Vorrat einfach zu benutzender und leicht zugreifbarer virtualisierter Ressourcen. Hardware, Entwicklungsumgebungen oder Dienste können dabei...