Seit langem hören wir, dass die Migration in die Cloud zu Einsparungen von Zehntausenden bis hin zu Millionen von Dollar führen kann, je nach Umfang des Projekts. Cloud-Anbieter konkurrieren mit der Einführung neuer Dienste, die den Migrationsprozess zunehmend automatisieren und damit zur Kostensenkung beitragen. Aber lohnt es sich immer, Ihr System in die Cloud zu migrieren? Ist sie in jedem Fall kosteneffizient? Wann ist es besser, sich für eine Hybridlösung zu entscheiden, und wann ist es am besten, die Cloud ganz zu vermeiden? Worauf bezieht sich die titelgebende "Falle", in die man leicht tappen kann, und wie kann man sie umgehen?
Dies wird kein Leitfaden im Stil von "wenn dies geschieht..., müssen Sie...". So funktioniert es leider nicht, denn Systeme werden mit unterschiedlichen Technologien gebaut, haben einzigartige Architekturen und stellen unterschiedliche Anforderungen. Es ist einfach nicht möglich, einen universellen Leitfaden für alle zu erstellen. In diesem Artikel möchte ich jedoch aufzeigen, was bei der Umsetzung zu beachten ist Cloud-Migration und wann es sich lohnt, Alternativen zur vollständigen Migration zu prüfen, z. B. hybride Cloud-Lösungen.
Warum brauchen wir die Cloud?
Je nachdem, in welchem Entwicklungsstadium sich Ihr Unternehmen und Ihr System befinden, kann die Cloud Ihnen verschiedene Vorteile bieten. Ich verwende absichtlich das Wort "bieten" statt "geben", denn diese Möglichkeiten müssen richtig genutzt werden, idealerweise auf optimale Weise.
AI-Lösungen
Heutzutage sind KI-Modelle aus der Entwicklung nicht mehr wegzudenken, da sie viele Aspekte der Geschäftsabläufe zunehmend automatisieren. Öffentliche Clouds bieten viele KI- und ML-gestützte Lösungen. Sie bieten auch Mechanismen, die die Verwaltung des Modelllebenszyklus erleichtern, bekannt als MLOps.
Die Bereitstellung von Modellen in einer lokalen Umgebung ist möglich, erfordert jedoch aufgrund der erforderlichen Grafikkarten erhebliche finanzielle Investitionen.
Skalierbarkeit der Cloud
Das ist einer der Hauptvorteile von Public Clouds, denn aus unserer Sicht haben wir Zugang zu nahezu unbegrenzten Ressourcen. Wir können die Anzahl der Ressourcen dynamisch an unseren aktuellen Bedarf anpassen. Infolgedessen sind die Betriebskosten des Systems niedriger, da wir keine Hardware im Voraus kaufen müssen.
Die Skalierbarkeit der Cloud erweist sich in den folgenden Fällen als sehr nützlich:
- Saisonalität,
- schneller Markteintritt mit einem neuen Produkt/Dienstleistung,
- Kostenoptimierung durch Verkleinerung.
Kosteneinsparungen
Neben den Einsparungen, die sich aus der Möglichkeit der bedarfsgerechten Skalierung ergeben, können auch Einsparungen bei den Softwarelizenzen erzielt werden, einschließlich der Lizenzen für Datenbanken, Container-Plattformen, Netzwerk-Firewalls und andere.
Bei der Cloud-Migration kann man sich bei relationalen Datenbanken für PostgreSQL entscheiden. Dabei handelt es sich jedoch nicht um eine typische Open-Source-Datenbank, sondern um eine auf Open-Source-Spezifikationen basierende Implementierung eines Cloud-Anbieters. Ähnlich verhält es sich mit Container-Laufzeitplattformen - in öffentlichen Clouds kann man sich für den Kubernetes-Dienst entscheiden, wobei der Cloud-Anbieter die gesamte Kontrollebene und das Worker-Management übernimmt.
Sicherstellung der Geschäftskontinuität
Je nach Art des Unternehmens können Ausfälle von IT-Systemen zu kleineren oder größeren Schäden führen, was das Ausmaß der entgangenen Chancen angeht.
Die Gewährleistung einer hohen Verfügbarkeit in einer lokalen Umgebung ist kostspielig, da Hardware, Kühlsysteme, Stromversorgungen usw. dupliziert werden müssen. In größeren Unternehmen können die Kosten für die Serverräume auf mehrere Abteilungen verteilt werden, aber für kleinere Unternehmen ist es sehr teuer, eine solche Lösung von Grund auf aufzubauen.
Bei öffentlichen Clouds ist die Hochverfügbarkeit teilweise in die Infrastruktur und die Cloud-Plattform integriert.
Globales Engagement
Cloud-Anbieter haben viele Rechenzentren und noch mehr PoPs (Points of Presence). Wenn wir ein System in der Cloud bereitstellen, können wir wählen, in welcher Region es physisch gehostet werden soll. Wir können das System regional oder global betreiben. Die gewählte Lösung wirkt sich auf die Latenzzeit bei der Bereitstellung von Daten an den Endkunden aus.
In diesem Kapitel habe ich Sicherheits- und Compliance-Aspekte absichtlich ausgelassen, da sie eher als Erfordernis zur Erfüllung der von den Regulierungsbehörden in einem bestimmten Markt oder einer bestimmten Region auferlegten Anforderungen zu sehen sind und nicht als greifbare Vorteile, die sie bringen.
Was ist die titelgebende "Falle" und wie kann man sie vermeiden?
Bevor ich auf die besten Gründe für die Migration in die Cloud eingehe und darauf, wann sie sich lohnen kann, muss ich zunächst auf den titelgebenden "Fallstrick" eingehen und erklären, was ich damit meine.
Aus dem vorangegangenen Kapitel könnte man den Eindruck gewinnen, dass die öffentliche Cloud nahezu perfekt ist und dass die Migration eines Systems in die Cloud nur Vorteile bietet. Wie ich jedoch eingangs erwähnt habe, bietet die öffentliche Cloud verschiedene Vorteile, die nur mit dem richtigen Ansatz wirklich effektiv sind.
Mit "Fallstrick" meine ich eine Situation, in der unsere Erwartungen oder Annahmen nicht mit der Realität übereinstimmen. Das passiert, wenn Cloud-Migration nicht die erwarteten Ergebnisse bringt und die Anpassung eines Systems an die Cloud teurer ist als erwartet.
Zu Beginn einer Cloud-Migration muss eine sogenannte "Landing Zone" eingerichtet werden. Dazu gehört die Vorbereitung des Umrisses der künftigen Organisationsstruktur in der Cloud - Zweige/Projekte, die Definition von Benutzergruppen, die Zuweisung entsprechender Berechtigungen, die Konfiguration von Automatisierungs- und Beschränkungsrichtlinien und vieles mehr. Sobald dies erledigt ist, vor allem bei großen und komplexen Organisationen, könnte man meinen, dass das Schlimmste vorbei ist. In Wahrheit steht der größte Teil der Arbeit aber noch bevor.
Cloud-Migration - Klares Geschäftsziel
Die Festlegung von Geschäftszielen, die wir mit der Cloud-Migration erreichen wollen, ist ein grundlegender Schritt, der gleich zu Beginn erfolgen muss. Diese klar definierten Ziele bestimmen die Strategie und die Richtung des gesamten Migrationsprozesses.
Wenn das Unternehmensziel beispielsweise darin besteht, nach Südamerika zu expandieren, wird der Schwerpunkt zunächst auf Aufgaben liegen, die sicherstellen, dass das System auf dem Zielkontinent verfügbar ist. Die Verbesserung anderer Parameter wie Leistung, Skalierbarkeit oder Kostenoptimierung wird weniger im Vordergrund stehen.
Ein anderes Beispiel: Wenn das Unternehmensziel darin besteht, die Wartungskosten um 20% jährlich zu senken, beginnen wir damit, die Systeme mit den höchsten Wartungskosten zu ermitteln und deren Ursachen zu analysieren. Die Lösung könnte eine bessere Nutzung der Hardwareressourcen, eine Verbesserung der Softwareentwicklungsprozesse oder sogar eine Änderung der Systemarchitektur unter Verwendung nativer Cloud-Komponenten beinhalten.
Eine Cloud-Migration ohne klar definierte, messbare Geschäftsziele macht es unmöglich zu beurteilen, ob das Projekt erfolgreich war oder nicht. Während der Durchführung des Projekts gibt es keine Möglichkeit, die Annahmen zu überprüfen und zu bewerten, ob die Arbeiten planmäßig verlaufen.
Ein weiterer Aspekt ist die Sicherstellung, dass sowohl der Investor als auch der Auftragnehmer ein gemeinsames Verständnis der definierten Geschäftsziele haben. Die Festlegung von Erfolgsmaßstäben kann sich als hilfreich erweisen.
Messung der Umsetzung
Um die Erreichung von Unternehmenszielen objektiv bewerten zu können, müssen Messgrößen definiert werden, die eine quantifizierbare Bestimmung ihrer Wirksamkeit ermöglichen.
Bei der Kostenoptimierung könnte die Kennzahl der Betrag der monatlichen Rechnung für den Systembetrieb in der Cloud sein. Bei der Leistung könnte eine wichtige Kennzahl beispielsweise die maximale Kapazität für die Abwicklung des Datenverkehrs sein.
Cloud-Migrationsplan
Mit definierten Geschäftszielen und Messgrößen, die Aufschluss darüber geben, ob das Geschäftsziel erreicht wurde, ist es Zeit für den Migrationsplan.
Das ist mit Sicherheit die schwierigste Aufgabe, und sehr oft kommt ein solcher Plan entweder gar nicht zustande oder ist sehr oberflächlich. Um einen Migrationsplan zu entwickeln, muss im Vorfeld eine Analyse durchgeführt werden, um Fragen wie diese zu beantworten:
- Welche Systeme werden migriert und in welcher Reihenfolge?
- Wie wird sich die Migration auf den Geschäftsbetrieb auswirken?
- Wie wird der Übergangsprozess aussehen?
- Welche Migrationsstrategie ist zu wählen?
- Werden native Cloud-Dienste genutzt?
- Wie wird der Lebenszyklus der Softwareentwicklung (SDLC) verwaltet?
- Ist die derzeitige Systemarchitektur für einen effizienten Betrieb in der Cloud geeignet, oder sind Refactoring oder architektonische Änderungen erforderlich?
- Wie hoch sind die Kosten für architektonische Änderungen?
- Wie hoch werden die Gesamtkosten der Migration sein?
- Wie hoch werden die voraussichtlichen Kosten für den Betrieb des Systems in der Cloud sein?
- Verfügt mein Unternehmen über die notwendigen Kompetenzen, um die Migration durchzuführen und das System später in der Cloud zu warten?
- Gibt es rechtliche/regulatorische Einschränkungen für die Migration eines bestimmten Systems in die Cloud?
Das Fehlen einer genauen Migrationsplan deutet wahrscheinlich auf einen Mangel an Analyse und definierter Architektur für die Ziellösung hin.
Wann lohnt sich eine Migration in die Cloud?
Da wir die Möglichkeiten, Risiken und Gefahren der Cloud kennen, können wir nun zum Kern dieses Artikels kommen und die im Titel gestellte Frage beantworten: Wann ist es sinnvoll, die Möglichkeiten der Cloud zu nutzen?
Ich werde dieses Thema in zwei Teile unterteilen und die Kriterien erörtern, die bei der Migration des gesamten Systems in die Cloud zu berücksichtigen sind. Darüber hinaus werde ich für Fälle, in denen diese Option nicht zur Verfügung steht, alternative Methoden der Cloud-Nutzung untersuchen.
Umstellung des gesamten Systems
Es gibt viele Strategien für die Migration eines Systems in die Cloud, aber alle lassen sich auf drei zentrale Ansätze reduzieren:
- heben und schieben,
- Re-Plattform,
- Umstrukturierung.
Die Kosten für die Migration und den Betrieb in der Cloud hängen von der aktuellen Systemarchitektur und der gewählten Migrationsstrategie ab.
Die billigste Strategie ist Lift & Shift, da das System buchstäblich in seinem jetzigen Zustand in die Cloud übertragen wird. Umgekehrt ist die teuerste Option die Änderung der Systemarchitektur, weil dabei wahrscheinlich viele der Funktionen neu geschrieben werden müssen.
Lift & Shift scheint die optimale Wahl zu sein, aber wenn man die Kosten des Cloud-Betriebs bedenkt, ist die Situation etwas differenzierter:
Wie aus dem obigen Diagramm hervorgeht, ist das auf der Cloud-Native-Architektur basierende System aufgrund mehrerer Faktoren am kostengünstigsten zu warten:
- Eine Cloud-native Architektur besteht häufig aus vielen kleinen Diensten (Microservices), was die effektive Zuweisung der erforderlichen Ressourcen erleichtert. Wenn eine Skalierung erforderlich ist, sind außerdem weniger Dienste erforderlich als bei monolithischen Systemen, was zu einer effizienteren Ressourcennutzung führt.
- Je mehr sich die Architektur der Cloud-Native annähert, desto mehr verlagert sich die Verantwortung für die gesamte Infrastruktur auf den Cloud-Anbieter.
- Die Verwaltung des Lebenszyklus eines Systems mit cloud-nativer Architektur und des gesamten CI/CD-Prozesses ist kostengünstiger als bei monolithischen Systemen.
Generell ist es wichtig, bei der Entscheidung über die Migration zu berücksichtigen, welche Cloud-Dienste wir nutzen können. Wie die obige Abbildung zeigt, sind die Einsparungen und die Flexibilität potenziell umso größer, je weiter rechts sie liegen.
Wann ist eine vollständige Systemmigration in die Cloud kosteneffizient?
- Für neue Systeme, die mit Cloud-Native-Technologie entwickelt wurden. Die Kosten für ihre Migration sind gering, während die Vorteile zahlreich sind.
- Für Lösungen mit unsicherer Marktakzeptanz. Es besteht keine Notwendigkeit, in Hardware zu investieren.
- Für Altsysteme mit einem bestehenden und umgesetzten Plan zur Modernisierung des Technologie-Stacks zur Nutzung von PaaS/SaaS-Diensten.
Teilweise Migration - hybride Wolke
Die Migration in die Cloud bedeutet nicht unbedingt, dass das gesamte System übertragen werden muss, was manchmal sehr kostspielig sein kann. Eine gute Lösung besteht darin, einzelne Anforderungen zu ermitteln, die mit Cloud-Diensten erfüllt werden können.
Datenarchivierung und Backup-Speicherung
Die Speicherung von Daten in der Cloud kann eine sehr kostengünstige Lösung sein. Außerdem erfordert sie keine ständige Planung für den Ausbau unserer Infrastruktur.
Eine geeignete Lösung für diese Anwendungen ist die Objektspeicherung, die theoretisch unbegrenzt skalierbar ist. Außerdem verfügt er über mehrere Schichten, die sich hinsichtlich der Kosten für die Datenspeicherung und den Datenzugriff unterscheiden. Für die Datenarchivierung ist die ideale Lösung die Archivierungsschicht, deren Speicherkosten am niedrigsten sind und auf die nur sehr selten zugegriffen werden muss.
Katastrophenschutzplan (DRP)
Die Nutzung der öffentlichen Cloud kann sich bei der Notfallwiederherstellung als vorteilhaft erweisen. In einem solchen Szenario können alle oder die wichtigsten Dienste eines Systems vorübergehend in der Cloud gestartet werden.
Während die Vorbereitung der Cloud-Einrichtung natürlich Investitionen und Systemtests erfordert, drehen sich die Wartungskosten hauptsächlich um die Datensynchronisation und den Support für eine kleine Anzahl von Diensten.
Erweiterung der Rechenzentrumskapazitäten für saisonale Schwankungen und unvorhergesehene Verkehrsspitzen
Die Cloud ist eine solide Lösung, um die Kapazitäten des Rechenzentrums zu erweitern und sich vor saisonalen Verkehrsspitzen oder solchen zu schützen, die aus geplanten Marketingkampagnen resultieren. Zu diesem Zweck können virtuelle Spot-Maschinen eingesetzt werden, die erhebliche Kosteneinsparungen mit sich bringen, die oft 80% übersteigen. Leider besteht das Risiko, dass der Cloud-Anbieter sie jederzeit zurückfordern kann, da sie Teil seines Inventars sind.