Neben der Erarbeitung einer Cloud Strategie, dem Aufbau eines Cloud Competence Centers und der Definition der Action Steps für die Cloud Einführung gibt es noch eine weitere wichtige Aufgabe, die viele Unternehmen erwartet: die Anwendungsentwicklung. Da meist nicht alle Anwendungen unverändert in die Cloud übertragen werden sollen oder können, benötigt es entsprechenden Ersatz. Was es mit der Anwendungsentwicklung im Zuge der Cloud Transformation auf sich hat und wie die 10 Entwurfsprinzipien von Azure Unternehmen unterstützen können, erklärt dieser Artikel.
Warum die Anwendungsentwicklung Teil der Cloud Transformation ist
In vielen Fällen übertragen Unternehmen nicht alle bestehenden Anwendungen in die Cloud. Vielmehr entsteht häufig eine Mischung aus Migration, Optimierung oder Neuentwicklung von Anwendungen. Anwendungen, die mit ihren Funktionen und Eigenschaften problemlos in die Cloud übertragen werden können, werden migriert und häufig für den Betrieb in der Cloud optimiert. Benötigt ein Unternehmen allerdings neue Funktionen oder möchte im Zuge der Cloud Transformation neue Geschäftsfelder erschließen, bietet sich die Neuentwicklung von Anwendungen an. Diese bringt mehrere Vorteile mit sich.
-
- Zuverlässigkeit und Sicherheit: Die Cloud steht für Hochverfügbarkeit, maximale Zuverlässigkeit und hohe Sicherheit durch Maßnahmen wie automatisierte Kontrollmechanismen oder eine intelligente Bedrohungserkennung. Von diesen Vorteilen profitieren Unternehmen bereits während der Entwicklung ihrer Anwendungen, wenn sie die Entwicklung beispielsweise mit Microsoft Azure durchführen.
-
- Geringere Kosten: Im Gegensatz zu klassischer Anwendungsentwicklung können Entwickler in cloudbasierten Modellen auf On Demand Tools sowie serverloses Computing und Datenbanken setzen. Das senkt einerseits den Verwaltungsaufwand und andererseits die Kosten. Auch die Entwicklungskosten an sich können sie senken, indem Low-Code Anwendungen zum Einsatz kommen.
-
- Höhere Skalierbarkeit: Durch die hohe Flexibilität der Entwicklung cloudbasierter Anwendungen steigt auch die Skalierbarkeit. Entsprechend geplant können cloudbasierte Anwendungen auch nach längerer Zeit noch verändert und skaliert werden. Das macht es möglich, sie jederzeit an neue Gegebenheiten im Unternehmen oder am Markt anzupassen, sodass Unternehmen maximal flexibel bleiben.
-
- Bessere Verwaltbarkeit: Der Aufwand für die Verwaltung von Tools zur Entwicklung sinkt deutlich, wenn Unternehmen von den verschiedenen On Demand Tools Gebrauch machen. Beachten Entwickler zudem von Beginn an die Entwurfsprinzipien, gestaltet das die Anwendungsverwaltung langfristig unkompliziert.
Anwendungsentwicklung mit Microsoft Azure: 10 Entwurfsprinzipien
Mit Anbietern wie Microsoft, Google oder Amazon gibt es verschiedene große und etablierte Anbieter von Cloud Services. Neben ihren Services bieten sie außerdem Frameworks, Guidelines und Tipps für eine erfolgreiche Cloud Transformation. Microsoft hat deshalb 10 Entwurfsprinzipien für die Anwendungsentwicklung mit Microsoft Azure zusammengestellt. Sie sollen die Entwicklung und Verwaltung neuer Anwendungen erleichtern.
1.Blick auf Selbstreparatur: Ausfälle sollten Sie bei allen Arten von Anwendungen mit einkalkulieren. Auch, wenn diese nur selten vorkommen, ist es sinnvoll, Anwendungen von Beginn an so zu entwickeln, dass sie eine Selbstreparatur durchführen können.
2. Redundanz herstellen: Damit keine Teile einer Anwendung ausfallen und für den Ausfall der gesamten Anwendung sorgen können, sollten Sie Redundanzen aller Anwendungsbestandteile herstellen.
3. Koordinierung minimieren: Halten Sie die Koordinierung zwischen verschiedenen Anwendungsdiensten möglichst gering. So erhöhen sie die Skalierbarkeit jeder einzelnen Anwendung.
4. Ausrichtung auf Aufskalierung: Planen Sie mögliche zukünftige Skalierungen bereits bei der Entwicklung einer Anwendung mit ein. Entwerfen Sie sie so, dass eine Skalierung durch Hinzufügen oder Entfernen von Instanzen problemlos möglich ist.
5. Beschränkungen durch Partitionierung vermeiden: Bei der Skalierung können Sie auf Beschränkungen beispielsweise in der Datenbankgröße, dem Abfragedurchsatz oder der Anzahl der Kerne stoßen. Um diese Grenzwerte zu umgehen, können Sie etwa die Datenbank, eine Warteschlange die App partitionieren.
6. Den Betrieb im Blick halten: Das Betriebsteam ist im Anschluss an die Entwicklung für die Ausführung einer Anwendung zuständig. Schon bei der Anwendungsentwicklung empfiehlt sich deshalb die Zusammenarbeit mit diesem Team in Planung und Entwurf.
7. Verwaltete Dienste verwenden: Für die Entwicklung neuer Anwendungen empfiehlt sich vor allem ein PaaS-Modell. Es bietet neben Hosting und Wartung der Server, Netzwerke und anderer Ressourcen auch Dienste, Tools und Systeme für die Entwicklung von Webanwendungen. Ist die zusätzliche Freiheit eines IaaS-Modells nicht unbedingt nötig, erleichtert das PaaS-Modell meist die Arbeit.
8. Identitätsdienst einsetzen: Statt eine eigene Identitätslösung zu entwickeln und mühsam aufzubauen, empfiehlt sich der Einsatz einer IDaaS-Plattform (Identity as a Service). Das erleichtert einerseits die Verwaltung und ermöglicht andererseits die Nutzung modernster Identitätsfeatures durch einen erfahrenen Anbieter.
9. Entwicklung im Blick halten: Bereits in der Entwurfsphase einer Anwendung lohnt es sich, ihre Weiterentwicklung im Hinterkopf zu halten. Je weniger komplex und je unkomplizierter eine Anwendung ist, desto simpler ist auch ihre Weiterentwicklung in der Zukunft.
10. Unternehmensanforderungen im Mittelpunkt: Schon der Entwurf jeder Anwendung sollte sich immer klar an den Unternehmensanforderungen orientieren. Welche Geschäftsziele soll diese Anwendung unterstützen und welche Anforderungen werden dafür an sie gestellt?
Fazit: Anwendungen in der Cloud mit klarem Fahrplan entwickeln
Die Anwendungsentwicklung gilt inzwischen als fester Bestandteil der Cloud Transformation in Unternehmen. Ob durch neue Geschäftsfelder, geänderte Anforderungen oder veraltete On Premise Anwendungen – der Bedarf an neuen Anwendungen entsteht in nahezu jedem Unternehmen. Der Nutzen dieser Anwendungen wird dabei bereits in der Entwurfs- und Entwicklungsphase definiert. Je simpler Spezialisten sie entwerfen und je besser sie auf die Unternehmensziele ausgerichtet sind, desto höher ist später ihr Nutzen sowie ihre Skalierbarkeit. Bevor die Entwicklung an die Arbeit gehen kann, empfiehlt sich deshalb eine durchdachte Entwurfsplanung, die einem roten Faden folgt.