2023
April
28
2023

Load-Balancer "as a Service"

Um eine möglichst hohe Verfügbarkeit eines Online-Service sicherzustellen, braucht es Vorkehrungen auf verschiedenen Ebenen. Redundanz – sozusagen ein direkt eingebauter "Plan B" – spielt dabei eine zentrale Rolle. Statt alles selbst zu engineeren, können Sie mit unserem neuen Load-Balancer-Service ab sofort auf einem ausgeklügelten Setup aufbauen, um die kontinuierliche Verfügbarkeit Ihres Online-Service mit Hilfe von Redundanz zu optimieren.

Von Fail-Over zu Load-Balancing

Bei cloudscale.ch sind wir seit jeher bestrebt, die Verfügbarkeit unserer Infrastruktur zu maximieren und so den unterbruchsfreien Betrieb Ihrer virtuellen Server zu gewährleisten. Dennoch bleiben Ausfälle möglich; hinzu kommen geplante Unterbrüche, z.B. wenn Sie Ihre eingesetzte Software aktualisieren. Mit Floating IPs steht Ihnen schon bisher ein Mechanismus zur Verfügung, um den Service aus Sicht Ihrer Nutzer verfügbar zu halten: automatisiert oder manuell kann die IP-Adresse, zu welcher die Nutzer sich verbinden, von einem auf einen anderen virtuellen Server umgezogen werden, der die Verarbeitung der Anfragen sicherstellt, während der ursprüngliche Server offline ist.

Unser neues Load-Balancer-Angebot geht hier noch einen Schritt weiter: Anders als mit einer blossen IP-Adresse ist nicht nur das Umschwenken des eingehenden Traffics von einem auf den anderen Server möglich, sondern der Load-Balancer kann ankommende Connections – und damit die Rechenlast – kontinuierlich auf zwei oder mehr virtuelle Server verteilen. Zusätzliche Health-Checks prüfen periodisch den Zustand der virtuellen Server; reagiert einer nicht mehr wie erwartet, wird er aus der Rotation genommen und der eingehende Traffic unter den verbliebenen, korrekt funktionierenden Servern verteilt. Anders als mit einer Floating IP ist es zudem möglich, für unterschiedliche TCP-Ports jeweils ein separates Set von Servern zu konfigurieren, welche die Requests verarbeiten.

Redundanz auch beim Load-Balancer selbst

Damit der Load-Balancer nicht selbst zum Single Point of Failure wird, handelt es sich in Wirklichkeit um ein Paar von Load-Balancern, die auf unterschiedlicher Hardware laufen. Von aussen sichtbar ist die "virtuelle IP-Adresse", die – ähnlich einer Floating IP – jeweils einem der beiden Load-Balancer zugewiesen ist und automatisch zum anderen Load-Balancer wechselt, wenn beim ersten ein Problem erkannt wird. Während es schon bisher möglich war, ein solches Setup mit zwei zusätzlichen virtuellen Servern und einer Floating IP in Eigenregie aufzubauen, reduziert sich der Aufwand mit unserem Load-Balancer-Service enorm: einmal konfiguriert, verrichtet der Load-Balancer seinen Dienst, ohne dass Sie sich um das Scripten von Checks und Fail-Overs oder um die Wartung von zusätzlichen Servern kümmern müssen.

Bitte beachten Sie, dass die virtuelle IP-Adresse (VIP) an den jeweiligen Load-Balancer gebunden ist und beim Löschen des Load-Balancers ebenfalls gelöscht wird. Um Ihren Service für die Nutzer unter einer gleichbleibenden IP-Adresse anzubieten, empfehlen wir Ihnen, auch bei Load-Balancern zusätzlich eine Floating IP zu verwenden. Floating IPs (nicht jedoch Floating Networks) können übrigens auch zwischen virtuellen Servern und Load-Balancern umgezogen werden – so lösen Sie einen einzelnen Server nahtlos durch ein Load-Balancer-Setup ab.


Einige Hinweise

Das Erstellen und Konfigurieren von Load-Balancern ist derzeit nur via API möglich. Die Erweiterungen unseres Go SDK, des Terraform-Providers und der Ansible Collection, die auf unserer API aufbauen, werden in den nächsten Tagen veröffentlicht. Bestehende Load-Balancer werden zudem in unserem webbasierten Cloud Control Panel angezeigt; die Konfiguration auf diesem Weg ist für einen späteren Zeitpunkt eingeplant. Die nötigen API-Calls zur Verwendung unseres Load-Balancer-Service sind selbstverständlich in unserer API-Dokumentation ausführlich beschrieben, zudem finden Sie dort Beispiel-Requests und -Responses zu jedem unterstützten Call. Beachten Sie bitte, dass die API-Spezifikation aktuell noch als "Beta" gekennzeichnet ist; wir behalten uns vor, hier noch Anpassungen vorzunehmen, die zum momentanen Stand nicht vollständig kompatibel sind.

Die virtuellen Server, zu denen eingehende Connections verteilt werden sollen, müssen vom Load-Balancer aus zwingend über ein privates, gemanagtes Netz erreichbar sein. Für den Load-Balancer selber werden zwei verschiedene Use-Cases unterstützt: Er kann mit einer öffentlichen IP-Adresse (VIP) erstellt werden und so Requests aus dem Internet entgegennehmen, oder aber die VIP befindet sich selbst bereits in einem privaten Netz, so dass der Load-Balancer z.B. für Services innerhalb eines Kubernetes-Clusters genutzt werden kann.


Mit Load-Balancern "as a Service" können Sie ab sofort auf ein bewährtes Konzept setzen, ohne sich selbst um dessen Einzelteile zu kümmern. Indem eingehender Traffic ganz automatisch immer zu einem funktionierenden System geleitet wird, optimieren Sie ganz einfach die Verfügbarkeit Ihrer Online-Services für Ihre Nutzer. Zuverlässigkeit – as a Service.

Unser Engineering für Ihre VIP.
Ihr cloudscale.ch-Team

Zurück zur Übersicht