Obwohl die Cloud theoretisch kostengünstiger sein sollte, kehren einige Unternehmen überraschenderweise von der Cloud zu ihren lokalen Servern zurück. Auch bei einigen unserer Kunden beobachten wir diesen Trend.
Unerwartete Kostentwicklungen
Kosten sind ein wichtiger Faktor bei der Cloud-Migration. Die Umstellung auf die Cloud erfordert Zeit und Mühe. Anwendungen müssen häufig angepasst werden, um mit Cloud-Ressourcen kompatibel zu sein. Das ist zwar einzuplanen, aber irgendwann sollte die Migration abgeschlossen sein und sich die finanziellen Vorteile bemerkbar machen.
Theoretisch sollte der Aufwand für die Cloud-Migration einen Mehrwert schaffen. Zu Beginn der Migration gibt es noch keine Rendite für die Investition. Irgendwann stehen Aufwand und Nutzen jedoch in einem ausgewogenen Verhältnis. Ab diesem Zeitpunkt sollte der Migrationsaufwand sinken und der Nutzen den Aufwand überwiegen, wie in dieser Grafik dargestellt:
Einige Unternehmen erreichen diesen Punkt jedoch nie. Im Gegenteil, ihre Gesamtbetriebskosten steigen sogar. Ihre Cloud-Reise sieht eher so aus:
Die Cloud-Rechnung im Griff behalten
Viele Unternehmen kämpfen damit, am Monatsende eine vorhersehbare und angemessene Cloud-Rechnung zu erhalten. Allein das Hosten einer Testumgebung für eine einfache Anwendung kann in einigen Fällen Kosten in Höhe von Hunderten oder sogar Tausenden von Euro verursachen.
Auf den ersten Blick mag die Entwicklung von Software für die Cloud der Entwicklung von Software für eine lokale Umgebung ähnlich erscheinen, aber lass dich nicht täuschen - es gibt einige entscheidende Unterschiede.
Beispielsweise werden bei der Entwicklung von On-Premise-Software Datenbanken zu einem Datenbankserver hinzugefügt, bis die maximale Kapazität des Servers ausgeschöpft ist. Idealerweise verwenden alle Anwendungen ähnliche Datenbanktechnologien. In der Cloud führt ein ähnlicher Ansatz zu hohen Kosten. Die meisten Cloud-Anbieter rechnen entweder die reservierte Kapazität oder den tatsächlichen Verbrauch ab. Je höher die Leistung der Ressource, desto höher die Rechnung. Eine Datenbank in einer Premium-Stufe zu haben, ohne sie ausgiebig zu nutzen, ist daher sehr teuer. Auch die Verwendung von Technologien auf andere Weise als vorgesehen wirkt sich negativ auf die Kosten aus.
Rehosten, Replatzieren oder Rearchitekturieren?
Die Art und Weise, wie eine Anwendung gehostet wird, hat einen erheblichen Einfluss auf die Rechnung. Cloud-Anbieter bieten Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) und Software-as-a-Service (SaaS) an. Dienste aus diesen verschiedenen Kategorien haben unterschiedliche Preismodelle.
Jede Anwendung ist einzigartig. Daher benötigen sie möglicherweise alle unterschiedliche Cloud-Migrationsstrategien. Diese Strategie schlägt sich in den monatlichen Hosting-Kosten nieder, da jede Strategie auf einer anderen Kategorie von Cloud-Diensten basiert.
Durch die Nutzung der Infrastructure-as-a-Service-Angebote eines Cloud-Anbieters mit dem sogenannten "Lift-and-Shift"-Ansatz kann ein Unternehmen einfach virtuelle Maschinen in der Cloud bereitstellen und seine Anwendungen darauf hosten.
Alternativ kann sich ein Unternehmen für einen schlankeren Ansatz entscheiden. Durch die Replatzierung einer Anwendung werden minimale Änderungen vorgenommen, damit sie auf Plattformkomponenten des Cloud-Anbieters ausgeführt werden kann. Dies beinhaltet beispielsweise die Containerisierung einer Webanwendung und deren Ausführung in einer Container-Umgebung, während das Database-as-a-Service-Angebot zum Hosten der Datenbank verwendet wird. Dieser Ansatz macht virtuelle Maschinen, die dafür benötigte Rechenleistung und deren Wartung überflüssig. Dadurch werden die Kosten deutlich gesenkt.
Ein häufiger Fallstrick besteht darin, solche Entscheidungen aus einer anwendungszentrierten Perspektive zu treffen. Verschiedene Unternehmen begeben sich auf lange, unvorhersehbare und teure Reisen, um große, monolithische geschäftskritische Anwendungen neu zu erstellen. Solche Neuentwicklungen dauern Jahre und erhöhen die Gesamtbetriebskosten drastisch: Jetzt warten sie zwei große Anwendungen, ohne zusätzlichen Geschäftswert daraus zu ziehen.
In der Regel benötigen nicht alle Teile eines Monoliths ähnliche architektonische Fähigkeiten. Einige Teile müssen möglicherweise skaliert werden, während andere Teile erweiterte Betriebsfunktionen erfordern. Alle diese Funktionen in jedem Teil des Monoliths zu aktivieren, kann ziemlich teuer sein. Deshalb kann es in einigen Fällen sinnvoller sein, die Anwendung zu rearchitektieren und nur bestimmte Teile der Anwendung zu replatzieren und die für einzelne Komponenten geltenden Funktionen zu identifizieren. Dies senkt die Kosten der Replatzierung und ermöglicht es Ihnen, das Beste aus der Migration herauszuholen.
Die Entscheidung, wie eine On-Premise-Anwendung in die Cloud migriert werden soll, ist nicht immer einfach. Welcher Ansatz sinnvoll ist, hängt vom jeweiligen Geschäftsfall ab. Manchmal ist die beste Option das "Lift-and-Shift", in anderen Situationen ist es sinnvoller, kleinere Änderungen an der Anwendung vorzunehmen, um sie für die Cloud kompatibel zu machen, oder in anderen Fällen die Anwendung komplett neu zu architektieren.
Kaufen oder selbst entwickeln?
Ein weiterer interessanter Aspekt der Softwareentwicklung in der Cloud ist die Art der verwendeten Ressourcen. Bei der Arbeit mit On-Premise-Software besteht eine Anwendung typischerweise sowohl aus einer Anwendung als auch aus einer Datenbank, wobei alle Funktionalitäten entweder in die Datenbank oder in die Anwendung programmiert sind.
Cloud-Anbieter bieten auch Software as a Service (SaaS) an und stellen Lösungen für Identitäts- und Zugriffsverwaltung bereit, sodass keine Authentifizierungsfunktionen entwickelt werden müssen. Außerdem gibt es Business-Intelligence-Lösungen zum Erstellen von Dashboards, Bereitstellungsinfrastrukturen für die Softwareentwicklung und vieles mehr. Geschäftsfunktionen können möglicherweise mit nur einem Klick integriert werden.
Software-as-a-Service-Angebote sind teurer als Platform-as-a-Service-Angebote (PaaS). Daher muss immer ein Kompromiss abgewogen werden. Die Frage ist, wann in den Geschäftswert investiert werden soll.
"Wähle dein Gift: Hohe Entwicklungskosten und eine niedrigere monatliche Rechnung oder niedrige Entwicklungskosten und eine höhere monatliche Rechnung?"
Abhängig vom optimalen Zeitpunkt für die Bereitstellung der Software und der erwarteten Nutzung kann es geschäftlich sinnvoll sein oder nicht, Geschäftsfunktionen intern zu entwickeln. Es ist ein unternehmerisches Unterfangen.
Übernimm Verantwortung und nutze deinen gesunden Menschenverstand!
Einige Unternehmen sind auf dem besten Weg, all dies anzuwenden, kämpfen aber immer noch mit hohen Rechnungen.
Aufgrund der Beschaffenheit der Cloud ist die Softwareentwicklung dafür schneller. Kosten werden sofort sichtbar und eine kleine Änderung kann große Auswirkungen auf die Rechnung haben. Das kann schon passieren, wenn man eine schlechte SQL-Abfrage schreibt oder eine Funktionalität in einer Lambda-Funktion oder einer Azure-Funktion implementiert, obwohl sie in einer API hätte implementiert werden sollen.
Deshalb müssen Entwicklungsteams die Verantwortung für ihre Ausgaben übernehmen. Sie müssen vom Entwicklungsteam regelmäßig und proaktiv überwacht werden. Wenn eine unerwartete Kostenentwicklung vorhergesagt wird, sollte das Team darauf reagieren. Möglicherweise erfordert dies die Wahl einer anderen technischen Lösung für ein Problem.
Folglich erfordert dies eine Veränderung in der Organisation. Es beginnt damit, dass Cloud-Abonnements so organisiert werden, dass die Ausgaben pro Team überhaupt erst einmal überwacht werden können. Das Team muss diese aktiv überwachen. Darüber hinaus müssen die Architekten näher am Team sein, wenn nicht sogar in das Team integriert sein, damit das Team eine technische Lösung schnell anpassen kann, wenn sie sich als zu teuer erweist.
Erfolgreiche Teams entwickeln Lösungen unter Berücksichtigung des Budgets und beziehen geschäftliche Überlegungen in den Verfeinerungs- und Priorisierungsprozess ein.
Zusammenfassung
Verschiedene Unternehmen kehren zu ihren lokalen Rechenzentren zurück, weil die Cloud sich als zu teuer herausstellt. Die einfache Migration von On-Premises in die Cloud führte bei ihnen nicht zu Kostensenkungen.
Cloud-Ausgaben, die Markteinführungszeit, technische Designentscheidungen und die Softwarenutzung gehen Hand in Hand. Daher hat die Rentabilität eines Features in jeder Phase des Softwareentwicklungslebenszyklus ihren Platz.
Es geht um Autonomie. Wenn Teams und Architekten effizient zusammenarbeiten, um kosteneffiziente Lösungen zu entwickeln, und wenn Teams diese proaktiv überwachen können, können sie die Cloud-Ausgaben drastisch senken und eine Cloud-Migration sehr profitabel machen.
Interessante weiterführende Artikel:
- Die 6 Rs der Cloud-Migration: cloudacademy.com/blog/the-6-rs-of-cloud-migration/
- Steckt Ihre Cloud-Reise in der Wertelücke fest?: aws.amazon.com/blogs/enterprise-strategy/is-your-cloud-journey-stuck-in-the-value-gap/