Zum Inhalt springen Weiter zur Suche
Testversion
Blog

Lastausgleich für containerisierte Anwendungen

Mit der Popularität von IaaS-Umgebungen begannen Entwickler, hochverfügbare und skalierbare Anwendungen zu entwickeln, die auf viele virtuelle Maschinen (VMs) verteilt sind, die sich jeweils in verschiedenen Availability Zones befinden. Doch damit begann der Kampf zwischen Agilität und Stabilität. Während die Entwickler, die die Vorteile von IaaS nutzten, agil sein und häufiger bereitstellen wollten, wünschten sich die Betriebsmitarbeiter Stabilität und waren nicht bereit, sich oft oder schnell zu ändern. Probleme im Zusammenhang mit der Paketierung, der Verteilung und der Kompatibilität mit der Laufzeitumgebung trugen zu diesem Streit bei. Zu diesem Zeitpunkt wurde das Konzept der Container von der Transportindustrie auf die Computerbranche übertragen.

Lastausgleich in containerisierten Anwendungen

Die Ausführung von Anwendungen in Containern anstelle von virtuellen Maschinen gewinnt in der IT-Gemeinschaft zunehmend an Bedeutung. Dieses Ökosystem dreht sich derzeit um Docker, eine Plattform für die Verpackung, Verteilung und Verwaltung plattformunabhängiger Anwendungen in Containern. Sobald Sie mit Docker arbeiten, werden Sie schnell feststellen, dass nicht nur Verwaltungsaufgaben mit Containern verbunden sind, sondern auch Anwendungsinfrastrukturdienste benötigt werden, um sicherzustellen, dass Ihre auf Microservices basierenden Anwendungen, die in Containern ausgeführt werden, immer verfügbar, sicher und leistungsfähig sind. Sie wollen Ihre Container auch in einem Cluster oder einer "Flotte" von Servern einsetzen. Sie müssen in der Lage sein, einen einzelnen Microservice innerhalb eines Containers unterbrechungsfrei zu aktualisieren, und Sie brauchen Werkzeuge, die Sie dabei unterstützen. Zusammenfassend lässt sich sagen, dass Sie bei der Bereitstellung von Containern in einem Cluster herausfinden müssen, wie Sie damit umgehen:

  • Lastausgleich von Containern (insbesondere bei mehreren Containern auf einem einzigen Host, auf den über denselben Port zugegriffen wird)
  • Sicherstellung der Kommunikation mit Containern
  • Überwachung von Containern und des Clusters als Ganzes
  • Kontinuierliche Aktualisierung von Mikrodiensten innerhalb von Containern, ohne den Dienst zu unterbrechen (unterbrechungsfreie Aktualisierungen)

A10 Lightning ADC für Docker

Der Lightning® Application Delivery Controller (ADC) optimiert die Bereitstellung und Sicherheit von Cloud-nativen Anwendungen und Services, die über öffentliche oder private Clouds laufen. Er wird als Software-as-a-Service (SaaS) Plattform von A10 Networks angeboten. Für Unternehmen, die sich der Cloud und der Anwendungszentrierung verschrieben haben, steigert Lightning ADC die betriebliche Effizienz, entlastet IT-Administratoren von lästigen Aufgaben und reduziert Risiken.

Mit seiner Controller-basierten Architektur verfügt der A10 Lightning Application Delivery Controller über einen kompakten, effizienten Full Proxy - A10 Lightning Application Delivery Controller - der Cloud-Anwendungen und Microservices vorgelagert ist, um innovativen Layer-4-Load-Balancing und Layer-7-Load-Balancing, einschließlich Traffic-Management mit Content-Switching mit fortschrittlichem Elastic Load-Balancing, Sicherheit und Analytics für Anwendungen in Public Clouds, Private Clouds und Hybrid Clouds zu bieten.

Lightning Application Delivery Controller erweitert außerdem die Unterstützung von Anwendungsdiensten für Microservices-basierte Anwendungen in Docker-Containern. Lightning Controller und Lightning ADC sind für Docker optimiert, und das A10 Lighting Portal bietet eine Reihe von Konfigurationen, die den Einstieg in die Bereitstellung von Anwendungen in einer Docker-Umgebung erleichtern.

Darüber hinaus wird Lightning ADC über das Lightning Portal oder die A10 Lighting APIs verwaltet und kann über den Lastausgleich hinaus problemlos mit zusätzlichen Richtlinien ausgestattet werden, darunter Anwendungssicherheit, Anwendungsbeschleunigung und unterbrechungsfreie Blue-Green-Updates für den Einsatz in Docker-Umgebungen.

A10 Lightning ADC kann diesen gesamten Prozess sehr leicht automatisieren und ist der einfachste Weg für die Anwendungsentwickler, ihre Anwendungen zu optimieren.

Einrichten von Webanwendungen in Containern

Nehmen wir an, wir haben zwei WordPress-Anwendungsserver namens app1 und app2, die an Port 80 laufen. Wenn wir sie in Containern auf demselben Host (VM) bereitstellen, werden ihnen interne IPs und Ports zugewiesen. Diese internen Ports müssen auf Host-Ports abgebildet werden, damit sie von außen zugänglich sind. Da ein TCP-Port nicht zweimal zugewiesen werden kann, müssen die Container wie folgt zwei verschiedenen Host-Ports zugewiesen werden:

  • docker run -p 127.0.0.1:8081:80 xyz/wordpress1
  • docker run -p 127.0.0.1:8082:80 xyz/wordpress2

Das bedeutet, dass Anwendung 1 jetzt an Port 8081 und Anwendung 2 an Port 8082 verfügbar ist. Aber die Benutzer aufzufordern, auf Anwendungen an einem nicht standardmäßigen Port zuzugreifen, ist ein Problem. Diese Einschränkung verhindert, dass mehrere Container auf demselben Host ausgeführt werden können. Wie in diesem Beispiel kann sich immer nur ein Container an Port 80 binden. Dies erschwert auch das Ausrollen neuer Versionen des Containers ohne Ausfallzeiten, da der alte Container gestoppt werden muss, bevor der neue gestartet wird.

Überwindung von Beschränkungen mit A10 Lightning Application Delivery Controller

Docker-Anwendungen mit LADC

A10 Lightning ADC ermöglicht es Ihnen, den Datenverkehr auf einem Port anzunehmen und ihn an Server zu verteilen, die auf anderen Ports laufen. So können Sie mehrere Container auf einem Host laufen lassen, die auf mehrere nicht standardmäßige Ports abgebildet sind. Die folgenden Screenshots zeigen, wie Lightning ADC für dieses spezielle Beispiel konfiguriert wird:

Seite zur Anwendungskonfiguration

Im obigen Screenshot ist Lightning ADC so konfiguriert, dass es den Datenverkehr für app1.xyz.com und app2.xyz.com auf Port 80 (dem Standardport für HTTP) akzeptiert.

Seite Politik

Als Nächstes werden, wie im obigen Screenshot zu sehen, zwei Dienste für die beiden Anwendungen erstellt und der Datenverkehr wird auf der Grundlage der Host-Header-Informationen an den jeweiligen Server-Port weitergeleitet.

Während des Upgrades der Server können neue Container auf demselben (oder einem anderen) Host bereitgestellt werden, und es kann ein Blue-Green-Test mit präziser Traffic-Steuerung konfiguriert werden, um die neue Funktion auf sehr kontrollierte Weise und mit viel Vertrauen einzuführen. Weitere Informationen zum Blue-Green Deployment finden Sie in unserem Beitrag Blue-Green Deployment with Traffic Steering for Phased Rollouts.

Weitere Vorteile des A10 Lightning ADC sind:

  • Vereinheitlichte Dienste: A10 integriert die Implementierung von Anwendungsverfügbarkeit (Lastausgleich), Sicherheit, Leistung und kontinuierlicher Bereitstellung eng miteinander
  • Analysen und Einblicke: Bietet Analysen und einzigartige Einblicke in den Anwendungsverkehr
  • Einfach zu aktivieren: Die Aktivierung des Dienstes dauert weniger als fünf Minuten.
  • Cloud-nativ: Der Dienst von A10 ist vollständig Cloud-nativ und wurde mit Hilfe von Cloud

Vereinbaren Sie einen Termin für eine Demo, um zu sehen, wie A10 Lightning ADC Ihre Anwendungsbereitstellung und andere Anwendungsbereitstellungsdienste vereinfachen kann. Lightning Der Controller ist als SaaS von A10 Cloud verfügbar und Lightning ADC kann überall in einem Docker-Container oder in AWS oder Azure Public Clouds als VM bereitgestellt werden.

Kategorien:


Andrew Hickey
|
April 4, 2015

Andrew Hickey war der redaktionelle Leiter von A10. Andrew Hickey verfügt über zwei Jahrzehnte Erfahrung in den Bereichen Journalismus und Content-Strategie und berichtet über alles, was mit Kriminalität, Cloud Computing und... Mehr lesen