Sergey Nivens - stock.adobe.com
Load Balancing für eine Hybrid-Cloud-Architektur optimieren
Load Balancing spielt eine wichtige Rolle, um die Anwendungsverfügbarkeit und hohe Performance in einer Hybrid Cloud sicherzustellen. Mit unseren Regeln machen Sie alles richtig.
Eine Hybrid Cloud soll nicht die Wahl zwischen zwei IT-Umgebungen lassen, sondern sie miteinander verschmelzen. Die Anwender erwarten, dass eine Hybrid-Cloud-Architektur einen lückenlosen Pool von Ressourcen bietet, in dem Anwendungen je nach Verfügbarkeit, Load- und Compliance-Richtlinien bereitgestellt oder erneut bereitgestellt werden können.
Um die Quality of Experience (QoE) für eine Hybrid-Cloud-Anwendung sicherzustellen, müssen Operations-Teams Cloud Bursting unterstützen. Zu diesem Zweck müssen die Teams ebenfalls Load Balancing instanzenübergreifend zur Verfügung stellen, was in der Hybrid Cloud eine komplizierte Angelegenheit sein kann.
Ein Load Balancer ist ein Netzwerk-Tool, um die Last zu verteilen. Ein Endnutzer verbindet sich mit der Port-Seite des Load Balancers, während die skalierten Komponenten der Anwendung sich mit der Trunk-Seite verbinden. Wenn die Anfrage eines Endanwenders eintrifft, leitet der Load Balancer sie zu einer Komponente weiter, die auf einem Fair-Scheduling-Algorithmus basiert. Public-Cloud-Provider, zum Beispiel AWS, Google und Microsoft Azure, bieten Tools für Load Balancing auf ihren Plattformen an. Doch in einer Hybrid-Cloud-Architektur müssen Sie auch die Load Balancer in Ihrem Data Center richtig konfigurieren und verwalten.
Obwohl dieser Balanceakt eine Herausforderung darstellen kann, gibt es drei generelle Fragen, die als Richtschnur für eine Load-Balancing-Strategie in einer Hybrid Cloud dienen können – und drei Regeln, die Ihnen bei deren erfolgreicher Implementierung helfen.
Drei Fragen als Leitfaden
Damit ein Load Balancer funktioniert, muss er sich mit den Endnutzern und den skalierten Anwendungskomponenten verbinden. Daher lautet die erste Frage, die Sie stellen müssen: Wie adressieren Sie die Ports und Trunk des Load Balancers?
Wenn Sie Anwendungskomponenten hinzufügen oder entfernen, müssen Sie ebenfalls die Trunk Ports hinzufügen und entfernen. Falls eine Komponente ausfällt und ersetzt wird, müssen Sie die Trunk-Port-Adresse dieser Komponente aktualisieren. Das ist für viele Unternehmen ein Problem, denn Load Balancer sind häufig Teil der Netzwerk-Middleware. In einer Hybrid-Cloud-Architektur müssen Sie angesichts des Umstands, dass das Data Center und die Cloud wahrscheinlich unterschiedliche Software verwenden, herausfinden, wie das funktionieren soll.
Die zweite Frage lautet: Wie werden Sie die Performance und QoE managen? Es ist unwahrscheinlich, dass Sie in der Public Cloud die gleichen Netzwerkverbindungen und die gleiche Netzwerk-Performance wie in Ihrem Data Center vorfinden – oft sind sie sich noch nicht einmal ähnlich. Viele Unternehmen, darunter auch jene, die das öffentliche Internet nutzen, verfügen über relativ langsame Verbindungen zur Public Cloud. Die Latenz und Performance des Netzwerks kann variieren, so dass die Leistung neuer Komponenteninstanzen schwanken wird, je nachdem, ob sie sich in der Cloud oder im Data Center befinden. Diese Schwankungen können zum Problem werden und außerdem die Kapazitätsplanung kompliziert machen.
Die dritte Frage lautet: Wie gehen Sie mit dem Problem der Zustandskontrolle um? Die meisten Geschäftsanwendungen sind transaktional. Das bedeutet, sie enthalten mehrere Nachrichten in einem bestimmten Dialog zwischen einem User und einer App. Bei Load Balancing könnten Nachrichten im Zusammenhang mit einer spezifischen Transaktion an verschiedene Komponenten gesendet werden. Falls diese Komponenten zustandsbehaftet sind (das heißt, sie erwarten, Transaktionen als Ganzes zu verarbeiten), kann das Ergebnis ein Softwarefehler oder eine beschädigte Datenbank sein.
Drei Regeln als Grundlage für Ihre Strategie
Um diese Herausforderungen zu meistern, empfiehlt es sich, eine richtlinienbasierte Skalierbarkeit in Ihre Hybrid-Cloud-Architektur zu implementieren. Eine bestimmte Komponente sollte generell innerhalb ihrer nativen Hosting-Umgebung skalieren, wann immer möglich. Nur bei einem Ausfall oder fehlenden Ressourcen sollte die Skalierung zwischen der Cloud und dem Data Center stattfinden.
Planen Sie die Kapazitäten Ihrer Verbindung mit Public-Cloud-Services sorgfältig, um Workflows abzuwickeln, die zwischen der Cloud und dem Data Center hin- und herwechseln müssen. Beschränken Sie die Zahl der Fälle, in denen die Public Cloud und das Data Center gegenseitig als Backup dienen. Somit können Sie die Anforderungen hinsichtlich der Konnektivität zwischen beiden besser einschätzen und sicherstellen, dass die Recovery-Strategie Ihres Data Centers nicht einfach nur ein Cloud-Verbindungsproblem nach sich zieht.
Versuchen Sie, die Komponenten innerhalb von begrenzten Ressourcen-Pools zu skalieren, etwa einem einzelnen Data Center, eng miteinander verbundenen Data Centern oder einem einzelnen Cloud-Provider. Dieser Ansatz erhöht sehr wahrscheinlich die Stabilität der Performance und erleichtert es, einen Load Balancer mit den Adressen neuer Komponenten zu aktualisieren.
Zweitens: Konzipieren Sie Ihre Anwendungen so, dass die Frontend-Verarbeitung in der Cloud stattfindet. Viele Unternehmen verfolgen bereits diesen Ansatz, der aber nicht universell ist. Bei einer Frontend-Verarbeitung in der Cloud nutzen Sie die Skalierbarkeit und Load Balancing Services der Cloud dort, wo sie die größte Wirkung entfalten – bei der Verbindung der Endanwender. Dieses Modell ermöglicht darüber hinaus, dass sich Multi-Message-Transaktionen zu einer einzigen Nachricht zusammenfassen lassen, wodurch das Problem der Zustandskontrolle entfällt.
Die dritte Regel sieht vor, dass Sie Ihren Load Balancer auf Zugänglichkeit und Verfügbarkeit trimmen. Wenn Sie ein Cloud-Frontend besitzen, sollte sich der Load Balancer in der Cloud befinden. Wenn Sie die Lastverteilung für Data-Center-Komponenten vornehmen, stellen Sie den Load Balancer in das Data Center. Auf diese Weise fällt es auch leichter, Load Balancer zu aktualisieren, so dass sie eine Verbindung mit allen von ihnen unterstützten Komponenten herstellen können.
Die Verfügbarkeit von Load Balancern ist von entscheidender Bedeutung und wird gern übersehen. Die meisten Cloud-Provider legen ihre Load Balancer auf eine hohe Verfügbarkeit aus. Wenn Sie Ihre eigenen Load Balancer einsetzen, müssen Sie für die Verbindung mit einer neuen Instanz des Load Balancers sorgen, falls die alte Instanz ausfällt.
Virtualisierung in jeder Form fördert die Skalierbarkeit. In dem Maße, wie Container-Orchestratoren, etwa Kubernetes, und andere Hosting-Tools sich verbessern, dürfen wir mit mehr Load-Balancing-Optionen rechnen – aber auch mit einem höheren Risiko, dass nicht alles reibungslos in einer Hybrid-Cloud-Architektur funktionieren wird. Doch wenn Sie die genannten Regeln anwenden, sollten Sie in der Lage sein, mit etwaigen Skalierungsproblemen in der Zukunft richtig umzugehen.
Folgen Sie SearchNetworking.de auch auf Twitter, Google+, Xing und Facebook!