Cloud Computing, Platform as a Service, PaaS, Infrastrucuture as a Service, IaaS, Software as a Service, SaaS, Hostingproblem

Bei der Gründung eines Web-Startups spielt die Auswahl der Hostinglösung eine entscheidende Rolle. Wenn das gesamte Geschäftsmodell auf der Erreichbarkeit der Webapplikation basiert, kann man sich hier keine Fehler erlauben. Hostinganbieter, die bereit sind, für jeden Bedarf maßgeschneiderte Lösungen zu entwerfen, gibt es dabei genug. Leider haben diese Lösungen oft einen großen Nachteil. Die Kosten dafür sind horrend. Geld hingegen haben StartUps nur ganz selten im Überfluss.

Cloud Computing, das große Buzzword in der IT, verspricht die Lösung für dieses Problem zu sein: Nur bezahlen, was man auch wirklich verbraucht hat, und die Leistungsreserven sind nahezu unerschöpflich. Doch im ganzen Rummel den Überblick zu behalten ist alles andere als leicht. Mit diesem Artikel möchte ich deshalb versuchen, die verschiedenen Lösungen vorzustellen, die Cloud Computing zum Hosten von Webapplikationen bietet, und die Vor- und Nachteile dieser Lösungen für StartUps aufzeigen.


Auch wenn bisher noch keine allgemeingültige Definition zu existieren scheint, was Cloud Computing wirklich ist, scheint zumindest Konsens darüber zu herrschen, dass man Cloud Computing in die drei Teile Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) und Software-as-a-Service (SaaS) gliedern kann. Für das Hosten von Webapplikationen kommen dabei Lösungen aus den ersten beiden Bereichen in Frage.

Infrastructure-as-a-Service

Der Name ist relativ selbsterklärend. Bei IaaS-Anbietern kann man virtuelle Server stundenweise mieten. Von Anbieter zu Anbieter unterscheidet sich der Funktionsumfang in Details, im Großen und Ganzen hat man aber überall die Möglichkeit ein eigenes Betriebssystem zu installieren oder aus vorgefertigten Images zu wählen. Die Administration der benötigten Software, die Wartung (Stichwort Sicherheitsupdates) und Backups oder ähnliches muss man dabei selbst übernehmen. Vorteil ist allerdings, dass man alle Freiheiten hat, zu entscheiden, wofür man die Instanzen einsetzt. Neben der Möglichkeit, Webhosting zu betreiben, kann man mit diesen Instanzen zum Beispiel auch Videos transkodieren, Gameserver hosten oder Forschungsberechnungen durchführen.

Einen Kostenvorteil gegenüber bei traditionellen Hostinganbietern gemieteten Servern bieten IaaS-Anbieter erst, wenn die Instanzen nicht dauerhaft laufen, sondern je nach Bedarf gestartet und beendet werden. Da man hier nur für die tatsächliche Nutzungszeit zahlt, verspricht dies erhebliches Einsparungspotential im Vergleich zu den pauschalen Kosten für traditionelle Server. Den Prozess des Startens und Herunterfahrens zu automatisieren, verursacht allerdings nochmals einen höheren Administrationsaufwand und birgt grundsätzlich ein Risiko. Außerdem ist hierfür eine API erforderlich, die noch nicht alle Anbieter zur Verfügung stellen.

Der Administrationsaufwand von IaaS-Instanzen ist vergleichbar mit dem Aufwand, herkömmliche Server zu administrieren. Mit der Auswahl eines vorgefertigten Images mag man zwar grundsätzlich alle notwendigen Softwarekomponenten beisammen haben. Aber damit ist die eigene Applikation noch nicht online und gerade im Hinblick auf Loadbalancing und Datenbankreplikation muss man selbst Hand anlegen.

Außerdem bieten IaaS-Lösungen von Hause aus keinerlei Vorteil im Hinblick auf die Verfügbarkeit. Sollte eine Instanz ausfallen, ist es zwar grundsätzlich schneller möglich, eine neue zu starten als mit physikalischen Servern. Jedoch ist man für diese Zeit immer noch offline. Hält man dauerhaft mehrere Instanzen vor, zahlt man hingegen unter Umständen wieder für Leistung, die man tatsächlich nicht verbraucht hat.

Gerade der Bereich Systemadministration wird aus meiner Erfahrung heraus in vielen StartUps völlig unterschätzt und vernachlässigt. Oft bürdet man dies den eigenen Entwicklern auf, was diese von ihren eigenen Kernkompetenzen abhält und dazu führt, dass die Systeme nur unzureichend konfiguriert und gewartet werden. Hier schlummern unzählige Sicherheitslücken die nur darauf warten gefunden zu werden.

Sollte das notwendige Administrative Know-How nicht im Team verfügbar sein, hat man die Möglichkeit, sich entsprechende Dienstleister zu kaufen bzw. auf verschiedene verfügbare Cloud-Administrationstools zurück zu greifen. Wird die Freiheit, die IaaS bietet, benötigt, sollte man unbedingt jemanden mit der Administration betrauen, der bereits Kenntnisse und Erfahrung auf diesem Gebiet hat.

Platform-as-a-Service

PaaS-Lösungen unterscheiden sich von IaaS grundsätzlich dadurch, dass man bei den Plattformen mit der zu Grunde liegenden Hard- und Software nichts zu tun hat. Dies senkt den Administrationsaufwand enorm. Im Gegensatz zu IaaS-Lösungen bieten solche Plattformen dadurch natürlich weniger Freiheiten. Ähnlich wie bei Frameworks muss man eben durch die Fokussierung auf ein spezielles Problem Einschränkungen in Kauf nehmen.

Genau diese Fokussierung stellt aber dementsprechend auch den größten Vorteil dar. PaaS-Anbieter können hochspezialisierte Lösungen für den jeweiligen Einsatzzweck anbieten. Diese Spezialisierung verspricht dabei ein zuverlässiges und performantes Angebot und einen Kostenvorteil gegenüber einer eigenen Lösung. Vorstellbar ist dies nicht nur in Bezug auf Cloud-Hosting, sondern zum Beispiel auch für Datenspeicher oder insbesondere Backupspeicher.

PaaS-Anbieter bieten sehr unterschiedliche Leistungen und teilweise unterschiedliche Abrechnungsmodelle an. Nicht jeder Anbieter unterstützt zum Beispiel alle Programmiersprachen oder Datenbanken. Darüber hinaus werden Probleme auch unterschiedlich gelöst. Dies kann sogar so weit gehen, dass keine relationalen Datenbanken verfügbar sind oder dass der Zugriff über anbieterspezifische Schnittstellen geschehen muss. Dies alles führt dazu, dass nicht jede Anwendung ohne Änderungen bei jedem Anbieter läuffähig ist und es unter Umständen nicht ohne weiteres möglich ist, von einem Anbieter zum nächsten zu wechseln. Je nach Einsatzzweck kann dies ein großes Problem darstellen und man sollte deshalb in jedem Fall genauestens prüfen, ob die Plattform wirklich die richtige Wahl ist.

Ein weiterer Vorteil von PaaS-Lösungen für das Hosting von Applikationen ist jedoch, dass man feste Schnittstellen für das Hochladen der eigenen Anwendung hat. Im Optimalfall bietet der Anbieter hierfür eine API an, die es ermöglicht, das Deployment komplett skriptgesteuert vorzunehmen. Gerade im Hinblick auf „deploy early – deploy often“ hilft dies Fehler zu vermeiden. Nur so kann man guten Gewissens häufig Änderungen online stellen.

Dadurch, dass sich bei PaaS-Lösungen der Anbieter um die Verteilung der Applikationen auf den zu Grunde liegenden Servern kümmert, steigt automatisch die Verfügbarkeit ohne Mehrkosten. Man sollte hier deshalb darauf achten, wie der Anbieter diese Verteilung vornimmt und ob dabei insbesondere sichergestellt ist, dass die Anwendung gleichzeitig zumindest auf verschiedenen physischen Servern vorliegt. Im Optimalfall verteilt der Anbieter darüber hinaus sogar über verschiedene Standorte, um selbst bei Ausfällen ganzer Rechenzentren weiter verfügbar zu sein.

Fazit

Gemeinsam haben sowohl Infrastructure as a Service als auch Platform as a Service den Vorteil, dass die Kosten im Vergleich zu traditionellen Hostinglösungen durch die Abrechnung nach tatsächlichem Verbrauch enorm gesenkt werden können. Dabei muss man aber auch versteckte Kosten wie für Systemadministration oder notwendige Änderungen an der Software berücksichtigen.

IaaS-Lösungen überzeugen durch ein hohes Maß an Freiheit bezüglich des Einsatzzwecks, bieten allerdings von Hause aus keine großen Vorteile im Hinblick auf die Ausfallsicherheit und bringen einen hohen Administrationsaufwand mit sich.

PaaS-Lösungen hingegen ermöglichen es, sich absolut auf das eigene Produkt zu konzentrieren, ohne durch Administration der Infrastruktur behindert zu werden und bieten erhöhte Ausfallsicherheit. Allerdings muss man dafür eine Einschränkung hinsichtlich Flexibilität der Einsatzmöglichkeiten in Kauf nehmen.

Was das Angebot verschiedener Lösungen am Markt angeht ist es im deutschsprachigen Raum noch eher dünn gesät. In den USA sieht dies zwar ganz anders aus, jedoch hat man als deutsches Unternehmen hier mit hohen Latenzzeiten zu kämpfen und darüber hinaus erschweren europäische Datenschutzrichtlinien die Speicherung personenbezogener Daten auf Servern außerhalb der EU nicht unerheblich. Langsam starten aber die ersten deutschen Anbieter eigene Produkte oder zumindest Testläufe, sodass in naher Zukunft mit der Verfügbarkeit von Lösungen gerechnet werden kann.

Alles in allem ist das Potential da und insbesondere StartUps können von den innovativen Lösungen profitieren. Zum jetzigen Zeitpunkt würde ich deshalb dringend davon abraten mich langfristig an eigene oder gemietete Server zu binden.

Über den Autor:

Philipp Strube

Philipp Strube ist einer der Gründer des Cloud Hosting Anbieters cloudControl und entwickelt mit seinem Team eine hochverfügbare und skalierbare Hostinglösung für moderne Webapplikationen.

CloudControl ist stolzes SUN Startup Essential Member.

Mehr zum Thema Cloud Computing und Cloud Hosting bloggt Philipp auf Serverwolken.de.