Die Entwicklung des Cloud Computing
- 9 Minuten
Wir betrachten nun die Entwicklung des Cloud Computing.
Ereignisse und Innovationen
Das Cloud Computing-Konzept wurde Anfang der 1950er Jahre entwickelt. Damals stellten sich mehrere Wissenschaftler, darunter Herb Grosch, John McCarthy und Douglas Parkhill das Computing ähnlich wie die Versorgung mit elektrischer Energie vor.1, 2 Im Laufe der nächsten Jahrzehnte legten verschiedene aufkommende Technologien den Grundstein für das Cloud Computing. In jüngster Zeit führten das rasante Wachstum des World Wide Web und das Aufkommen großer Internet-Giganten wie Google und Amazon schließlich zur Schaffung eines wirtschaftlichen und geschäftlichen Umfelds, das das Cloud Computing-Modell florieren ließ.
Abbildung 5: Entwicklung des Cloud Computing
Entwicklung des Cloud 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, wenn überhaupt, nur über wenig 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. So entwickelten die Anbieter 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 verfügte im Client-Server-Modell über die Anwendungs-, Speicher- und Datenlogik.
In den 1990er 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 mehrschichtige Architekturen.
Mehrschichtige Architekturen ermöglichten die Modularisierung der Software durch die Trennung von Anwendungspräsentation, Anwendungslogik und Speicher in einzelne Entitäten. Mit dieser Modularisierung und Entkopplung dauerte es nicht lange, bis diese einzelnen 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 Auslastung von etwa 5 bis 10 % aufwies.3
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 mehreren virtuellen Servern ermöglicht, gleichzeitig 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
Zu den verschiedenen grundlegenden Technologien des Cloud Computing zählen Vernetzung, Virtualisierung und Ressourcenverwaltung, Utility Computing, Programmiermodelle, paralleles und verteiltes Computing sowie Speichertechnologien.
Abbildung 6: Wichtige Technologien für 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 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. Wie oben erwähnt, ermöglicht die Virtualisierung, 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. Die Virtualisierung für Cloud Computing wird in einem späteren Modul behandelt.
Technologien wie Großspeichersysteme, verteilte Dateisysteme und neuartige Datenbankarchitekturen sind entscheidend für die Verwaltung und Speicherung von Daten in der Cloud. Cloudspeichertechnologien werden in einem späteren Modul behandelt.
Das Utility Computing bietet zahlreiche Gebührenstrukturen für die Vermietung von Computingressourcen. Beispiele sind die Abrechnung pro Ressource und Stunde, Abrechnung pro garantiertem Durchsatz und die Abrechnung für die pro Monat gespeicherten Daten.
Paralleles und verteiltes Computing ermöglichen 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 in MapReduce und Scheitelpunkte 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. Cloudprogrammierungsmodelle werden in einem späteren Modul behandelt.
Literatur
- Simson L. Garfinkel (1999). Architects of the Information Society: Thirty-Five Years of the Lab for Computer Science at MIT Press. (Architekten der Informationsgesellschaft: 35 Jahre beim Lab for Computer Science bei MIT Press)
- Douglas J. Parkhill (1966). Die Herausforderung der Computer-Nutzdienstleistung Addison-Wesley Publishing Company, Reading, MA
- Michelle Bailey (2009). Die Ökonomie der Virtualisierung: Wechsel zu einem Application-Based Kostenmodell VMware gesponsertes IDC-Whitepaper