Vom Load Balancer zum SLA-Garanten
Georgeta Toth, Radware
Der gewohnte Weg besteht darin, dedizierte physische Ressourcen für die einzelnen Anwendungen bereitzustellen; dann kann die Leistung jederzeit garantiert werden, und die Einhaltung von SLAs ist – abgesehen von physischen Defekten – normalerweise kein Problem. Dagegen spricht, dass der Nutzungsgrad solcher dedizierten Ressourcen im Durchschnitt bei unter 10 % liegt. Kostensenkungen durch Virtualisierung, Konsolidierung und eine gemeinsam genutzte Cloud-Umgebung erscheint daher auf den ersten Blick sehr attraktiv, ermöglichen diese Lösungen doch die Nutzung eines gemeinsamen Ressourcenbestands durch eine größere Zahl von Anwendungen und damit eine deutlich bessere Auslastung.
Durch Virtualisierung der Rechenzentrumsinfrastruktur und Cloud-Services erfolgt außerdem eine Straffung des langwierigen Prozesses, der mit einer internen Bereitstellung neuer Dienste verbunden ist – Beschaffung und Konfiguration gehören ebenso dazu wie Softwarelizenzierung und Wartung.
Lastenausgleich mit Hindernissen
So macht die Verlagerung in die Cloud einiges einfacher, sie führt letztlich aber auch zu einer neuen Herausforderung: Wenn Anwendungen in einer gemeinsam genutzten Infrastruktur wie der Cloud bereitgestellt werden, kommt es, besonders in Zeiten mit Spitzenauslastungen, zu einer Konkurrenz um die Nutzung des Ressourcenpools. Die Anwendungsleistung kann dadurch sinken und uneinheitlich werden.
Insbesondere bei Web-Anwendungen kommt hinzu, dass Funktionsumfang und Komplexität stetig zunehmen. Die steigende Zahl an eingebetteten Objekten macht die Umsetzung immer träger. Eine Rolle spielen dabei vor allem Bildelemente, CSS und JavaScript-Komponenten, die das Rendering im Webbrowser komplizierter machen. Im Ergebnis wird die Performance von Web-Anwendungen stark beeinträchtigt, und die allgemeine Nutzungsqualität sinkt.
Des Weiteren werden immer mehr Anwendungen auf Mobilgeräten genutzt. Da bei Funknetzen im Vergleich zu drahtgebundenen Netzwerken eine größere Verzögerung auftritt, wird die Anwendungsleistung schwankend und damit unvorhersehbar. Ein Beispiel sind Round-Trip-Verzögerungen: Bei Desktop-Computern kann ein Paketumlauf 20 bis 50 ms dauern; bei mobilen Computern sind Zeiträume bis zu einer ganzen Sekunde möglich.
Nicht zuletzt hat eine zunehmende Zahl von Unternehmen immer häufiger komplexe Angriffe über multiple Vektoren zu bewältigen. Dabei haben sich die Angriffsdauer und das Angriffsvolumen erhöht. Online-Anwendungen dürfen deshalb nicht mehr ungeschützt bleiben. Allerdings ist der Schutz mit Blick auf Bereitstellung, Instandhaltung und Rechenkapazitäten ein recht ressourcenintensives Unterfangen, das praktisch an allen Fronten 100 % erfordert. Wenn bei irgendeinem Aspekt Kompromisse gemacht werden, kann es zu Sicherheitsverstößen und/oder deutlichen Leistungseinbußen kommen. Dies gilt ganz besonders im Angriffsfall, also wenn der Schutz am nötigsten ist.
Schwarz auf Weiß
Dieser Beitrag erschien zuerst in unserer Magazinreihe „Rechenzentren und Infrastruktur“. Einen Überblick mit freien Download-Links zu sämtlichen Einzelheften bekommen Sie online im Pressezentrum des MittelstandsWiki.
Schwierige SLAs für Anwendungen
Alle diese Umstände zusammen führen zu erheblichen Beeinträchtigungen der Anwendungsleistung und dazu, dass Service Level Agreements für Anwendungen nur schwierig zu garantieren sind. Anders als früher geht es bei SLAs nicht mehr nur um Verfügbarkeit; die Vereinbarungen decken inzwischen etliche Dimensionen ab. IT-Teams müssen bei allen Applikationen für die Einhaltung klar definierter SLAs sorgen und dabei nicht nur auf Rund-um-die-Uhr-Verfügbarkeit und verstärkte Nutzung achten. Eine Anwendung, die zwar verfügbar ist, aber eine Reaktionszeit von 30 s hat, hilft in der Regel nicht viel.
Je nach Bedeutung der einzelnen Anwendungen für die Betriebsabläufe kann außerdem eine spezifische SLA-Festlegung erforderlich sein. Bei einem Online-Einzelhändler wären beispielsweise sehr strikte Vorgaben für die Online-Shopping-Anwendung und ein abgeschwächtes SLA für das Mitarbeiterportal denkbar.
Übliche ADCs (Application Delivery Controller) oder Load Balancer arbeiten mit einem Best-Effort-Ansatz: Alle Ressourcen werden von den bereitgestellten Anwendungen gemeinsam verwendet. Da keine isolierten Ressourcen für einzelne Anwendungen verfügbar sind, kann es zu einer Beeinträchtigung der Leistung von benachbarten Anwendungen kommen. Zudem ist eine Verschlechterung der ADC-Gesamtleistung möglich, wenn bei einer Applikation Funktionen oder Services hinzugefügt werden. Will man die Einhaltung von anwendungsspezifischen SLAs garantieren oder gar erweitern, sind daher verschiedene Tools erforderlich, die bei älteren ADCs in der Regel nicht zum Funktionsumfang gehören. Zum Beispiel sind diese meist nicht darauf ausgelegt, die Einhaltung von spezifischen Anwendungs-SLAs zu sichern, weil das System gar nicht alle dafür relevanten Informationen (Transaktionsabschlussverhältnis, Reaktionszeit usw.) hat und weil es auch keine zentralisierte Engine für entsprechende Analysen und Berichte gibt. Dies gilt insbesondere in Umgebungen mit mehreren Anwendungen bzw. Mandanten. Die Ressourcen können nicht anwendungsbezogen gesperrt werden, und es gibt praktisch keine Fehlerisolierung zwischen verschiedenen Applikationen, die demselben ADC zugeordnet sind.
Ein weiteres Problem sind Performance-Einbußen bei Web-Anwendungen, deren Leistung die meisten ADC nicht optimieren können. Durch die Möglichkeit, den Anwendungsserver von SSL- und Komprimierungsaufgaben zu entlasten, kann man zwar das Nutzungsniveau optimieren, die Servicequalität für die Endanwender verbessert sich so aber nicht.
Next-Generation-Appliances wie der Alteon NG 6420 Application Delivery Controller von Radware stellen für geschäftskritische Applikationen verzögerungsfreie Leistung auch unter Last sicher. (Bild: Radware)
Umfassende Steuerung im ADC
Vor diesem Hintergrund ist verständlich, dass moderne Load Balancer oder Application Delivery Controller heute Grund auf darauf ausgelegt sind, bei uneingeschränktem Anwendungsschutz zuverlässig und beständig für die Einhaltung von Anwendungs-SLAs zu sorgen. IT-Teams müssen damit ihre Anwendungs-SLAs festlegen, überwachen und aktiv durchsetzen können. Dabei müssen die Systeme alle Aspekte berücksichtigen, die Auswirkungen auf die Performance der Applikationen haben, und daher ein entsprechend breites Spektrum von Funktionen abdecken. Das reicht von WPO (Web Performance Optimization) über APM (Application Performance Monitoring), WAF (Web Application Firewall) und Authentifizierungsgateway, ADoS-Schutz (Advanced Denial of Service) und ITM (Intelligent Traffic Management) bis zu Bandbreitenverwaltung und einer hohen SSL- und Komprimierungskapazität.
Das Management von anwendungsbezogenen SLAs ist nur möglich, wenn ausreichend detaillierte Informationen dazu vorliegen. Taps oder Software-Agenten in allen Anwendungsservern sorgen für diese Visibility, sind aber kostspielig und erhöhen die Komplexität. Integriert man dagegen eine solche Struktur in den ADC, ergeben sich einige Vorteile. Denn Performance-Daten, beispielsweise zur Rechenzentrumsleistung, Netzwerkleistung und Endnutzerservicequalität, werden in verschiedenen Teilen der Anwendungsbereitstellungskette erfasst. In Kombination mit einer fortschrittlichen, zentralisierten Reporting Engine kann ein solcher APM-Service ein starkes Tool sein, das alle Leistungs- und SLA-Aspekte transparent macht. Sowohl die Anwendungsadministratoren als auch die Netzwerkverwalter erhalten damit die Möglichkeit, Leistungsprobleme schnell zu erkennen und zu beheben.
APM mit SharePath-Server: Bericht zur bisherigen Performance mit genauer Übersicht zu den einzelnen Segmenten der Anwendungsbereitstellung. (Bild: Radware)
Schneller und kompakter liefern
Da die Größe und die Komplexität von Webseiten zunehmen, kommt es – speziell in mobilen Umgebungen – durch Latenz und Rendering-Dauer oft zu erheblichen Verzögerungen. Deshalb geht es im Bereich der Web Performance Optimization heute vor allem darum, den Code von Webseiten zu optimieren, sodass sich das Rendering im Client-Browser beschleunigt. Durch automatisiertes Umschreiben von HTML-Code in Echtzeit und die Kombination von Web-Objekten im Load Balancer selbst können Seiten für verschiedene Browser von Desktop-Computern und Mobilgeräten kompiliert und optimiert werden. Der Aufwand einer manuellen Optimierung entfällt, und die Qualitätssicherungskosten sinken.
Zum Beispiel kann man ähnliche Objekte (Bilder, CSS, JavaScript-Komponenten etc.) automatisch konsolidieren, um die Zahl der Browser-Anfragen pro Seite und auch die Paketumlaufzeitverzögerungen zu reduzieren. Intelligentes lokales Caching vermeidet dabei, dass Endbenutzer Objekte mehrmals vom Server herunterladen; gleichzeitig bleibt garantiert, dass immer die aktuellen Inhalte bereitgestellt werden. So verkürzt sich die Reaktionszeit von Anwendungen, und der Server wird von Browser-Anfragen entlastet.
Manche ADCs können anhand der erfassten Informationen auch ganz gut vorhersagen, welche Inhalte sich Online-Besucher wahrscheinlich als Nächstes ansehen werden. Die relevanten Seitenelemente einer bestimmten Abfolge können dann vorab in den Browser-Cache geladen werden, sodass sie lokal bereitstehen. Das verkürzt die Reaktionszeit für Transaktionen, die mehrere Seiten umfassen.
Auch fortschrittliche Inhaltsmanipulationen können Server und Endgerät entlasten, ohne die Anwendung zu beeinträchtigen. So lässt sich beispielsweise durch Entfernen und Reduzieren redundanter Daten der Umfang von Webseiten verringern. Und wo Mobilgeräte mit kleinerem Anzeigebereich Bilder anfordern, kann man deren Größe automatisch entsprechend anpassen lassen, um so die Dateigröße zu reduzieren und das Rendering zu erleichtern.
Alarm bei merkwürdigem Traffic
Da der ADC sich an einer strategisch wichtigen Stelle der Anwendungsbereitstellungskette befindet und den gesamten anwendungsbezogenen Datenverkehr überwacht, spielt er auch eine zunehmend wichtige Rolle bei der Abwehr von DoS-Angriffen. Intelligente Lösungen erfassen dabei zunächst verschiedene Traffic-Parameter (Bandbreite, PPS, CPS, CEC etc.) und ADC-Statusparameter (CPU-Auslastung, Netzwerktabellenkapazität etc.) unter üblichen Bedingungen und leiten daraus eine Basis für normalen Datenverkehr ab. Anomalien durch Cyberangriffe sind dann deutlich erkennbar. Die Angriffsabwehr kann dann unter Einsatz eines Defense-Messaging-Mechanismus erfolgen. Zusätzlich kann der ADC Informationen über den erkannten Angriff zurück an die anderen Komponenten der AMS-Lösung senden. Auf diese Weise wird der Angriff bereits am Edge blockiert und von den Anwendungen ferngehalten. Volumetrische Angriffe können bei fortschrittlichen ADCs zudem an ein Scrubbing Center in der Cloud umgeleitet werden, sodass eine Überlastung der Internet-Anbindung im Unternehmen vermieden wird.
Bereits heute umfassen viele ADCs Web-Application-Firewall-Dienste, die jedoch zusammen mit anderen Diensten der Schichten 4 bis 7 auf demselben ADC-Gerät integriert sind. Durch den gemeinsamen Zugriff auf die Computing-Ressourcen kommt es insgesamt zu Leistungseinbußen – und es besteht die Gefahr von SLA-Verstößen. Um dies zu vermeiden, setzen modernere Ansätze auf eine echte Multi-Application-Architektur, in die eine WAF integriert ist. Nun können dem WAF-Modul eigene Ressourcen zugeordnet werden, sodass SLAs von benachbarten Anwendungen ebenso wenig beeinträchtigt werden wie andere ADC-Services. Ähnlich wie beim Umgang mit DoS-Attacken können dann auch Informationen über Angriffe auf Anwendungsebene an die Abwehrsysteme am Edge oder in der Cloud übermittelt werden, um ein Vordringen zum Netzwerk des Rechenzentrums und die Gefährdung weiterer Geräte (Firewalls, Router und ADCs) in der Anwendungsbereitstellungskette zu vermeiden.
Fehlerisolierte ADC-Instanzen
In komplexeren Netzwerken ist auch beim Einsatz von Load Balancern kaum überschaubar und zu steuern, wie sich die Applikationen gegenseitig beeinflussen. Letztlich nimmt bei den älteren Systemen eine überlastete Anwendung die Systemressourcen einer anderen Anwendung in Beschlag. Benötigt werden daher fehlerisolierte ADC-Instanzen mit Virtualisierung und der Bindung von Rechnerressourcen an die einzelnen virtuellen Instanzen. Dann entstehen mehrere vollständig autonome ADC-Instanzen, möglicherweise auch mit unabhängigen Betriebssystemversionen, Prozessorkernen, Speicherelementen, Netzwerkstacks und Managementkontrollsystemen. Auf diese Weise lassen sich die SLA-Vorgaben für jede ADC-Instanz immer erfüllen und Ressourcen für einzelne Dienste wie APM und WAF garantieren. Zudem kann man – ohne dass es zu Leistungsbeeinträchtigungen kommt – mit solchen Lösungen fortschrittliche Webdienste ausführen.
Georgeta Toth ist Regional Director DACH bei Radware. Das Unternehmen ist ein weltweit führender Lösungsanbieter im Bereich Anwendungsbereitstellung und Cybersicherheit für virtuelle, cloudbasierte und softwaredefinierte Rechenzentren. Das Portfolio des Unternehmens sorgt für eine zuverlässige Quality of Service unternehmenskritischer Anwendungen bei maximaler IT-Effizienz.
Radware GmbH, Robert-Bosch-Str. 11a, 63225 Langen, Tel.: 06103-70657-0 info_de@radware.com, www.radware.com