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.
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.
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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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.
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.
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).
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.
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.
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.
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.
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:
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.
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.
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.
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.
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.
Automatisieren Sie die Software-Bereitstellung für jede Anwendung On-Premises, in der Cloud oder auf dem Mainframe.
Verwenden Sie DevOps-Software und -Tools, um cloudnative Anwendungen für mehrere Geräte und Umgebungen zu erstellen, bereitzustellen und zu verwalten.
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.