Hinweis:
Dieser Blogartikel ist älter als 5 Jahre – die genannten Inhalte sind eventuell überholt.
Um das Thema Cloud Computing kommt kaum ein IT-Verantwortlicher in der einen oder anderen Weise herum. Doch viele Projekte und Migrationen verlaufen enttäuschend oder es bleibt unklar, wie sich das Thema überhaupt strukturiert angehen lässt. Unsere Blog-Serie greift Fragen aus dem Alltag von Cloud-Projekten auf und gibt Tipps aus der Praxis unserer System Engineers. In dieser Folge geht es um den Begriff Cloud Computing und wieso er so viel Ärger macht.
Die Urspünge des Begriffs Cloud Computing sind selbst etwas nebulös. 2006 hatte der Vordenker und Publizist Tim O’Reilly zur Web-2.0-Conference nach San Francisco geladen. Unter den Sprecher:innen war auch Jeff Bezos, der zwar als Amazon-Gründer einen Namen als E-Commerce-Experten hatte, aber etwas ungläubige Blicke erntete als er ankündigte, zukünftig Rechenleistung nach Bedarf verkaufen zu wollen.
Die Elastic Compute Cloud (EC2) firmiert heute als Amazon Webservices (AWS). Sie verwendete vielleicht nicht als allererste diesen Begriff, aber verlieh ihm aber den nötigen Startschub. Was dann folgte, war leider oft nebulös, denn viele Anbieter erkannten das große Potenzial darin, Ressourcen und Dienste, die bislang in den heimischen Server-Räumen standen, nun zentralisiert über das Internet zugänglich zu machen.
Das große Problem besteht darin, dass sich die vielen Visionär:innen nicht so recht einig wurden, was für Ressourcen eigentlich gemeint waren. Cloudifizieren lässt sich nämlich Vieles: Rechenleistung an sich hatte man schon vorher verteilt, oft unter dem Begriff Grid-Computing. Meistens bedeutete das aber, dass die Art der Berechnungen vergleichsweise gleichartig waren, wie dies bei aufwändigen Simulationen, der Wettervorhersage oder beim wissenschaftlichen Rechnen vorkommt.
Klassische Betriebsmittel wie CPU und Speicher als virtuelle Ressourcen
Die Idee, Speicherplatz zentral abzulegen war hingegen relativ neu, weil zu der Zeit die Bandbreiten im Netz meist noch überschaubar waren. Immerhin gab es schon gemeinschaftlich genutzte zentrale FTP-Server, die beispielsweise Software-Pakete bereitstellten. Zaghafte andere Ansätze waren zentrale Druckservices, die größere Aufträge bearbeiteten und bei denen Anwender dann ihre Briefe abholen konnten. Diese Dienste realisieren alle Infrastrukturaufgaben, die bis dato spezialisierte Hardwarecomponenten (CPUs, Festplatten, Drucker) übernahmen. Für einige dieser Dienste setzte sich irgendwann die Präzisierung IaaS, also Infrastructure-as-a-Service durch. So genannte Cloud-Speicher wie Google Drive, Dropbox oder Hi-Drive gehören zwar auch in die Kategorie, aber haben keinen eigenen Namen. Das gilt umso mehr für Online-Speicher von mobilen Geräten: Wer seine Photos zentral speichert, spricht auch gerne vom „Upload in die Cloud“.
Zurück zur Infrastruktur in Rechenzentren: IaaS kommt in zwei Geschmacksrichtungen: Bei der private Cloud gehört die komplette Gast-Infrastruktur einem Unternehmen, setzt aber auf ihr die Methoden des IaaS ein. Manche Anbieter nutzen IaaS auch, um einzelne virtualiserte Server an Kunden zu vermieten und nennen das dann verwirrender Weise bisweilen Public Cloud. Genau genommen ist das jedoch kaum etwas anderes als die schon seit Jahren verfügbaren V-Server der einschlägigen Hoster.
Gerade bei der private Cloud macht sich oft etwas Enttäuschung breit, wenn die vollmundigen Versprechungen nach Skalierbarkeit und Automatisierbarkeit sich nicht zu erfüllen scheinen. Das liegt meist daran, dass manche Migration einfach nur einige Dutzend physikalischer Server auf virtuelle Maschinen überträgt. Dadurch alleine entsteht genau genommen noch keine IaaS-Cloud.
Plattformen abstrahieren die Ablaufumgebung einer Anwendung
Doch die Cloud-Abstraktion lässt sich nicht nur an der Infrastruktur ansetzen: Wer schon einmal eine Web-Applikation aufgesetzt hat, kennt das im Kern immer gleiche Prozedere: Ein Betriebssystem ist zu installieren, eine Webprogrammiersprache wie Java, Python oder Perl ist einzuspielen und beide sind miteinander zu verbinden. Weiterhin erwartet der/die Web-Programmierer:in meist noch eine Datenbank, um bequem und performant seine Daten abzulegen und abzufragen. Für System Engineers und Entwickler:innen ist es gleichsam mühsam, diese Schritte immer wieder auf’s Neue durchzuexerzieren. Für diejenigen, die sie bezahlen, ist es zudem kostenträchtig.
Da lag die prinzipielle Idee nahe, eine Umgebung zu definieren, in der die Entwickler:innen nur noch die anwendungsspezifischen Teile ablegen und nannte das Platform-as-a-Service, kurz PaaS. Googles App Engine ist dafür ein Beispiel. Es hat sich jedoch als vergleichsweise aufwändig herausgestellt, bestehende Anwendungen auf eine konkrete PaaS-Umgebung hin anzupassen, zumal es diverse, nicht sonderlich standardisierte Interpretationen des Begriffs gibt. Am einfachsten haben es da noch Unternehmen, die ihre Anwendungen von Grund auf in einer PaaS-Umgebung entwickeln. Oft sieht man daher Startups als Nutzer dieses Ansatzes, der gut skaliert, wenn er richtig eingesetzt ist.
Nicht jede Geschäftsaufgabe erfordert eigene Software. Die Idee, Programme von der Stange zu nutzen ist bei Textverarbeitungen, Buchhaltung oder Kundenverwaltung bereits verbreitet. Mit modernen Web-Techniken wie HTML5 & Co. lassen sich Anwendungen im Web mit kleinen Abstrichen so entwickeln, als liefen sie als lokale, native Programme. Viele Anwender:innen kennen beispielsweise kaum noch lokale Mail-Clients, weil webbasierte Tools dafür sehr verbreitet sind. Wer also komplette Software oder nennenswerte Komponenten davon einsetzt, nutzt Software-as-a-Service.
Modernes Babel in der Cloud-Begrifflichkeit
Die drei Begriffe IaaS, PaaS und SaaS bauen oft aufeinander auf: Die höher liegenden Schichten nutzen die darunterliegenden (siehe Abbildung 1). Keine der Abkürzungen kann jedoch für sich eine formale, von allen anerkannte Definition für sich in Anspruch nehmen. Schlimmer noch: Anbieter quer über die einzelnen Ebenen hinweg benutzen oft mit schwindelerregender Selbstverständlichkeit den Begriff Cloud für ihre Produkte. Das muss zwangsläufig zu Missverständnissen führen. Wer sich dem Thema Cloud Computing bewusst nähern möchte, sollte daher für ein klares Wording sorgen.
- Tipp 1: Vor dem Start größerer Projekte untersuchen, ob und wenn ja, wie die eigene Anwendung vom Gang in die Cloud profitieren würde.
- Tipp 2: Prüfen, in welchen Cloud-Layer sich die Anwendung einfügen lässt. Ehrlich abschätzen, wie groß die Aufwände sind, die Anwendung für die Cloud umzubauen.
- Tipp 3: Im saloppen Miteinander ist der Begriff Cloud Computing ok. Bei der Planung lassen sich Missverständnisse vermeiden, wenn alle Beteiligte präzise Begriffe verwenden.
Nils Magnus ist Senior System Engineer bei der inovex GmbH. Er begleitet Kunden bei der Transformation ihren IT-Systeme und -Prozesse in skalierbare Data-Center-Lösungen. Wenn man es darauf anlegt, betreibt er Cloud Computing. Sein Steckenpferd und Schwerpunkt sind dabei die IT-Security.