Heutzutage kann man kaum noch einen Tech-Blog lesen, ohne einen Artikel zu finden, der die Vorzüge von Multi-Cloud-Architekturen lobt. Dafür gibt es gute Gründe: Multi-Cloud bietet eine Reihe von Vorteilen, von Kosteneinsparungen bis hin zu erhöhter Zuverlässigkeit und mehr.
Allerdings bringen Multi-Cloud-Strategien auch einige Herausforderungen mit sich, nicht zuletzt, wenn es um die Anwendungsbereitstellung geht. Bevor Sie auf den Multi-Cloud-Zug aufspringen, müssen Sie die Auswirkung einer Multi-Cloud-Architektur auf Ihre Bereitstellungsstrategie bewerten und sicherstellen, dass Sie bereit sind, die Schwachstellen zu beheben.
In diesem Artikel werden allgemeine Bereitstellungsherausforderungen in Multi-Cloud-Umgebungen beschrieben und Tipps zu deren Bewältigung gegeben.
Wenn Sie über mehr als eine Cloud verfügen, müssen Sie mehr als eine Umgebung bereitstellen, bevor Sie Anwendungen darin bereitstellen können.
Bis zu einem gewissen Grad können Infrastructure-as-Code (oder IaC)-Tools dazu beitragen, diesen Prozess zu optimieren. Sie können eine IaC-Vorlage verwenden, um mehrere Clouds auf die gleiche Weise bereitzustellen.
Allerdings sind dem Beitrag von IaC bei dieser Herausforderung Grenzen gesetzt. Wenn Sie ein IaC-Tool verwenden, das von einem bestimmten Cloud-Anbieter bereitgestellt wird, bietet es möglicherweise wenig oder keine Kompatibilität mit anderen Clouds. Sie müssen daher möglicherweise für jede Cloud ein anderes IaC-Tool verwenden, was den Zweck von IaC teilweise zunichte macht. Selbst wenn Sie über ein IaC-Tool verfügen, das mit allen Ihren Clouds funktioniert, müssen Sie Ihre Konfigurationen wahrscheinlich manuell anpassen, da Sie nicht für jede Cloud genau dieselbe Vorlage verwenden können.
In Situationen, in denen IaC Ihre Herausforderungen bei der Bereitstellung mehrerer Clouds nicht lösen kann, ist der Einsatz einer Lösung, die Workloads vollständig von den zugrunde liegenden Clouds abstrahiert, ein besserer Ansatz. Auf diese Weise müssen Sie sich nicht darum kümmern, jede Cloud separat bereitzustellen.
Wie die Bereitstellung kann auch der eigentliche Bereitstellungsprozess Ihrer App kompliziert sein, wenn Sie Instanzen in mehreren Clouds bereitstellen. Jede Cloud erfordert einen anderen Bereitstellungsprozess.
Sie können versuchen, mithilfe von Release-Automatisierungstools von Drittanbietern Anwendungsinstanzen automatisch in jeder von Ihnen genutzten Cloud bereitzustellen. Dadurch wird der Vorgang vereinfacht, aber wie bei IaC-Tools müssen Sie wahrscheinlich einige manuelle Änderungen vornehmen, da Sie nicht für die Bereitstellung in jeder Cloud genau dieselbe Konfiguration verwenden können.
Auch hier geht eine Lösung, die Workloads von den Clouds abstrahiert, die sie hosten, und einen vollständig konsistenten Bereitstellungsprozess über mehrere Clouds hinweg bietet, weiter als Release-Automatisierungstools und mildert die Herausforderungen der Bereitstellung für eine Multi-Cloud-Architektur.
Wenn Sie mehrere Instanzen Ihrer Anwendung auf mehreren Clouds hosten, wie stellen Sie sicher, dass jede davon das optimale Datenverkehrsaufkommen bewältigt? Wie vermeiden Sie, zu viel Datenverkehr auf eine Cloud zu leiten, während die andere Cloud ungenutzt bleibt? Woher wissen Sie, wann Sie eine Instanz hinzufügen oder entfernen müssen?
Dies sind wichtige Fragen. Wenn Sie die Lasten in Ihrer Multi-Cloud-Architektur nicht richtig verteilen können, kann es zu Leistungsproblemen kommen und Sie verschwenden Geld – und das ist genau das Gegenteil von dem, was eine Multi-Cloud-Architektur leisten soll.
Leider sind diese Fragen in einer Multi-Cloud-Umgebung sehr schwer zu beantworten. Da die Cloud-Anbieter selbst keine Lastausgleichslösungen anbieten, die mit den Clouds anderer Anbieter funktionieren, müssen Sie jede Cloud separat und sorgfältig überwachen, um zu bestimmen, wie der Datenverkehr zwischen den verschiedenen Clouds und Anwendungsinstanzen ausgeglichen wird.
Durch die Verwendung einer gemeinsamen Netzwerk- und Überwachungsplattform, die in mehreren Clouds bereitgestellt werden kann, sowie eines Application Delivery Network, das Verbindungen herstellt und Lasten automatisch ausgleicht, können Sie diese Herausforderungen vermeiden und sicherstellen, dass Sie tatsächlich in den Genuss der Vorteile kommen, die Multi-Cloud-Strategien bieten sollen.
Cloud-Anbieter sind gierig. Sie möchten, dass Ihre Arbeitslasten und Daten für immer in ihren Clouds bleiben. Wenn Sie Daten auslagern, also einen Datenausgang durchführen, fallen erhebliche Gebühren an.
Dies bedeutet, dass eine Multi-Cloud-Architektur, bei der Daten häufig von einer Cloud in eine andere verschoben werden müssen, Ihre Cloud-Computing-Rechnung aufgrund der Austrittsgebühren erheblich erhöhen kann.
Grundsätzlich können Sie dieses Risiko mindern, indem Sie Ihre Multi-Cloud-Architektur so gestalten, dass Daten nicht häufig zwischen Ihren verschiedenen Clouds verschoben werden müssen. Vermeiden Sie beispielsweise eine Situation, in der sich Ihre Anwendung in einer Cloud befindet, die Daten, die sie aufnehmen muss, jedoch in einer anderen gehostet werden, da dies eine umfangreiche Datenbewegung zwischen den Clouds erfordern würde.
Eine weitere hilfreiche Strategie ist die Verwendung eines Application Delivery Network, in dem einige Ihrer häufiger verwendeten Daten gespeichert werden. Ein Application Delivery Network bietet nicht nur eine Reihe weiterer Sicherheits- und Leistungsvorteile, sondern kann auch die Häufigkeit reduzieren, mit der Anwendungen in einer Cloud Daten in eine andere oder aus einer anderen Cloud verschieben müssen. Stattdessen können sie Datenspeicher innerhalb des Application Delivery Network verwenden.
Es ist schon schwierig genug, den Überblick über eine einzelne Cloud zu behalten. Wenn Sie mehr als eine Cloud im Einsatz haben, wird die Überwachung aller beteiligten Dienste und Konfigurationen zu einer wahrhaft monumentalen Aufgabe.
Tools zur Anwendungsleistungsüberwachung (APM), die für die Unterstützung von Multi-Cloud-Umgebungen entwickelt wurden, können bei dieser Aufgabe etwas hilfreich sein. Aber sie bringen Sie nur bis zu einem gewissen Punkt. Sie werden benachrichtigt, wenn bei einer Ihrer Anwendungen ein Problem aufzutreten scheint. Sie müssen jedoch selbst herausfinden, welche Cloud bzw. Clouds das Problem verursachen und es dann mit den für die jeweilige betroffene Cloud verfügbaren Tools lösen.
Alternativ können Sie Ihre Workloads von den zugrunde liegenden Clouds abstrahieren, sodass Sie nur eine „logische Cloud“ und einen Satz Bereitstellungstools überwachen müssen. Dieser Ansatz reduziert die Anzahl der beweglichen Teile, mit denen Sie sich auseinandersetzen müssen, um die Transparenz Ihrer Anwendungen und Infrastruktur aufrechtzuerhalten.
Die Verwaltung von Anwendungsbereitstellungen in einer Multi-Cloud-Architektur ist naturgemäß schwierig. Verschiedene Arten von Automatisierungstools können zwar dabei helfen, Aufgaben wie Bereitstellung, Einsatz und Überwachung zu rationalisieren, sie machen manuelle Arbeit jedoch nicht völlig überflüssig.
Anstatt zu versuchen, Ihre Herausforderungen bei der Multi-Cloud-Bereitstellung mit verschiedenen Tools zu lösen, besteht ein besserer Ansatz darin, die Art und Weise zu ändern, wie Sie Ihre Multi-Cloud-Architektur selbst entwerfen. Durch den Einsatz von Lösungen wie VoltMesh und VoltConsole können Sie Anwendungen konsistent und zentral über mehrere Clouds hinweg bereitstellen und verbinden und gleichzeitig das globale Application Delivery Network von Volterra nutzen, um die Workload-Leistung und -Sicherheit zu optimieren.