Mobile-Menu

Skalierung durch ADC-Lösungen Cloud Native Load Balancing – Ohne „Multi-Tenant“ nur die Hälfte wert

Von Sebastian Scheele 6 min Lesedauer

Anbieter zum Thema

ADC-Lösungen und Load Balancer sollten Multi-Tenant-fähig sein, auf Microservices ausgerichtet sein und entsprechende Automatisierung ermöglichen, um Anwendungen für die Aufgaben moderner Rechenzentren zu unterstützen.

Cloud-native, Multi Tenancy, Microservices-Orchestrierung – Die Anforderungen an Next-Generation Application Delivery und Load Balancer sind hoch.(Bild:  © Rymden - stock.adobe.com)
Cloud-native, Multi Tenancy, Microservices-Orchestrierung – Die Anforderungen an Next-Generation Application Delivery und Load Balancer sind hoch.
(Bild: © Rymden - stock.adobe.com)

Im Laufe der Jahre hat sich die Anwendungsarchitektur von Client/Server-Systemen von serviceorientierten bis hin zu cloudnativen Microservices entwickelt. Diese Verbesserungen haben erhebliche Auswirkungen auf die Methoden der Anwendungsentwicklung und die Ansätze für Skalierbarkeit, Sicherheit und vor allem für die Bereitstellung von Anwendungen auf Seite der Kunden. Leider ist der aktuelle Stand der ADC-Lösungen (Application Delivery Controller), auch bekannt als Load Balancer, unzureichend.

Die Nachfrage nach Services hat sich weiterentwickelt und was früher nur einen einzigen Dienst erforderte, nimmt heute gleich mehrere verschiedene Services in Anspruch. In dieser neuen Ära inflationärer Services wird es für IT-Teams immer schwieriger, das Lifecycle-Management von Anwendungen effektiv zu handhaben: Wenn moderne ADC-Lösungen nicht auf Microservices ausgerichtet sind und über entsprechende Automatisierung verfügen, die über APIs, Automatisierungs- und Orchestrierungs-Frameworks zur Bereitstellung, Konfiguration und Verwaltung dieser Microservices zur Verfügung stehen, können neue Probleme auftreten.

Tools zur Erstellung von Containern und Orchestrierungs-Tools

Mit der zunehmenden Verbreitung von Microservices tauchten Tools wie Docker, Docker Swarm und Kubernetes auf, um die Bereitstellung und Skalierung zu vereinfachen. Docker revolutionierte die Container-Erstellung und ermöglichte konsistente Umgebungen für Entwicklung und Produktion. Docker Swarm erweiterte dann das Angebot, indem es natives Clustering und Orchestrierung bereitstellte und die horizontale beziehungsweise vertikale Skalierung auf der X- und der Y-Achse für einfachere Anwendungen anbot.

Die Technologie von Kubernetes hat diese Fähigkeiten weiterentwickelt und bietet jetzt robuste Orchestrierung, Management und Skalierbarkeit für komplexe, verteilte Architekturen von Microservices. Mit seinen leistungsstarken Funktionen wie zum Beispiel automatischer Skalierung, Self-Healing und fortlaufenden Updates wurden viele Herausforderungen im Zusammenhang mit der Bereitstellung und Verwaltung von Microservices in großem Maßstab bewältigt. Dies hat Kubernetes zur branchenweit führenden Plattform für die Bereitstellung und Verwaltung von Microservices gemacht.

Herausforderungen im Umgang mit Kubernetes

Kubernetes vereinfacht zwar die Orchestrierung und Verwaltung von containerisierten Anwendungen erheblich, bringt aber auch neue Herausforderungen mit sich - insbesondere in Multi-Cluster- und Multi-Tenant-Umgebungen. Kubernetes bietet Schnittstellen für das Layer-4- und Layer-7-Load Balancing in Form von Services und Ingresses. Diese bieten jedoch nur begrenzte Möglichkeiten und hängen vom Cloud-Anbieter oder Ingress-Anbieter ab, um sie vollständig zu implementieren. Dadurch sind Nutzer bei fortgeschrittenen Funktionen wie Traffic Splitting, Traffic Shaping und Beobachtbarkeit auf den jeweiligen Anbieter angewiesen.

Die Verwaltung des Netzwerkverkehrs, die Gewährleistung der Sicherheit von Anwendungen und die Aufrechterhaltung einer hohen Performance bei verschiedenen Clustern und Clouds können komplex und ressourcenintensiv sein. Herkömmliche Load Balancer weisen oft Schwierigkeiten dabei auf, mit der Dynamik von Microservices Schritt zu halten, was zu Ineffizienzen und erhöhtem betrieblichen Aufwand führt. Diese Herausforderungen verdeutlichen den Bedarf an einer verbesserten Lösung zur effektiven Verwaltung der Datenebene und zur optimierten Bereitstellung von Anwendungen in cloudnativen Umgebungen.

Da die Anwendungen im Laufe der Zeit immer komplexer und umfangreicher werden, können einige geschäftskritische Anwendungen besondere Multi-Cluster erforderlich machen. Um diese Herausforderungen in den Griff zu bekommen, haben Unternehmen damit begonnen, Architekturen von Multi-Kubernetes-Clustern einzuführen. Durch die Bereitstellung mehrerer Kubernetes-Cluster in verschiedenen Regionen, Verfügbarkeitszonen oder bei verschiedenen Cloud-Anbietern erreichten die Unternehmen dann eine höhere Fehlertoleranz sowie eine bessere Performance und Compliance.

Dies brachte wiederum neue Herausforderungen mit sich wie zum Beispiel die Verwaltung verschiedener Cluster, die Sicherstellung konsistenter Richtlinien und die Bereitstellung einer nahtlosen Kommunikation zwischen Anwendungen, die auf mehreren Clustern gehostet werden. Kubernetes verfügt nicht von Haus aus über diese Fähigkeiten und erfordert deshalb den Einsatz von zusätzlichen Tools, um diese Anforderungen in den Griff zu bekommen.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Netzwerktechnik, IP-Kommunikation und UCC

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Einführung von Load-Balancern, die Multi-Tenant-tauglich sind

KubeLB von Kubermatic ist ein Beispiel für einen Multi-Tenant-fähigen Load Balancer. Es handelt sich um eine softwarebasierte Plattform, um Anwendungen der nächsten Generation mit integrierter Analytik bereitzustellen, die sichere, zuverlässige und skalierbare Netzwerkdienste für Cloud-Anwendungen bietet. Das Herzstück von KubeLB besteht aus einer revolutionären, auf SDN (Software Defined Networking)-Prinzipien basierenden Architektur, die die Datenebene von der Steuerungsebene trennt: Dies bedeutet eine Branchenneuheit für Application Delivery Controller und Load Balancer.

KubeLB ermöglicht die nahtlose Skalierung von Services, um Anwendungen innerhalb und zwischen Rechenzentren und Cloud-Standorten bereitzustellen, wobei die Verwaltung und Steuerung zentral erfolgt. Der Load Balancer funktioniert als Service, so dass mehrere Nutzer die gleiche Software verwenden können. Er erkennt die komplette Nutzerumgebung und handelt dementsprechend.

Verteilte Architektur und Bereitstellung von Anwendungen auf Basis von Analytics

Die von den leistungsstarken Cilium- und Envoy-Elementen eingerichteten und verteilten Load Balancer stellen umfassende Services für die Erbringung von Anwendungen bereit, wie zum Beispiel Load Balancing, Beschleunigung und Sicherheit von Anwendungen. Cilium und Envoy können mit Anwendungen innerhalb von und über Cloud-Standorte hinweg zusammengelegt und für eine höhere Leistung kombiniert werden.

Indem die umfangreichen Services der Daten-, Kontroll- und Management-Ebenen von KubeLB verwendet werden, können Cilium und Envoy in der Nähe der Microservices der Anwendung platziert und zusammengefasst werden, um eine höhere Performance und schnellere Client-Reaktionen zu erzielen. Die integrierten Daten-Kollektoren erfassen End-to-End-Timing, Metriken und Protokolle für jede Transaktion zwischen Benutzer und Anwendung. Sie liefern damit verwertbare Erkenntnisse über die Erfahrung der End-User, die Performance der Anwendungen, die Auslastung der Infrastruktur und anomale Verhaltensweisen, die dann für eine verbesserte Architektur der bereitgestellten Anwendungen verwendet werden können.

Wenn die Nachfrage nach einer bestimmten Microservice-Anwendung steigt, ermöglicht die verteilte Architektur von KubeLB die automatische Skalierung der KubeLB Service Engines ohne menschliches Eingreifen. Die KubeLB-Engines überwachen ständig die Transportmuster jeder Microservice-Anwendung. Wenn ein (einstellbarer) Schwellenwert erreicht wird, bewältigen die neu skalierten Cilium- und Envoy-Elemente die steigende Verkehrslast problemlos. Darüber hinaus können die internen Analytic Engines auf der Grundlage der Umgebungslast einen Trigger senden, um die Anwendungen im Backend-Microservice-Bereich hoch- oder herunterzuskalieren.

Load Balancer und Application Delivery Controller (ADCs) müssen sich weiterentwickeln, um Anwendungen für die Aufgaben moderner Rechenzentren zu unterstützen. Jede Gruppe von Cilium und Envoy kann mit einem bestimmten Mandanten verknüpft werden, so dass in einer mandantenfähigen Umgebung der Datenverkehr für eine bestimmte Anwendung auf seine Cilium- und Envoy-Gruppe beschränkt ist. KubeLB kann mehrere Gruppen von Cilium und Envoy verwalten. Der rollenbasierte Mechanismus für die Zugriffskontrolle von Kubernetes stellt sicher, dass Benutzer, die bei einem bestimmten Mandanten angemeldet sind, nur seine besonderen Details sehen können.

Fazit

Die Architektur, mit der Anwendungen heute entwickelt werden, hat sich von zweckgebundenem, monolithischem („shrink-wrapped“) Code und entsprechenden Produkten hin zu einer eng zusammenhängenden Sammlung modularer und wiederverwendbarer Microservices entwickelt. Es scheint so zu sein, als ob App-Entwickler dazu übergegangen sind, einen gemeinsamen Satz von Lego-Bausteinen zu verwenden, um eine beliebige Anzahl von webbasierten Anwendungen zu bauen, die nur durch ihre Vorstellungskraft begrenzt sind.

Die Umstellung auf die Entwicklung von Microservice-Apps bedeutet für Netzwerk-Teams, dass ihre bisherigen Annahmen zu Verkehrsmustern, Skalierung von Load Balancing und Service-Anforderungen nicht mehr gültig sind.

Ein höheres Maß an netzwerkweiter Intelligenz und eine neue Architektur für die Bereitstellung von Anwendungen, die die Microservice-Apps widerspiegelt, sind erforderlich. KubeLB ist ein elastisch skalierbarer Load Balancer mit einer verteilten Datenebene. Er kann Anwendungen über verschiedene Standorte vor Ort und in der Cloud verteilen, bedienen und skalieren. Die verteilte Datenebene ermöglicht es den Kunden, eine Anwendungsaffinität auf der Ebene der Microservices von Anwendungen zu erreichen und damit die Gesamtleistung der Anwendungen erheblich zu verbessern. Darüber hinaus erlaubt die saubere Trennung der Ebenen auch die Schaffung einer einheitlichen, zentralisierten Steuerungsebene.

Sie verringert erheblich die betriebliche Komplexität, die mit der Integration, dem Betrieb und der Verwaltung jeder einzelnen ADC-Appliance an verschiedenen Standorten verbunden ist. Zusammenfassend lässt sich sagen, dass KubeLB ein hochflexibler, kostenorientierter, skalierbarer und effizienter Load Balancer ist, der sich besonders für Dienstleister im Multi-Tenant-Bereich eignet.

Der Autor
Sebastian Scheele ist CEO und Mitbegründer von Kubermatic.

Bildquelle: Kubermatic

(ID:50210390)