Die Cloud, unendliche Weiten. Zumindest ist es das, was die Cloud-Anbieter uns heutzutage versprechen. Die Limits hängen davon ab, was man bereit ist, zu zahlen. In den letzten Jahren ist die Cloud immer beliebter geworden und viele Unternehmen sind in die Cloud gewechselt. Aber ist Cloud-Computing wirklich die Lösung für alle Probleme und geeignet für jede:n?

 

Cloud ist nicht gleich Cloud

Den Satz “the cloud is just someone else’s computer” kennen wir wohl alle.  Aber wenn wir in der Cloud nur Server bekommen, wie unterscheidet sie sich dann von den klassischen Hosting-Angeboten, wie es sie schon seit Jahrzehnten gibt? Ganz einfach: die Cloud bietet deutlich mehr, nicht nur Server, sondern auch Services und noch einen wichtigen weiteren Punkt: Flexibilität.

Um den Mehrwert der Cloud zu verstehen, müssen wir einige Schritte zurückgehen. Server wurden schon immer benötigt und so hat das ein oder andere Unternehmen bei sich im Keller einen Serverraum. Hier spricht man von On-Premises, hier wird alles auf “dem eigenen Gelände” betrieben. Dabei muss man sich sowohl um die Bereitstellung der Ressourcen wie Strom, Klimatisierung oder Sicherheit, als auch die Beschaffung der nötigen Hardware kümmern.

 

Was die Cloud mit Pizza zu tun hat

Um es etwas verständlicher zu gestalten, greift man gerne auf eine Pizza-Analogie zurück. Hierbei entspricht eine On-Premises-Lösung dem Prozess des Pizzabackens zu Hause: Wir nutzen unsere eigene Küche, stellen Energie und Ofen bereit, machen unseren eigenen Pizzateig, kümmern uns um Toppings, bereiten die Pizza selbst zu und essen sie bei uns zu Hause. Der Vorteil ist: Wir haben die genaue Entscheidungsfreiheit, welche Zutaten wir für unseren Teig verwenden und welche Toppings wir auf der Pizza haben möchten.

 

Hosting

Beim Hosting wird es nochmal einfacher. Die Nutzer:innen müssen sich nicht um die benötigte Infrastruktur und die Anschaffung und Wartung der Serverhardware gekümmert werden, da sie vom Anbieter bereitgestellt wird. Der Server wird hierbei für einen fest definierten Zeitraum beim Anbieter gemietet.

Wenn wir nun wieder auf Pizza-Analogie zurückblicken, können wir dies mit einer Tiefkühlpizza vergleichen. Diese ist schon fast fertig gebacken und wir müssen sie nur noch in den Ofen schieben, fertig backen und essen. Hierbei können wir aber nur aus verschiedenen vordefinierten Sorten wählen.

 

Infrastructure as Service (IaaS)

Dieses Prinzip des Hostings gibt es in der Cloud auch. Es trägt den Namen Infrastructure as Service (IaaS). Hierbei unterscheidet sich die Cloud vom klassischen Hosten vor allem durch die Flexibilität.

Während wir beim Hoster zwischen festen Konfigurationen aus CPU und Arbeitsspeicher wählen können, können wir dies in der Cloud feingradig individuell einstellen. Flexibilität ist zudem bei den Laufzeiten gegeben. Der klassische Hoster bietet meist feste Laufzeiten von einem Monat bis hin zu mehreren Jahren an, wobei in der Cloud jederzeit gekündigt werden kann und minütlich abgerechnet wird.

 

Platform as a Service

Kommen wir nun zu dem, wo der große Vorteil der Cloud liegt: Platform as a Service (PaaS). Hierbei muss sich um noch weniger gekümmert werden. Grob gesagt: hierbei wird die Anwendung geliefert, also genau das, was auf der Cloud laufen soll, und der Anbieter kümmert sich darum, dass die Anwendung bereitgestellt wird. Auch müssen wir keine Datenbanken managen, sondern können diese als managed Services dazu buchen. Wir ersparen uns hierbei einiges an administrativem Aufwand, müssen aber natürlich hierfür entsprechend zahlen. In unserer Pizza-Analogie würde dies dem Bestellen einer Pizza entsprechen, welche wir geliefert bekommen und nur noch zu Hause essen würden.

Um diese Pizza-Analogie zu Ende zu führen, wäre der letzte Schritt, die Pizza nicht zu Hause, sondern in einem Restaurant zu essen, hier muss man sich nämlich um nichts mehr selbst kümmern. Dies ist vergleichbar mit einer Software as a Service (SaaS) -Lösung, welche man fertig einkauft.

 

Die Power von PaaS

Wir haben gesehen, dass PaaS der große Vorteil der Cloud ist, da viele Management-Aufgaben vom Anbieter übernommen werden. Doch dahinter verbirgt sich deutlich mehr. In der Softwareentwicklung ist es üblich geworden, seine Anwendung in verschiedene Container “einzutuppern”. Diese Container sind in sich abgeschlossen und bringen alle Abhängigkeiten, welche sie benötigen, mit sich. Diese können von einer Container Runtime ausgeführt werden.

Wer hätte es gedacht, Cloud-Anbieter bieten diese Runtime as a Service z.B. in Form von Kubernetes an, sodass man nur über die nötigen Container und Manifeste zum Konfigurieren von Kubernetes verfügen muss. Benötigt man zusätzlich noch eine Datenbank? Kein Problem, binnen weniger Klicks und Minuten ist diese auf darauf spezialisierter Hardware bereitgestellt, ganz ohne Datenbankadministrator.

Gehen wir noch eine Stufe weiter: Wir möchten uns nicht unbedingt mit der Erstellung dieser Container beschäftigen, sondern haben eine fertige Anwendung und diese soll in der Cloud laufen. Hier haben die Cloud-Anbieter auch schon eine fertige Lösung parat, wie z.B. App-Engine von Google Cloud.

Wir merken schnell, dass die Cloud einem mehr und mehr Arbeit abnehmen kann, vor allem wenn es um Management, Flexibilität und Skalierung geht. Wir haben jedoch noch nicht die höchste Ebene der Arbeitserleichterung erreicht: Das Nutzen von Angeboten, welche Cloud-Anbieter-spezifisch sind. So lässt sich mit AWS Cognito die komplette Authentifizierung mit Registrierung und Nutzerverwaltung auslagern oder mit Google Firebase das komplette Backend einer Anwendung. Hiermit gehen wir schon sehr in den Bereich „serverless“ hinein. Auch bieten viele Cloudanbieter mittlerweile Lösungen im Bereich von Big Data und Machine Learning an, sodass man diese Themenbereiche mit sehr wenig Know-how über die gegebenen Schnittstellen in seine Anwendung integrieren kann.

Somit ist die Cloud doch nicht ganz „someone else’s computer“, sondern auch Service Provider mit einem breiten Angebot.

 

Festgefahren in der Cloud

Was auf den ersten Blick sehr praktisch wirkt, dass man bei der Entwicklung einfach auf bestehende Dienste zurückgreifen kann, hat jedoch auch einen Haken: Ist man einmal an diese Produkte oder diesen Anbieter gebunden, ist es nicht mehr so einfach, sie zu wechseln.

Somit sollte man sich immer die Frage stellen, ob man am Anfang lieber etwas mehr Zeit investieren möchte und einige Funktionen selbst implementiert, um unabhängiger von Cloud-Anbietern zu sein oder man doch lieber direkt all-in geht und dafür an einen Anbieter gebunden ist.

Wir bei anny haben uns damals bewusst für die universelle Containerlösung auf Basis von Kubernetes entschieden und können damit auf verschiedenen Cloud-Anbietern laufen. Auch haben wir es somit geschafft, binnen weniger Tage eine On-premises-Lösung auf die Beine zu stellen, welche auf der Infrastruktur von Kunden betrieben werden kann. Dies wäre mit einer Abhängigkeit von Cloud-Diensten nicht möglich gewesen.

 

Zurück auf den Boden

Damals, als die Cloud richtig groß geworden ist, hat man gesehen, dass viele Unternehmen den Wechsel in die Cloud gemacht haben. Nun, einige Jahre später, sieht man aber auch, dass es mehr und mehr den Trend gibt, aus der Cloud zurück zu den klassischen Hostern zu wechseln.

Doch woran liegt das? Die ganze Flexibilität und das Management, was die Cloud mit sich bringt, hat natürlich auch einen Preis, denn Cloud ist teuer!

Das Prinzip ist relativ einfach: Fängt man klein in der Cloud an, ist es sehr günstig, denn man erzeugt noch nicht so viele Kosten und landet meist in den kostenlosen Kontingenten der Anbieter. Wächst die Cloud-Nutzung, steigt auch der Preis, den man dafür zahlen muss, und dies kann in das Unermessliche gehen.

Somit lohnt sich die Cloud vor allem dann, wenn man in der Anfangsphase ist und somit in den kostenlosen Kontingenten bleibt oder exakt die Skalierbarkeit und Flexibilität braucht, um z.B. Lastspitzen abzufangen. Hat man jedoch eine moderate Auslastung und benötigt man diese Skalierbarkeit nicht, kann man den Weg gehen, welche schon einige andere gegangen sind: raus aus der Cloud und zurück zu den klassischen Servern.

 

Über den Autor:

Adriaan Wind ist Co-Founder des erfolgreichen in Aachen gegründeten Plattform-Startups anny, das mittlerweile seinen Hauptsitz in Köln hat. Das anny-Buchungssystem bietet – wie auch die Cloud – unendliche Möglichkeiten. Als Head of DevOps ist Adriaan Cloud Traveller und Cloud Experte.

Adriaan Wind, Co-Founder & Head of DevOps bei der anny GmbH

Zurück nach oben