Was ist ein Application Delivery Controller (ADC)?

22. Mai 2024

Autoren

Chrystal R. China

Writer, automation & ITOps

Michael Goodwin

Editorial lead, Automation & ITOps

Was ist ein Application Delivery Controller (ADC)?

Ein Application Delivery Controller (ADC) ist ein Netzwerkgerät, das zur Optimierung der Bereitstellung von Anwendungen über das Internet eingesetzt wird, normalerweise als Teil eines Application Delivery Network (ADN).

Ein ADC kann eine Hardware-Appliance oder ein Softwareprogramm sein und wird in der Regel in der entmilitarisierten Zone (DMZ) eines Unternehmensnetzwerks platziert, zwischen der Firewall und einem oder mehreren Anwendungsservern. ADCs dienen als Reverse Proxys, die Client-Anfragen empfangen, entschlüsseln, validieren und weiterleiten, bevor sie verschlüsselte Antworten an den Benutzer zurücksenden.

ADCs helfen Unternehmen bei der Modernisierung von Netzwerkanwendungen, der Beschleunigung von Verbindungen zwischen Client-Rechnern und Webservern, der Rationalisierung der globalen Serverlastverteilung (Global Server Load Balancing, GSLB) und der Erhöhung der Gesamtverfügbarkeit von Anwendungen für Endbenutzer.

Luftaufnahme einer Autobahn

Bleiben Sie in der Cloud

Abonnieren Sie den wöchentlichen Think-Newsletter und erhalten Sie Tipps von Experten zur Optimierung von Multi-Cloud-Einstellungen in Zeiten von KI.

ADCs und Load Balancer

Die Entwicklung von Application Delivery Controllern ist eng mit der Entwicklung von Webanwendungen, Rechenzentren und dem breiteren Feld des Netzwerkmanagements verbunden.

In den späten 1990er und frühen 2000er Jahren, als das Internet kommerzialisiert wurde und der Datenverkehr im Internet immer mehr zunahm, brauchten Unternehmen eine Möglichkeit, um sicherzustellen, dass Websites und Anwendungen den hohen Anwendungsdatenverkehr effizient bewältigen konnten. Die größte Herausforderung bestand darin, eine Möglichkeit zu finden, eingehende Anfragen auf mehrere Server zu verteilen, um eine hohe Verfügbarkeit und Ausfallsicherheit des Netzwerks zu gewährleisten.

Die erste Generation von Geräten, die sich dieser Herausforderung stellten, wurden Load Balancer genannt. Ursprünglich waren sie einfach und arbeiteten auf der Transportschicht. Load Balancer konzentrieren sich auf die Verteilung des eingehenden Datenverkehrs auf mehrere Server, um die Last auszugleichen und zu verhindern, dass ein einzelner Server überlastet wird.

Mit der zunehmenden Komplexität von Anwendungen und Websites fielen die alten Load Balancer jedoch in Ungnade, da sie nicht in der Lage waren, den Inhalt von Benutzeranfragen (und nicht nur IP-Adressen und Ports) zu lesen und entsprechende Entscheidungen zu treffen. Dies veranlasste die Entwickler, auf Lösungen für den Lastausgleich auf Layer 7 umzusteigen, die den Inhalt von Nachrichten auf der Anwendungsebene prüfen können.

Fortgeschrittene Load Balancer könnten den Datenverkehr auf der Grundlage von Faktoren wie HTTP-Headern, Cookies oder sogar bestimmten Seitenanfragen weiterleiten und so ausgefeiltere Strategien zur Verwaltung des Datenverkehrs wie Sitzungspersistenz (oder „Stickiness“) und inhaltsbasiertes Routing ermöglichen. Im Laufe der Zeit, als die Entwickler immer mehr Funktionen hinzufügten, wurden diese Load Balancer zu den intelligenten Controllern, die wir heute ADCs nennen.

IBM DevOps

Was ist DevOps?

Andrea Crawford erklärt, was DevOps ist, welchen Wert DevOps hat und wie DevOps-Praktiken und -Tools Ihnen dabei helfen, Ihre Anwendungen durch die gesamte Delivery Pipeline der Softwareentwicklung von der Idee bis zur Produktion zu bringen. Das von führenden IBM Experten geleitete Programm soll Führungskräften das nötige Wissen vermitteln, um Prioritäten für KI-Investitionen zu setzen, die zu mehr Wachstum führen.

Was macht ein Application Delivery Controller?

Moderne Application Delivery Controller sind wichtige Komponenten von stabilen, hochverfügbaren IT-Infrastrukturen, insbesondere von Netzwerkrechenzentren. Sie verwalten den App-Verkehr mithilfe einer Reihe komplexer Prozesse und Funktionen, die einen effizienten und sicheren Datenfluss zwischen Client-Geräten und Backend-Servern gewährleisten. Zu den Funktionen gehören:

Lastausgleich

Eine der Hauptfunktionen eines ADC ist die Verteilung des eingehenden Datenverkehrs auf mehrere Server (Lastausgleich) auf der Grundlage von Algorithmen wie Least Connections, Round-Robin und Server-Reaktionszeit. Wenn ein Server überlastet ist oder offline geht, leitet der ADC den Datenverkehr auf andere Server um, um zu verhindern, dass der ungesunde Server zu einem Engpass wird, sodass die Netzwerkleistung und das Benutzererlebnis nicht (oder nur minimal) beeinträchtigt werden.

Load Balancer sorgen auch für die Sitzungspersistenz, indem sie sicherstellen, dass die Sitzungsdaten eines Benutzers zwischengespeichert werden und während der gesamten Interaktion auf demselben Server verbleiben.

Mit Global Server Load Balancing (GSLB), oft auch Load Balancing für Load Balancer genannt, können ADCs Anfragen auf mehrere Server an verschiedenen geografischen Standorten verteilen, so dass Benutzer automatisch zum nächstgelegenen oder leistungsstärksten Rechenzentrum weitergeleitet werden.

TLS- und SSL-Offloading

Die Verarbeitung von Transport Layer Security (TLS) und Secure Sockets Layer (SSL) kann manchmal die Ressourcen eines Webservers belasten. Beim SSL-Offloading ersetzen ADCs Backend-Server und fungieren als SSL- oder TLS-Endpunkte, um die Ver- und Entschlüsselung zu verwalten. Dadurch werden CPU-Ressourcen für die Verarbeitung von App-Daten freigesetzt und die Serverleistung verbessert.

TCP-Multiplexing

ADCs optimieren Netzwerkverbindungen durch den Einsatz von TCP-Multiplexing-Prozessen, die zahlreiche clientseitige TCP-Verbindungen (durch Pooling oder Wiederverwendung) zu einer geringeren Anzahl von serverseitigen Verbindungen konsolidieren. Mithilfe einer Reihe von dauerhaften Serververbindungen kann die ADC Client-Anfragen dynamisch über diese Verbindungen verteilen, um den Server-Overhead zu reduzieren.

Caching von Inhalten

ADCs können häufig angeforderte Inhalte (z. B. Bilder, Videos und Websites) in der Nähe des Benutzers zwischenspeichern, sodass sie nicht wiederholt von den Webservern erzeugt oder abgerufen werden müssen. Diese Caching-Richtlinien können die Verarbeitungslast auf den Ursprungsservern erheblich reduzieren und die Antwortzeiten der Server für die Endbenutzer verbessern.

Inhaltskomprimierung

ADCs komprimieren Webinhalte (z. B. HTML, CSS und JavaScript), bevor sie an den Client gesendet werden. Dadurch wird der Bandbreitenbedarf reduziert und die Bereitstellung von Inhalten beschleunigt, insbesondere für Benutzer mit langsameren Internetverbindungen.

Anwendungssicherheit

ADCs umfassen häufig DNS-Anwendungs-Firewalls und Web Application Firewalls (WAFs), die vor gängigen Sicherheitslücken wie SQL-Injection, Cookie Poisoning, Cross-Site Scripting (XSS) und anderen Angriffen auf der Anwendungsebene schützen, indem sie den eingehenden Datenverkehr auf bösartige Muster untersuchen und potenziell schädliche Anfragen blockieren.

ADCs können auch dazu beitragen, Anwendungen vor Distributed Denial-of-Service (DDoS)-Angriffen zu schützen, indem sie bösartigen Datenverkehr herausfiltern, bevor er die Anwendungsinfrastruktur überlastet. Mit App-spezifischen Zugriffskontrollen, Protokollen zur Ratenbegrenzung und Funktionen zur Bot-Verwaltung tragen ADCs maßgeblich zur Schaffung von Zero-Trust -Architekturen bei und verhindern Netzwerkmissbrauch und Angriffe.

Datenverkehrs-„Shaping“

ADCs priorisieren den Datenverkehr, um sicherzustellen, dass kritische Anwendungen auch in Spitzenzeiten die benötigte Bandbreite erhalten, damit zeit- und geschäftskritische Daten schneller durch das Netzwerk gelangen. Mithilfe von QoS-Richtlinien (Quality of Service) können ADCs auch bei der Verwaltung der Bandbreite helfen und Netzwerküberlastungen verhindern.

Zentrale Authentifizierung

ADCs können mit Verzeichnisdiensten (wie einem lokalen Active Directory) interagieren, um den Zugriff auf Benutzeranwendungen zu kontrollieren und zentrale Authentifizierungspunkte für die Überprüfung der Client-Authentifizierung und -Autorisierung bereitzustellen. Sie unterstützen auch neuere Protokolle wie Multi-Faktor-Authentifizierung (MFA) und Single Sign-On (SSO) für verbesserte Netzwerksicherheit.

ADCs in cloudnativen Umgebungen

Die Verlagerung hin zu cloudnativen Anwendungen hat dazu geführt, dass Application Delivery Controller sich weiterentwickeln müssen,um containerisierte Umgebungen und Microservices-Architekturen zu unterstützen. Obwohl hardware- und softwarebasierte ADCs in vielerlei Hinsicht immer noch effektiv sind, wurden herkömmliche ADCs für monolithische Anwendungen entwickelt und haben oft Schwierigkeiten, mit der dynamischen Natur der heutigen cloudnativen Anwendungen Schritt zu halten.

Um dieses Problem zu lösen, haben Service Provider wie Citrix, VMWare, Amazon Web Services (AWS), Microsoft Azure und IBM u.a. cloudnative ADCs (in Form von IaaS, PaaS und SaaS) entwickelt, die erweiterte Agilität, Skalierbarkeit und Automatisierungsfunktionen bieten. Moderne ADCs sind so konzipiert, dass sie sich nahtlos in die APIs von Cloud-Providern und Container-Orchestrierungstools (wie Kubernetes) integrieren lassen, um überlegene Funktionen für Service-Erkennung, automatische Skalierung und Datenverkehrsmanagement zu bieten.

ADC-Anwendungsfälle

Obwohl sie ursprünglich als einfache Load Balancer konzipiert waren, haben sich die Application Delivery Controller immer wieder an die dynamischen Anforderungen von IT-Infrastrukturen und Anwendungsbereitstellungslösungen angepasst. Die ADCs von heute sind vielseitige Plattformen für die Bereitstellung von Anwendungen, die Leistung, Sicherheit und Optimierung der Bereitstellung von Anwendungen in komplexen Multicloud-Umgebungen bieten.

Jedes Unternehmen, das ein großes, komplexes oder verteiltes Content Delivery Network (CDN) betreibt, kann ADCs einsetzen, um sicherzustellen, dass die Netzwerkanwendungen durchgehend verfügbar sind und eine gute Leistung erbringen.

ADCs können Unternehmen bei Folgendem unterstützen:

Globaler Serverlastenausgleich

ADCs können den Netzwerkverkehr auf Server-Cluster in Rechenzentren im gesamten Netzwerk umleiten. Insbesondere können sie mit anderen ADCs zusammenarbeiten, um den Pfad zu optimieren, den der Datenverkehr durch das Internet nimmt. So kann jeder ADC Anfragen an das dem Client am nächsten gelegene Rechenzentrum weiterleiten und die Latenz und die Roundtrip-Zeit minimieren.

Verbindungsverwaltung

ADCs behandeln schnelle und langsame Clients, indem sie Timeouts und Puffergrößen entsprechend anpassen. Controller können auch Verbindungen beenden, um nicht benötigte Ressourcen freizugeben, und Verbindungen multiplexen, um die Netzwerkeffizienz zu erhöhen.

Zustandsüberwachung

ADCs überwachen kontinuierlich den Echtzeitzustand von App-Servern, um sicherzustellen, dass der Datenverkehr nur an reaktionsschnelle und verfügbare Server weitergeleitet wird. Sie können Webserver anpingen, versuchen, TCP-Verbindungen herzustellen und Anfragen auf Anwendungsebene stellen, um zu überprüfen, ob ein Server optimal funktioniert.

Wenn ein Server ausfällt oder suboptimal funktioniert, kann der ADC den Datenverkehr auf andere Server umleiten und sogar Server-Neustarts und andere Wiederherstellungsmaßnahmen einleiten (vorausgesetzt, sie sind entsprechend konfiguriert).

Multi-Tenant-Unterstützung

Multitenancy-Konzepte ermöglichen es verschiedenen Gruppen innerhalb eines Unternehmens (DevOps, Marketing und Vertrieb oder bestimmten Anwendungsteams wie Kundenservice, Bestand und Zahlungen), dieselbe Anwendungsinfrastruktur gemeinsam zu nutzen. Die Konsolidierung von mehr Services auf weniger Geräten – ob virtuell oder physisch – hilft Unternehmen, ihre Netzwerkflexibilität zu erhöhen und die Kosten für Verwaltung, Anschaffung und laufenden Support zu senken.

ADCs im Edge Computing

Edge Computing beinhaltet die Verarbeitung von Daten in der Nähe der Quelle (am Rande des Netzwerks), anstatt sich ausschließlich auf ein zentrales Rechenzentrum zu verlassen. ADCs, die am Netzwerkrand bereitgestellt werden, können den lokalen Datenverkehr optimieren, lokale Sicherheits- und Compliance-Richtlinien verwalten und sicherstellen, dass Anwendungen auch in verteilten Umgebungen effizient funktionieren. Dies ist besonders nützlich für IoT -Anwendungen und -Services, die Echtzeit-Verarbeitungsfunktionen erfordern.

Integration mit softwaredefiniertem Networking (SDN)

ADCs sind inzwischen programmierbarer und lassen sich leichter in SDN-Architekturen integrieren, die die Steuerungsebene des Netzwerks von der Datenebene trennen, um eine zentralisiertere, flexiblere Ressourcenverwaltung zu ermöglichen. ADCs können jetzt mit Software-Controllern dynamisch konfiguriert und verwaltet werden und ermöglichen so flexiblere Reaktionen auf Schwankungen im Netzwerkverkehr und auf die Anforderungen von Anwendungen.

Maschinelles Lernen (ML) und KI-Funktionen

Künstliche Intelligenz (KI) und ML-Technologien können ADCs dabei unterstützen, Datenverkehrsmuster vorherzusagen, potenzielle Sicherheitsbedrohungen zu erkennen und Aufgaben der Netzwerkverwaltung zu automatisieren. Dadurch wird die Effizienz verbessert und der Bedarf an menschlicher Interaktion mit dem Netzwerk verringert.

Vorteile von ADCs

Application Delivery Controller helfen Unternehmen bei der Optimierung des Datenverkehrs-Routings und der Maximierung der Netzwerkverfügbarkeit, insbesondere für Unternehmen, die ein hohes Volumen an Webverkehr verarbeiten, geschäftskritische Anwendungen hosten oder ein hohes Maß an Datensicherheit benötigen.

ADCs bieten Unternehmen:

Analysen in Echtzeit

ADCs sammeln Daten zu einer Vielzahl von Metriken (z. B. Datenverkehrsaufkommen, Serverzustand und Sicherheitsereignisse), die Unternehmen einen Einblick in die Netzwerkfunktionalität geben können.

Beschleunigung der Anwendung

ADCs verwenden eine Vielzahl von Techniken, wie z. B. Content Switching, um Daten zu komprimieren, zu recyceln und zwischenzuspeichern und so Netzwerk-Apps und Websites zu beschleunigen.

Verbesserte App-Leistung

ADCs können die verfügbaren Anwendungsservices automatisch erweitern, um ein hochleistungsfähiges Routing des Datenverkehrs zu gewährleisten, insbesondere für Netzwerke mit hoher Latenzzeit und mobile Netzwerke.

Automatisierte Notfallwiederherstellung

ADCs bieten Failover-Funktionen, um sicherzustellen, dass ein Unternehmen seinen Betrieb aufrechterhalten kann und die Benutzer nur minimale Verzögerungen erfahren, wenn ein Server ausfällt. ADCs duplizieren und synchronisieren Benutzersitzungen auf verschiedenen Servern, sodass die Ausführungsverantwortung auf ein Sitzungsduplikat übergehen kann, wenn ein Server offline geht.

Stärkere Netzwerksicherheit

ADCs bieten die erste Verteidigungslinie gegen bösartige Angriffe, indem sie WAFs sowie Funktionen zur Erkennung und Prävention von externen Angriffen zum Schutz von Netzwerkdaten einsetzen.

Weiterführende Lösungen
IBM DevOps Accelerate

Automatisieren Sie die Software-Bereitstellung für jede Anwendung On-Premises, in der Cloud oder auf dem Mainframe.

DevOps Accelerate erkunden
DevOps-Lösungen

Verwenden Sie DevOps-Software und -Tools, um cloudnative Anwendungen für mehrere Geräte und Umgebungen zu erstellen, bereitzustellen und zu verwalten.

DevOps-Lösungen erkunden
Cloud-Beratungsleistungen 

Schalten Sie mit IBM Cloud Consulting Services neue Funktionen frei und steigern Sie die geschäftliche Agilität. Entdecken Sie, wie Sie mit Hybrid-Cloud-Strategien und Expertenpartnerschaften gemeinsam Lösungen entwickeln, die digitale Transformation beschleunigen und die Leistung optimieren können.

Cloud-Services
Machen Sie den nächsten Schritt

Erschließen Sie das Potenzial von DevOps, um sichere cloudnative Anwendungen mit kontinuierlicher Integration und Bereitstellung zu entwickeln, zu testen und bereitzustellen.

DevOps-Lösungen erkunden DevOps in Aktion entdecken