Softwareentwicklung für die Cloud

Der Sprung in die Cloud verändert Architektur und Unternehmen

Cloud-Anwendungen haben andere Anforderungen an die Software-Architektur als klassische Systeme. Sie müssen eine besonders hohe Elastizität und Verfügbarkeit besitzen.

10.08.2018Text: tnt-graphics0 Kommentare
Cloud-Architektur_Web-Nutzung

Sollen Anwendungen in die Cloud überführt werden, können sie nicht Eins-zu-eins übernommen werden, sondern sie müssen entsprechend umprogrammiert und an die veränderten Umstände angepasst werden. Software Architekt Andreas Wassmer erklärt, worauf Unternehmen beim Wechsel in die Cloud achten müssen. Dabei sind die Anforderungen nicht isoliert in Bezug auf die Architektur einer Software zu betrachten, sondern auch in Bezug auf Entwicklerteams und aufs ganze Unternehmen.

Hohe Skalierbarkeit und Elastizität dank modularem Aufbau

«Im Gegensatz zu einer klassischen Software, bei der die Ressourcen, Betriebssysteme und Anzahl Nutzer meist von vornherein feststehen, sind bei Cloud-Anwendungen die beeinflussenden Faktoren sehr variabel», sagt Software Architekt Andreas Wassmer. Ein wichtiges Kriterium von Cloud-Systemen ist zum Beispiel ihre hohe Skalierbarkeit. «Die Anzahl der Nutzer kann beispielsweise bei einer Web-Anwendung schnell um den Faktor 10 oder 100 anwachsen, aber ebenso schnell auch wieder abnehmen. Ich denke da an Online-Shops, die vor Feiertagen überproportional viel Bestellungen erhalten oder an Ticketshops, die im Vorverkauf von grossen Shows regelrecht überrannt werden.» Um die Spitzen in einer solch unbestimmten Umgebung gut meistern zu können, müssen sich Cloud-Applikationen automatisch und in kürzester Zeit – also innert Minuten – an die sich wechselnden Bedingungen anpassen können. Dabei müssen Performance und Sicherheit gewährleistet sein.

Um diese Eigenschaften zu erreichen, sind Cloud-Anwendungen viel stärker modularisiert als klassische Software. «Zwar werden auch bei der herkömmlich objektorientierten Programmierung einzelne Module erstellt, doch liegt der Unterschied bei der Cloud-Programmierung darin, dass die Module komplett, also physisch voneinander getrennt werden», sagt Wassmer. Einzelne Teile können also auf andere Server ausgelagert werden oder zu Spitzenzeiten mehr Kapazität beanspruchen, so dass das ganze System viel variabler wird.

Grosse Auswirkungen auf Unternehmensstrukturen

Während bei der Entwicklung klassischer Software viele Entwickler zusammen auf einen Release hinarbeiten, sind es bei der Cloud-Entwicklung meist mehrere Teams, die für einzelne Module zuständig sind. Es erfolgt auch nicht mehr periodisch ein gesamtes Release, sondern die einzelnen Module werden online gestellt, sobald sie den Qualitätsanforderungen genügen. «Das kann durchaus einen grossen Einfluss auf die Organisationsstruktur eines Unternehmens haben», erklärt Wassmer. Mitunter muss durch den Übergang in die Cloud in einer Firma das Mindset komplett geändert werden, damit die Strukturen den neuen Anforderungen entsprechen. Es werden gemäss Wassmer mehr Verantwortlichkeiten abgegeben, die Organisation der Zusammenarbeit muss angepasst werden.

«Softwareentwickler müssen nicht nur Code schreiben, sondern sie kümmern sich auch um Tests und um die Auslagerung in die Cloud, was umfassendere Arbeitsprozesse zur Folge hat.» Um eine effiziente Zusammenarbeit der Teams zu gewährleisten, wird mit agilen Methoden und nach dem DevOps-Ansatz gearbeitet. Herkömmliche Wasserfall-Methoden sind bei der Entwicklung von Cloud-Applikationen nicht mehr gefragt. «Ohne agile Arbeitsmethoden sind diese Arbeiten kaum zu meistern. Deshalb hat die Umstellung auf die Cloud in einem Unternehmen nicht nur Auswirkungen auf die Programmierung, sondern auch auf die Organisation. So wie die einzelnen Software-Module separat entwickelt und physisch getrennt werden, muss eventuell auch die Unternehmensstruktur in autonomere Teams aufgeteilt werden.»

Besondere Anforderungen an die Infrastruktur

Auch bezüglich der Infrastruktur kann es zu Änderungen kommen. «Es kann sein, dass Systeme und Ressourcen, die bei herkömmlichen Anwendungen ausreichend waren, in einer neuen Cloud-Umgebung nicht mehr optimal sind», sagt Wassmer. Beispielsweise kann eine nicht-relationale Datenbank in einer Cloud-Umgebung, bei der mit grossen Datenmengen umgegangen werden muss, mehr Sinn machen als die bisherige SQL-Datenbank.» Doch müssen mit der Einführung der Cloud nicht zwingend komplette Umwälzungen in Angriff genommen werden. «Angefangen mit kleinen Anpassungen und veränderten Schnittstellen lassen sich die meisten Softwares schrittweise Cloud-tauglich machen.» Doch müssen sie danach optimiert werden. Anders als bei einem grossen Software-Release in einer herkömmlichen Architektur sind bei Cloud-Architekturen ständige Optimierungen gefragt. Dank der automatischen Auswertung von Log-Files erhält man fortlaufend Informationen darüber, wie die Anwendungen genutzt werden. Aufgrund dieser Daten wird die Software angepasst. Ein solches System ist deshalb nie komplett fertig, sondern in stetem Umbau.

Herausforderung für Unternehmen

Der Wechsel in eine Cloud-Umgebung sei für viele Unternehmen ein Abenteuer, auf das sie sich einlassen müssen, sagt Andreas Wassmer. Ein Unternehmen, das einzelne Anwendungen und Systeme in die Cloud überführen will, muss sich relativ früh entscheiden, in welcher Umgebung das Ganze geschehen soll. «Ob beispielsweise Microsoft Azure oder Amazon Web Services verwendet wird, hat Auswirkungen auf die Einplanung von Infrastruktur und personellen Ressourcen.» Weil jedoch ein schrittweiser Einstieg in die Cloud möglich ist, muss nicht alles auf einen Schlag Cloud-tauglich gemacht werden.

Es kann deshalb vorkommen, dass über eine gewisse Zeit parallel sowohl lokale als auch Cloud-basierte Systeme entwickelt und unterhalten werden müssen, was zu Mehrkosten führen kann. «Dies kann zu Abneigung gegen die Cloud führen», sagt Wassmer. «Während ganz junge Start-ups bereits mit entsprechenden Firmenstrukturen arbeiten, müssen sich KMU nun auf die neuen Begebenheiten einstellen. Bei Grossunternehmen wiederum, die über mehr Ressourcen und Skills verfügen, dürfte die Hemmschwelle kleiner sein, sich in ein Cloud-Abenteuer zu stürzen und dabei parallel mehrere Entwicklungen zu meistern.»

Unser Wissen im Abo

Technica Radar 2024

Mehr als KI: Das sind die wichtigsten IT-Trends 2024

AI/KI
6 Tipps, wie Sie Ihr Team effizienter machen

Müde Augen ade: So helfen kurze Codezeilen

Agile
Digitalisierung im Gesundheitswesen

«Die Digitalisierung scheitert, wenn sie dem Menschen die Autonomie nimmt»

Digitalisierung

Artikel kommentieren

Beachtung!

Entschuldigung, bisher haben wir nur Inhalte in English für diesen Abschnitt.

Achtung!

Entschuldigung, bisher haben wir für diesen Abschnitt nur deutschsprachige Inhalte.

Beachtung!

Entschuldigung, bisher haben wir nur Inhalte in English für diesen Abschnitt.

Achtung!

Entschuldigung, bisher haben wir für diesen Abschnitt nur deutschsprachige Inhalte.