Die Entwicklung des Cloud Computing
- 12 Minuten
Das Cloud-Computing-Konzept erschien in den frühen 1950er Jahren, als mehrere Wissenschaftler, darunter Herb Grosch, John McCarthy und Douglas Parkhill[1], das Computing als Hilfsprogramm ähnlich elektrischer Energie vorstellte. In den nächsten Jahrzehnten legten mehrere aufstrebende Technologien den Grundstein für das Cloud Computing (Abbildung 1.3). In jüngster Zeit führten das rasante Wachstum des World Wide Web und das Aufkommen großer Internet-Giganten wie Microsoft, Google und Amazon schließlich zur Schaffung eines wirtschaftlichen und geschäftlichen Umfelds, das das Cloud Computing-Modell florieren ließ.
Abbildung 1.3: Entwicklung von Cloud Computing.
Entwicklung des Computing
Seit den 60er Jahren waren einige der frühesten Formen von Computern, die von Unternehmen verwendet wurden, Mainframecomputer. Mehrere Benutzer konnten sich über einfache serielle Verbindungen mithilfe von Terminals mit Mainframecomputern verbinden. Der Mainframecomputer war für die gesamte Logik, Speicherung und Verarbeitung der Daten verantwortlich, während die mit ihm verbundenen Terminals über wenig oder gar keine Rechenleistung verfügten. Diese Systeme waren mehr als 30 Jahre lang weit verbreitet und existieren zum Teil bis heute.
Mit der Entstehung des Personal Computing führten billigere, kleinere, leistungsfähigere Prozessoren und Speicher zu einem Schwenk in die entgegengesetzte Richtung, bei der die Benutzer ihre eigene Software ausführten und die Daten lokal speicherten. Diese Situation führte wiederum zu Problemen durch die ineffektive Datenfreigabe und zu Regeln zur Aufrechterhaltung der Ordnung in der IT-Umgebung eines Unternehmens.
Allmählich entstanden durch die Entwicklung von Hochgeschwindigkeits-Netzwerktechnologien lokale Netzwerke (LANs), die Computern ermöglichten, sich miteinander zu verbinden und zu kommunizieren. Die Anbieter entwickelten Systeme, die die Vorteile von PCs und Mainframecomputern vereinen konnten, was zu Client-Server-Anwendungen führte, die sich über LANs durchsetzen konnten. Clients würden in der Regel Clientsoftware ausführen (und einige Daten verarbeiten) oder ein Terminal (für ältere Anwendungen) verwenden, das mit einem Server verbunden ist. Der Server stellte im Client-Server-Modell die Anwendungs-, Speicher- und Datenlogik zur Verfügung.
In den 90er Jahren begann schließlich das globale Informationszeitalter, in dem sich das Internet schnell durchsetzte. Die Netzwerkbandbreite verbesserte sich erheblich, vom normalen Einwahlzugang bis hin zu dedizierten Glasfaserverbindungen heute. Darüber hinaus entwickelte sich eine kostengünstigere und leistungsfähigere Hardware. Außerdem erforderte die Entwicklung des World Wide Web und dynamischer Websites mehrstufige Architekturen.
Mehrschichtige Architekturen ermöglichten die Modularisierung der Software durch die Trennung der Präsentations-, Logik- und Speicherschichten der Anwendung als einzelne Entitäten. Mit dieser Modularisierung und Entkopplung dauerte es nicht lange, bis einzelne Softwareentitäten auf getrennten physischen Servern ausgeführt wurden (typischerweise aufgrund von Unterschieden bei den Hard- und Softwareanforderungen). Dies führte zu einer Zunahme einzelner Server in Unternehmen, aber auch zu einer schlechten durchschnittlichen Auslastung der Serverhardware. Im Jahr 2009 schätzte die International Data Corporation (IDC), dass der durchschnittliche x86-Server eine Auslastungsrate von ca. 5 bis 10%[2] hatte.
Die Technologie der virtuellen Computer reifte in den 2000er Jahren so weit, dass sie als kommerzielle Software verfügbar wurde. Die Virtualisierung ermöglicht die Kapselung eines gesamten Servers als Image, das problemlos auf Hardware ausgeführt werden kann und es mehreren virtuellen Servern ermöglicht, gleichzeitig auf einem einzelnen physischen Server ausgeführt zu werden und Hardwareressourcen gemeinsam zu nutzen. Die Virtualisierung ermöglicht so die Konsolidierung von Servern, wodurch die Systemauslastung entsprechend verbessert wird.
Gleichzeitig gewann das Grid Computing in der wissenschaftlichen Gemeinschaft an Bedeutung, um große Probleme auf verteilte Weise zu lösen. Beim Grid Computing arbeiten Computerressourcen aus mehreren administrativen Domänen im Verbund für ein gemeinsames Ziel. Das Grid Computing brachte viele Tools zur Ressourcenverwaltung hervor (z. B. Planer und Lastenausgleichsmodule), um große Computingressourcen zu verwalten.
Mit der Entwicklung der verschiedenen Computingtechnologien entwickelte sich auch die Wirtschaftlichkeit des Computing. Schon in den Anfängen des auf Mainframecomputern basierenden Computing boten Unternehmen wie IBM an, Computer und Software für verschiedene Unternehmen wie Banken und Fluggesellschaften zu hosten und zu betreiben. Im Internetzeitalter wurde auch das Webhosting durch Drittanbieter sehr gefragt. Mit der Virtualisierung erreichen Anbieter jedoch eine beispiellose Flexibilität bei der Unterbringung mehrerer Clients auf einem einzelnen Server, indem sie sich Hardware und Ressourcen teilen.
Die Entwicklung dieser Technologien in Kombination mit dem Wirtschaftsmodell des Utility Computing hat sich schließlich zum Cloud Computing entwickelt.
Wichtige Technologien
Das Cloud Computing verfügt über verschiedene grundlegende Technologien (Abbildung 1.4), die Vernetzung, Virtualisierung und Ressourcenverwaltung, Utility Computing, Programmiermodelle, paralleles und verteiltes Computing sowie Speichertechnologien umfassen.
Abbildung 1.4: Die aktivierungsfähigen Technologien in Cloud Computing.
Das Aufkommen von Hochgeschwindigkeits- und allgegenwärtigen Netzwerktechnologien hat wesentlich dazu beigetragen, dass Cloud Computing ein praktikables Paradigma ist. Moderne Netzwerke ermöglichen es Computern, schnell und zuverlässig zu kommunizieren. Dies ist für die Nutzung der Dienste eines Cloudanbieters von entscheidender Bedeutung. Dadurch wurde die Benutzererfahrung mit Software, die in einem Remoterechenzentrum ausgeführt wird, mit der Erfahrung von Software, die auf einem Personalcomputer ausgeführt wird, vergleichbar. Webmail ist ein beliebtes Beispiel, ebenso wie Software für die Produktivität im Büro. Darüber hinaus ist die Virtualisierung der Schlüssel zur Realisierung des Cloud Computing. Die Virtualisierung ermöglicht es, die Komplexität der Cloud zu bewältigen, indem sie ihre Ressourcen abstrahiert und für die Benutzer über mehrere virtuelle Computer verteilt. Jeder virtuelle Computer kann sein eigenes Betriebssystem und die zugehörigen Anwendungsprogramme ausführen.
Technologien wie Großspeichersysteme, verteilte Dateisysteme und neuartige Datenbankarchitekturen sind entscheidend für die Verwaltung und Speicherung von Daten in der Cloud. Das Utility Computing bietet zahlreiche Gebührenstrukturen für die Vermietung von Computeressourcen. Beispiele sind die Abrechnung pro Ressource und Stunde, Abrechnung pro garantiertem Durchsatz und die Abrechnung für die pro Monat gespeicherten Daten usw.
Paralleles und verteiltes Computing ermöglichen es verteilten Entitäten, die sich auf Computern in Netzwerken befinden, zu kommunizieren und ihre Aktionen zu koordinieren, um bestimmte Probleme zu lösen, die als parallele Programme dargestellt werden. Das Schreiben paralleler Programme für verteilte Cluster ist von Natur aus schwierig. Um eine hohe Effizienz und Flexibilität der Programmierung in der Cloud zu erreichen, ist ein Programmiermodell erforderlich.
Programmiermodelle für Clouds bieten den Benutzern die Flexibilität, parallele Programme als sequenzielle Berechnungseinheiten auszudrücken (z. B. Funktionen wie in MapReduce und Vertices wie in GraphLab). Die Laufzeitsysteme derartiger Programmiermodelle parallelisieren, verteilen und planen in der Regel Berechnungseinheiten, verwalten die Kommunikation zwischen den Einheiten und bieten eine entsprechende Fehlertoleranz.
Referenzen
Simson L. Garfinkel (1999). Architekten der Informationsgesellschaft: Thirty-Five Jahre des Labors für Informatik am MIT. MIT Press.
Michelle Bailey (2009). Die Ökonomie der Virtualisierung: Sich auf ein Application-Based Kostenmodell zu bewegen. IDC Whitepaper, gesponsert von VMware.
Überprüfen Sie Ihr Wissen
Feedback
War diese Seite hilfreich?
No
Benötigen Sie Hilfe zu diesem Thema?
Möchten Sie versuchen, Ask Learn zu verwenden, um Sie durch dieses Thema zu klären oder zu leiten?