IT-Trends-Blog

IT-Trends-Blog

Opinions expressed on this blog reflect the writer’s views and not the position of the Capgemini Group

Software-Entwicklung 4.0 – das Multitalent Cloud

Kategorie: Trends des Monats

IT-Systeme müssen immer schneller angepasst werden, um Kunden über verschiedene Kommunikationskanäle zu erreichen. Schnell gute Software entwickeln und Systemumgebungen skalieren zu können, wird zum Wettbewerbsfaktor. Oder anders gesagt: In Analogie zu Industrie 4.0 ist Software-Entwicklung 4.0 das Gebot der Stunde. Was kann Cloud als Entwicklungs-, Test- und Betriebsumgebung dazu beitragen?

Der Weg in die Cloud

Die schnellere Kommunikation und der immer weiter ansteigende Individualisierungsgrad verändern die Datenverarbeitung weitreichend. Gefragt sind Software-Architekturen, die als Referenzmodelle möglichst vielfältig einsetzbar sind. Bei komplexen Anwendungen beinhaltet das zunehmend den Einsatz von On-Premise-Lösungen in Kombination mit Cloud-Anwendungen – also hybride Lösungen.

Um sich jedoch frühzeitig mit Cloud-Architekturen vertraut zu machen, um z. B. Sicherheits- und Latenzzeitprobleme zu vermeiden, und um die Skalierbarkeit und die Flexibilität von Clouds sinnvoll zu nutzen, sollten sie bereits in der Entwicklungsphase zum Einsatz kommen. Dadurch werden Entwickler außerdem gezwungen, sich bereits beim Architektur-Entwurf Gedanken über Abrechnungsmodelle zu machen, um dem Pay-per-Use-Modell gerecht zu werden. Das kann die Ausgaben senken, da in vielen Fällen einmalige Investitionskosten in Betriebskosten übergehen.

Ebenso wichtig ist der Einsatz von Cloud-Lösungen für Tests, unabhängig davon, ob die Anwendung später in der Cloud betrieben werden soll oder nicht. Neben funktionalen Tests eigenen sie sich auch für Last- und Performancetests, bei denen Anforderungen wie z. B. die Antwortzeiten qualitätsgesichert und der Betrieb mit mehreren tausend Usern durch z. B. temporär aufgesetzte Testgeneratoren simuliert werden kann. Dabei lassen sich die vielen Vorteile der Cloud wie z. B. die spontane Skalierung von Systemumgebungen nutzen. Bei der Nutzung einer Anbieter-Cloud muss meistens nur die Rechenleistung bezahlt werden, die tatsächlich genutzt wird (Pay per Use). Sie steht jederzeit zur Verfügung und eignet sich wie die eigene Cloud vor allem dann, wenn man nur eine temporäre Testumgebung benötigt. Als Fazit lässt sich feststellen, dass der Einsatz der Cloud für alle Arten von Testumgebungen dann sinnvoll ist, wenn spontan Hardwareressourcen benötigt werden. Demzufolge sollten auch Abnahmeumgebungen für die finale Qualitätssicherung vor dem Go-Live in der Cloud aufgesetzt werden.

Für den Betrieb von Applikationen in einer Anbieter-Cloud müssen am besten zu Beginn eines Entwicklungsprojektes u. a. folgende Punkte geklärt werden:

  • Supportleistungen inkl. SLAs
  • Monitoring von Systemen und Applikationen
  • Security-Mechanismen
  • Rechtliche Fragen bzw. Zugriffsmöglichkeiten
  • Tools für die Cloud-Betriebsführung
  • Support des Cloud-Anbieters und IT-Integrators
  • Workflows z. B. für die Zahlungsmodalitäten

 

Was hilft noch auf dem Weg in die Cloud?

Grundsätzlich muss erst einmal festgelegt werden, welche Teile einer komplexen Anwendung Cloud-fähig sind. Hierzu dient ein Cloud-Assessment, in dem zur Beantwortung dieser Frage verschiedene Phasen und Kriterien durchlaufen werden. In der ersten Phase wird identifiziert, wie komplex eine Anwendung ist, wie viele Schnittstellen sie hat, ob Hardware-nahe Softwarekomponenten verwendet werden (embedded solutions) oder ob zum Beispiel durch eine Verlagerung in die Cloud beispielsweise Sicherheits- oder Latenzzeitprobleme zu erwarten sind. In einer zweiten Phase werden für Cloud-fähige Applikationskomponenten mögliche Cloud-Plattformen von Public über Private bis hin zu PaaS- oder SaaS-Lösungen untersucht. Die dritte Phase legt anhand von weiteren Kriterien fest, ob sich Software-Teile ohne Anpassungen migrieren lassen, geringfügige bis mittlere Anpassungen notwendig sind oder ggf. eine komplette neue Implementierung von Software besser geeignet ist. In Ausnahmefällen wird auch festgelegt, Anwendungsteile auslaufen zu lassen und nicht in die zukünftige Planung zu übernehmen.

Das Ergebnis des Cloud-Assessments fließt dann in die Cloud-Migrationsplanung ein. Nicht zu vergessen ist in diesem Zusammenhang die Migration der Daten von der alten auf die neue hybride Plattform. Dabei ist die Einbindung der zukünftigen Cloud-Plattformen wichtig, um die rechtlichen und sicherheitsrelevanten Fragen frühzeitig klären zu können. Auch der spätere Betrieb der Anwendung(en) in der Cloud sollte dabei berücksichtigt werden.

Release-Zyklen werden noch kürzer

Aus vielen Kundengesprächen nehme ich zusätzlich mit, dass die Kunst in Zukunft darin bestehen wird, die Software-Release-Zyklen zu verkürzen, um schneller als die Konkurrenz neuen Content zu veröffentlichen. Zukünftig werden je nach Anwendung Release-Zyklen nicht mehr mehrere Wochen oder gar Monate dauern, sondern nur noch Tage oder wenige Wochen. Daher ist nach meiner Erfahrung bei der Migration oder der Installation von neuen Anwendungen in der Cloud der Einsatz von ausgeklügelten Software- und Deployment-Prozessen (DevOps) unabdingbar.

Lassen Sie uns uns austauschen

Welche Erfahrungen haben Sie mit dem Einsatz einer Cloud in der Softwareentwicklung gemacht? Welchen Provider nutzen Sie wofür und was machen Sie mit Ihrer eigenen Cloud? Ich freue mich auf einen Erfahrungsaustausch mit Ihnen.

Wenn Sie das Thema interessiert, empfehle ich auch die anderen Blogs zu dieser Serie:

·         Software-Entwicklung 4.0 am 20. Nov.

·         Microservices am 3. Dez.

·         Agile am 11. Dez.

·         DevOps am 23. Dez.

 

 

Über den Autor

Marius Vöhringer
Marius Vöhringer

Kommentar hinterlassen

Ihre E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit einem * gekennzeichnet.