Effizientes Cloud-APM für maximale Anwendungsleistung einrichten

Mit unseren Tipps zu Cloud-APM (Application Performance Management) holen Sie die maximale Leistung aus Cloud-basierten Applikationen.

IT-Profis wissen natürlich, wie Sie das volle Potential aus der Cloud schöpfen können. Dazu muss man sich auf das Benutzen von Anwendungen fokussieren, die speziell für die Funktionen und Möglichkeiten der Cloud optimiert wurden. Allerdings müssen sich Entwickler mit speziellen Problemen, wie zum Beispiel Application Performance Management (APM) im Hinblick auf die Cloud beschäftigen.

Cloud-APM setzt ein Designen von Cloud-Applikationen voraus. Weiterhin müssen Sie den Einsatz der Cloud gut planen, um die Performance unter Kontrolle zu haben. Danach folgt die Adaption der Laufzeitumgebung bezüglich der Cloud-Komponenten. Dies kann sowohl Cloud-gehostete als auch damit verbundene APM-Elemente involvieren. Letztendlich müssen Sie das alles unter einen Hut bekommen und in eine Cloud-basierte Performance-Management-Architektur integrieren.

Workflow-Flaschenhälse mit RESTful bekämpfen

Es gibt einen Unterschied zwischen dem Einsatz einer Cloud-spezifischen Applikation und der Migration einer herkömmlichen. Dieser liegt in der Möglichkeit, die Cloud-Charakteristiken in das Applikations-Design aufzunehmen. Die Erfahrung zeigt, dass eine gute und speziell für die Cloud entwickelte Applikation eine Komponenten-Struktur aufweist. Das wiederum erleichtert die Replikation von Komponenten, um den Workloads Rechnung zu tragen.

Die meisten IT-Architekten wissen, dass bestimmte Bereiche in Applikations-Workflows sehr wahrscheinlich zu Flaschenhälsen werden können. Wenn Sie Replikation und Load-Balancing einsetzen, wird das die Performance erheblich verbessern. Beim Design von Cloud-spezifischen Applikationen ist es wichtig, diese Flaschenhals-Kandidaten in Komponenten aufzuteilen.

Beim Design von Cloud-spezifischen Applikationen ist es wichtig, diese Flaschenhals-Kandidaten in Komponenten aufzuteilen.

Im Anschluss folgt das Design: Stellen Sie sicher, dass replizierbare Komponenten mit RESTful-Schnittstellen ausgestattet werden. Möglich sind auch Datenbank-betriebene Wiederherstellungs-Prozesse im Backend. Diese Optionen sind auf jeden Fall statischer Logik vorzuziehen. Eine Komponente lässt sich nicht einfach replizieren, wenn Sie Daten in einer Transaktion Schritt für Schitt verarbeitet. Das Gleiche gilt für Load-Balancing.

Es ist wichtig, dass jede Komponente ihren Bearbeitungsstatus mit jedem neuen Signal erhält. Somit stellen Sie sicher, dass sich die Laufzeit in den Instanzen einer wichtigen Komponente verlängert oder verkürzt. Dies wirkt sich mehr als alles andere auf die Antwortzeiten aus.

Allerdings bedeuten replizierbare Komponenten natürlich noch keine Replikation während der Laufzeit. Wo immer sich Komponenten hinsichtlich Performance- oder Verfügbarkeits-Management replizieren lassen, sollte hinter diesen unbedingt eine elastische Load-Balancing-Funktion stehen. Diese kann nicht nur Arbeit der wichtigen Komponenten auf verschiedene Instanzen aufteilen, sondern auch neue Instanzen erschaffen und alte bei einer Änderung der Last beenden.

Basiert die Cloud-Applikation auf Message-Bus/Service-Bus-Software, lässt sich das in die Bus-Architektur einbauen. Falls dem nicht so ist, beinhalten die meisten Cloud-Betriebssysteme und viele virtuelle Netzwerk-Architekturen Load-Balancing.

Die Lasten und die Hosting-Standorte verteilen

Je nach Umfang des Cloud-Ressourcen-Pools und der Verteilung der Applikations-Anwender, kann das Positionieren von Load-Balancing-Funktionen ein schwieriges Unterfangen sein. Vor allen Dingen wenn Sie „Hairpin"-Routen des Netzwerk-Traffics vom Anwender durch den Load-Balancer zur Komponenten-Instanz vermeiden wollen.

Gibt es einen einzelnen WAN-Gateway für den Traffic in Richtung Cloud, sollten Sie den Load-Balancer in dessen Nähe positionieren. Ist das nicht der Fall, gibt es immer eine optimale Stelle für das Load-Balancing im Hinblick auf die Verteilung der Anwender. Das gilt ebenso für den Ort des Komponenten-Hostings.

Natürlich können Sie Anwender nicht nach Gutdünken versetzen. Deswegen sollten Sie die Aufteilung der Hosting-Orte beim Einsatz neuer Kopien der wichtigen Komponenten sorgfältig aussuchen. Das vermeidet Ineffizienz beim Datenfluss. Allerdings ist das leichter gesagt als getan. Diese Maßnahmen verlangen normalerweise Optimierungsebenen in den Hosting-Lokationen, die in der Regel in den Software-Tools für Cloud-Deployment nicht enthalten sind. Unter Umständen wollen Sie diese Möglichkeiten in die Applikation selbst implementieren.

Traditionelle Cloud-APM-Mechanismen bringen normalerweise immer eine Form von Applikations-Auslieferung-Kontrolle mit sich. Die Optimierung des Traffics soll die QoE (Quality of Experience) der Applikation sicherstellen. Heutzutage setzt man diese Mechanismen sowohl bei der Anwender-Verbindung als auch im Data Center ein. Diese priorisieren Netzwerkverkehr, um Verzögerungen zu vermeiden. Zusätzlich verwenden sie Kompression, um die Leitungen weniger zu belasten.

In den meisten Fällen ist es möglich, einen End-to-End-ADC (Application Development Controller) in der Cloud einzusetzen. Das gilt dann, wenn die Applikations-Seite oder der Host Software- und nicht Appliance-gestützt ist. Sie können natürlich nicht einfach Ihre eigenen Geräte im Netzwerk des Cloud-Anbieters installieren und einsetzen.

Stellen Sie daher sicher, dass Sie ADC mit dem Maschinen-Abbild oder dem entsprechenden Template kombinieren können. Weiterhin muss sich ein komprimierter Datenstrom vom Endanwender-ADC-Element mit jeder Instanz der Applikations-Komponenten via Load-Balancing verwenden lassen. Behalten Sie im Hinterkopf, dass einige Kompressions-Verfahren „stateful" arbeiten. Setzen Applikationen zusätzliche Kopien von Komponenten ein, könnte das zu Problemen führen.

Hosting-Tools in der Cloud

Möglicherweise können Sie APM-Tools in der Cloud hosten und müssen diese nicht in jede Applikation einbauen. Eine „virtuelle ADC"-Applikation könnte als Gateway für Anwender-Transaktionen dienen. Das wäre eine Schnittstelle, in der Traffic unkomprimiert zu der korrekten Komponente transportiert wird (load-balanced).

Bei so einer Strategie sollten Sie unbedingt sicherstellen, dass der virtuelle ADC in einer Cloud-Umgebung gehostet wird, die hinsichtlich Performance seinem Auftrag auch gerecht werden kann. Diese Funktion ist mitten im Datenfluss aller Applikationen und somit auch ein zentraler Schwachpunkt. Das Modell virtueller ADC funktioniert am besten, wo die Performance einer Applikation durch die Anforderungen in der Verarbeitung eingeschränkt ist und nicht durch die Kapazität des Traffic-Handlings.

Ein abschließender wichtiger Punkt hinsichtlich Cloud-APM ist die potentielle Performance-Falle in virtuellen Netzwerken. Cloud-spezifische Applikationen bringen mit hoher Wahrscheinlichkeit mehrere Bestandsteile mit sich. Setzen Sie Komponenten für Performance-Verbesserungen ein und verwalten die Standorte sowie die Verbindungen zwischen den Applikations-Komponenten mit Bedacht.

Überlagernde virtuelle Netzwerke vereinfachen diese Netzwerk-Probleme oftmals. In der Regel geschieht das durch die Verschleierung zwischen den virtuellen Pfaden und den physikalischen Netzwerk-Ressourcen. Jede Cloud-spezifische Applikation braucht als Teil des Performance-Managements QoS-Garantien (Quality of Service). Das lässt sich aber nicht erreichen, wenn Sie virtuelle Netzwerk-Verbindungen nicht mit echten Netzwerk-Pfaden verknüpfen können. Wenn Sie hier aufpassen, werden Sie mit Cloud-APM die maximale Leistung herausholen.

Artikel wurde zuletzt im Oktober 2013 aktualisiert

Erfahren Sie mehr über WAN und Cloud-Networking

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close