© StonePictures/Shutterstock.com
Kolumne: EnterpriseTales

Wie Cloud-Computing ein Umdenken der Entwickler einfordert…


Cloud-Computing ist ein Trend, der Auswirkungen für Entwickler hat. Statt dass Serversysteme wie gewohnt implementiert werden können, sind Systeme, die für die Cloud entwickelt werden, aufgrund der Skalierbarkeit häufig verteilte Systeme. Und das hat Implikationen, die wir uns in dieser Ausgabe der Kolumne anschauen wollen.

Cloud-Computing ist ein nicht wegzudenkender Trend in der heutigen Zeit. Der Begriff Cloud-Computing ist so facettenreich, dass man eigentlich gar nicht per se von Cloud-Computing sprechen kann. Plattform as a Service, Function as a Service, Kubernetes, Software as a Service – alles Terminologien, die unter den Begriff des Cloud-Computing fallen können. Geht ein Unternehmen in die Cloud, ist es also gar nicht so eindeutig, was eigentlich gemeint ist.

Es lässt sich dennoch eine Gemeinsamkeit festhalten: Cloud-Computing ist fast immer mit Elastizität verbunden, sei es beim Hoch-, sei es beim Runterskalieren von Hard- oder Software. Nicht umsonst ist das Versprechen von Cloud-Computing schon seit jeher: „Pay only what you use“ – der Traum eines jeden Unternehmers. Das gleiche Versprechen gilt auch für die Betreiber der Software. „Scale up as you go“, lautet hier häufig das Versprechen.

Nur ein wichtiger Faktor wird in der Gleichung weitestgehend außen vorgelassen, nämlich der, der die Elastizität überhaupt möglich macht – der Entwickler der Software. Denn Cloud-Computing kann seine vollen Vorteile nicht entfachen, wenn die Software es nicht zulässt.

Gerade für die Entwickler ist das Ziel, wenn sie Applikationen entwickeln, die „für die Cloud gemacht sind“, vor allem eines: eine möglichst hohe Skalierbarkeit der Software zu gewährleisten. Sprich: Wenn viele Nutzer die Applikation gleichzeitig nutzen, können schnell neue Instanzen hochgefahren werden. Nimmt die Last wieder ab, können die Instanzen wieder freigelassen werden. Gehen Entwickler in die Cloud, so bedeutet das nicht selten, dass gewisse Skalierungskonzepte der Infrastrukturebene bereits Eingang in die eigene Systemarchitektur finden müssen: das strikte Trennen und Denken in zustandsbehafteten und zustandslosen Systemen. Denn nur durch diese Trennung kann das erhoffte und versprochene horizontale Skalieren der Cloud Realität werden.

Doch was bedeutet es, wenn wir sagen: „Wir denken in zustandsbehafteten und zustandslosen Systemen?“ Betrachten wir zunächst ein zustandsloses Beispiel. Klassische, formularbasierte Geschäftsanwendungen basieren meistens auf dem Request-Response-Modell des HTTP-Protokolls. Sendet der Browser des Benutzers also Daten, z. B. das Anlegen einer Entität zum Server, so verbindet sich dieser wiederum mit einer Datenbank und speichert die Daten entsprechend. Je nachdem, ob die Anfrage erfolgreich war oder nicht, sendet ...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang