Wünscht sich nicht jeder, dass seine Anwendungen reibungslos laufen? Leider sind Anwendungen so komplex geworden, dass es schwieriger denn je ist, einen störungsfreien Betrieb zu gewährleisten. Moderne Anwendungen sind vielschichtig aufgebaut. Es gibt das Frontend, das für die Interaktion mit dem Benutzer verantwortlich ist. Dann gibt es das Backend, das den Großteil der rechenintensiven Aufgaben übernimmt. Und schließlich gibt es oft noch eine Datenbank, in der die Anwendungsdaten gespeichert werden. All diese Komponenten, die möglicherweise auf unterschiedlichen Rechnern laufen, müssen miteinander kommunizieren und schnell auf Anfragen reagieren. Da das Backend jedoch häufig mehrere Frontends und die Datenbank mehrere Backends bedient, kann es schnell kompliziert werden. An dieser Stelle beginnt die Anwendungsleistung häufig zu leiden. Dann ist es wichtig, das richtige Werkzeug zur Überwachung und Leistungsoptimierung einzusetzen. Dies ist das Thema unseres Artikels, und wir werden die besten Tools zur Optimierung der Anwendungsleistung beleuchten.
Bevor wir uns die Top-Produkte ansehen, werden wir uns zunächst mit dem Konzept der Anwendungsleistung befassen. Wir werden definieren, was es bedeutet und warum es so wichtig ist. Anschließend werden wir die Optimierung der Anwendungsleistung untersuchen, einschließlich ihrer Definition und der involvierten Prozesse. Wir werden auch die Einrichtung eines Benchmarks beleuchten, da dieser uns helfen kann, Leistungsverschlechterungen oder -verbesserungen zu erkennen. Abschließend werden wir die verschiedenen Arten von Tools vorstellen, die uns bei diesen Aufgaben helfen können, bevor wir schließlich die besten Tools zur Optimierung der Anwendungsleistung analysieren.
Die Bedeutung der Anwendungsperformance
Es ist wichtig, dass wir alle dasselbe verstehen, wenn wir über die Anwendungsperformance sprechen. Es geht nicht nur darum, wie gut Microsoft Word oder die Browser Chrome oder Firefox funktionieren. Ja, das sind auch Anwendungen, die unter Leistungsproblemen leiden können, aber wir konzentrieren uns auf die Leistung von internen oder kundenspezifischen Anwendungen. Warum ist die Anwendungsleistung so wichtig? Während verschiedene Leute unterschiedliche Antworten geben würden, hängt es im Wesentlichen mit der Produktivität zusammen. Diese internen oder maßgeschneiderten Anwendungen erfüllen einen bestimmten Zweck. Wenn ihre Leistung beeinträchtigt ist, leidet die Produktivität – ganz einfach.
Es ist sogar noch wichtiger, wenn man im Software-as-a-Service (SaaS)-Geschäft tätig ist, da diese internen und maßgeschneiderten Anwendungen zur Bereitstellung von Dienstleistungen für die Kunden verwendet werden. Ein Leistungsabfall kann dazu führen, dass Kunden zu Konkurrenzdiensten wechseln. Es gibt im Wesentlichen zwei Bereiche, in denen die Anwendungsleistung beeinträchtigt werden kann. Erstens die Kommunikation zwischen den Komponenten. Da die verschiedenen Schichten in der Regel auf verschiedenen Rechnern laufen, erfolgt die Kommunikation häufig über ein Netzwerk, und wie wir wissen, können Netzwerke unter verschiedenen Leistungsproblemen leiden.
Der zweite Bereich, in dem die Anwendungsleistung beeinträchtigt werden kann, sind die Server selbst. Wenn zum Beispiel ein Backend-Server überlastet ist, kann die Antwort auf Anfragen von den Frontends verzögert werden, was zu Leistungsproblemen führen kann. Gleiches gilt für Anfragen vom Backend-Server an die Datenbanken.
Optimierung der Anwendungsleistung
Die Optimierung der Anwendungsleistung ist mit der Fehlerbehebung vergleichbar. Der erste Schritt ist die genaue Bestimmung der Ursache der Leistungsprobleme. Sobald die Ursache des Problems bekannt ist, kann es durch Behebung der Grundursache behoben werden. Die Identifizierung der Grundursache ist also der zweite Schritt zur Optimierung der Anwendungsleistung.
Sobald die Ursache für die Leistungseinbußen bekannt ist, muss man sie nur noch beheben. Wenn der Backend-Server überlastet ist, ist es vielleicht an der Zeit, einen zweiten Server hinzuzufügen oder den bestehenden Server durch Hinzufügen von Prozessorkernen oder Speicher aufzurüsten. Wenn die Ursache für die Verschlechterung das überlastete Netzwerk zwischen zwei Komponenten ist, das Verzögerungen verursacht, ist es möglicherweise an der Zeit, das Netzwerk zu aktualisieren. Dies ist vor allem bei WAN-Verbindungen der Fall, bei denen ein Upgrade oft nur einen Anruf beim Provider entfernt ist.
Festlegung eines Benchmarks für zukünftige Vergleiche
Die meisten Anwendungen starten mit einer akzeptablen Leistung. Doch die Dinge verschlechtern sich oft im Laufe der Zeit, wenn immer mehr Benutzer die Anwendung verwenden oder die Menge an verarbeiteten Daten zunimmt. Früher oder später, oft sogar früher, wird unweigerlich eines von zwei Dingen passieren. Entweder beschweren sich die Benutzer, dass die Anwendung nicht mehr so schnell ist wie früher, oder die Anwendung wird tatsächlich langsamer.
Benutzer sind keine Lügner, aber ihre Wahrnehmung kann verzerrt sein, und sie können denken, dass die Anwendung langsamer geworden ist, obwohl sie tatsächlich gut funktioniert. Hier kann das Benchmarking hilfreich sein. Die Leistung der Anwendung sollte von Anfang an gemessen werden. Wenn sich Benutzer beschweren, kann man die aktuellen Messwerte einfach mit den ursprünglichen – dem Benchmark – vergleichen, um festzustellen, ob und um wie viel sie sich tatsächlich verlangsamt hat oder um zu beweisen, dass sie immer noch gut funktioniert. Das Festlegen eines Benchmarks und der regelmäßige Vergleich mit der aktuellen Leistung hilft auch, Leistungseinbußen zu erkennen, bevor die Benutzer sie bemerken.
Über die Werkzeuge
Es gibt eine Vielzahl von Tools zur Optimierung der Anwendungsleistung. Sie haben alle etwas gemeinsam: Sie müssen irgendwie die Leistung messen oder überwachen. Die meisten Tools zur Optimierung der Anwendungsleistung sind in Wirklichkeit Tools zur Überwachung oder Analyse der Anwendungsleistung. Mit ihrer Hilfe können Leistungsprobleme identifiziert und die Ergebnisse der Optimierungsbemühungen gemessen werden.
Leider kümmern sich die meisten dieser Tools nicht um die eigentliche Optimierung. Sie helfen dabei festzustellen, ob und wo ein Leistungsproblem vorliegt. Einige schlagen sogar Möglichkeiten zur Optimierung vor, aber sie erledigen die Arbeit nicht für den Benutzer. Das ist auch logisch, denn es gibt zu viele Variablen und Anwendungen sind zu unterschiedlich, um ein universelles Tool zu entwickeln, das Anwendungsprobleme lösen könnte. Sollte man trotzdem ein automatisiertes Tool zur Änderung des Codes wünschen?
Die besten Tools zur Optimierung der Anwendungsleistung
Unsere Liste umfasst eine Vielzahl von Tools. Einige sind Tools zur Überwachung der Anwendungsleistung. Andere überwachen die Datenbankleistung. Wir haben sogar ein Bundle, das diese beiden Tools kombiniert. Im Gegensatz zu anderen Arten von Tools, wie zum Beispiel Tools zur Bandbreitenüberwachung, die alle ziemlich ähnlich funktionieren, unterscheiden sich Tools zur Optimierung der Anwendungsleistung erheblich in ihrer Funktionsweise und ihren Aufgaben. Wir haben versucht, eine gute Mischung aus den verfügbaren Tools zu präsentieren.
1. SolarWinds Application Performance Optimization Pack (Kostenlose Testversion)
Unser erster Eintrag ist kein einzelnes Tool, sondern ein Paket von Tools von SolarWinds, einem Unternehmen, das seit etwa 20 Jahren einige der besten Netzwerkverwaltungstools herstellt. Es genießt ein hohes Ansehen, und sein Vorzeigeprodukt, der SolarWinds Network Performance Monitor, wird immer wieder als eines der besten Tools zur Überwachung der Netzwerkbandbreite ausgezeichnet. Darüber hinaus ist SolarWinds für seine kostenlosen Tools bekannt, kleinere Produkte, die jeweils auf ein bestimmtes Bedürfnis von Netzwerkadministratoren zugeschnitten sind. Der SolarWinds Advanced Subnet Calculator und der Kiwi Syslog Server sind zwei Beispiele für diese kostenlosen Tools.
Das Angebot von SolarWinds zur Optimierung der Anwendungsleistung heißt Application Performance Optimization Pack. Es handelt sich dabei um ein Paket, das aus zwei hervorragenden Tools besteht, dem Server and Application Monitor und dem Database Performance Analyzer. Dieses Bundle bietet eine Komplettlösung zur Optimierung der Anwendungs-, Datenbank-, Virtualisierungs- und Serverleistung.
In Kombination bieten die beiden Tools eine Reihe unübertroffener Funktionen. Zum Beispiel können Sie mit der Response Time Analysis die Ursache von Anwendungsantwortproblemen ermitteln. Darüber hinaus helfen historische Analysen und dynamische Basislinien bei der Erkennung von Optimierungsproblemen. Der SolarWinds Server and Application Monitor verwendet eine agentenlose Architektur, um Hunderte von Produktionsinstanzen bei minimaler Last im Auge behalten zu können. Das gilt nicht nur für interne oder kundenspezifische Anwendungen. Das Tool enthält über zweihundert Anwendungsvorlagen, die eine sofortige Überwachung der Anwendungsleistung ermöglichen. Selbstverständlich ist es auch möglich, Vorlagen für Eigenentwicklungen zu erstellen. Die Planung der CPU-, Speicher- und Festplattenkapazität ermöglicht eine effiziente Fehlerbehebung und eine schnelle Problemlösung.
Über diesen Link kann die voll funktionsfähige 30-Tage-Testversion genutzt werden. Link zur Testversion
Werfen wir einen genaueren Blick auf die einzelnen Tools im SolarWinds Application Performance Optimization Pack.
1.1 SolarWinds Server and Application Monitor (Kostenlose Testversion)
Der SolarWinds Server and Application Monitor wird vom Herausgeber als „Serverüberwachungssoftware zum Auffinden und Beheben von Anwendungsproblemen“ bezeichnet. Mit diesem Tool ist es möglich, jede Anwendung und jeden Server zu überwachen. Man kann damit die Leistung, Kapazität und den Zustand von Linux- und Windows-Apps in Rechenzentren, Remote-Büros und in der Cloud proaktiv überwachen.
Dies ist eine umfassende Serverüberwachungsplattform für Microsoft-Anwendungen, -Systeme, -Hypervisoren und -SaaS-Produkte. Es ist auch ein großartiges Produkt zur Überwachung cloudbasierter Infrastrukturen. Es ermöglicht die Überwachung von Azure- und AWS-Infrastrukturmetriken und das Erhalten von Warnmeldungen, und zwar innerhalb desselben Dashboards wie lokale Anwendungen und Systeme. Das Produkt-Dashboard ermöglicht die Überwachung von über 1200 Anbieteranwendungen, Servern, Datenbanken und Speichern über eine einzige, benutzerfreundliche und anpassbare Weboberfläche. Das Serverüberwachungstool SolarWinds Server and Application Monitor bietet eine automatisierte Erkennung und Zuordnung von Anwendungen und Infrastruktur. Es verfügt außerdem über anpassbare Überwachungsvorlagen sowie vorgefertigte Warnungen und Berichte.
Die Preise für den SolarWinds Server and Application Monitor basieren auf der Anzahl der überwachten Komponenten, Knoten und Volumes und beginnen bei 2.995 US-Dollar für 150 Monitore. Wie bei den meisten anderen SolarWinds-Produkten steht auch hier eine kostenlose 30-Tage-Testversion zum Download bereit, um das Produkt vor dem Kauf zu testen. Link zur Testversion
1.2 SolarWinds Database Performance Analyzer (Kostenlose Testversion)
Der SolarWinds Database Performance Analyzer überwacht und analysiert SQL-Datenbankinstanzen, um Probleme zu lösen und die Leistung zu optimieren. Mit einer Response Time Analysis-Methode konzentriert er sich auf die Zeit zwischen einer Abfrageanforderung und der entsprechenden Antwort aus der Datenbank. Dabei werden Wartezeiten und Ereignisse analysiert, um Engpässe in Datenbanken zu lokalisieren.
Dieses Produkt verfügt über eine benutzerfreundliche Oberfläche, die Administratoren hilft, Probleme schnell und einfach zu finden. Auf dem Hauptbildschirm können Datenbankinstanzen, Wartezeiten, Abfragehinweise, Prozessorlast, Speicher, Festplatte und Sitzungen angezeigt werden. Das Trend-Dashboard für eine bestimmte Datenbankinstanz zeigt die gesamten Wartezeiten der Benutzer im Verlauf eines Monats in grafischer Form. Es können auch die durchschnittlichen oder typischen täglichen Wartezeiten dargestellt werden. In dieser Ansicht repräsentiert jede Diagrammfarbe eine einzelne SQL-Anweisung. Man erhält eine visuelle Darstellung, welche Anweisung am längsten zur Ausführung benötigt.
Die Preise für den SolarWinds Database Performance Analyzer beginnen bei 1.995 US-Dollar und variieren je nach Anzahl und Art der zu überwachenden Datenbankinstanzen. Auch hier ist eine voll funktionsfähige Testversion verfügbar, die jedoch nur 14 Tage dauert. Wenn man die Testversion jedoch als Teil des SolarWinds Application Performance Optimization Pack herunterlädt, erhält man eine vollständige 30-Tage-Testversion. Link zur Testversion
2. ManageEngine Application Manager
Obwohl ManageEngine nicht so bekannt ist wie SolarWinds, genießt es unter Netzwerkadministratoren dennoch einen hervorragenden Ruf. Wie der Name vermuten lässt, befasst sich der ManageEngine Application Manager mit der Anwendungsverwaltung. Der Name ist jedoch etwas irreführend, da es sich sowohl um eine Überwachungs- als auch um eine Verwaltungsplattform handelt.
Dieses Tool bietet eine integrierte Überwachung der Anwendungsleistung für alle Anforderungen an die Server- und Anwendungsüberwachung. Dies gilt auch für zugrunde liegende Infrastrukturkomponenten wie Anwendungsserver, Datenbanken, Middleware- und Messaging-Komponenten, Webserver, Webdienste, ERP-Pakete, virtuelle Systeme und Cloud-Ressourcen. Es handelt sich also um eine Komplettlösung.
Mit diesem Tool kann man viel anfangen. Zum Beispiel können Anwendungsreaktionszeiten mithilfe von Informationen auf Codeebene innerhalb der Anwendungsleistungsüberwachungsumgebung verfolgt werden. Die Transaktionsverfolgungsfunktion ermöglicht die Erkennung langsamer Transaktionen. Es überwacht die Ausführung von Datenbankabfragen und verfolgt Hintergrundtransaktionen.
Der ManageEngine Application Manager ist in verschiedenen Editionen erhältlich. Es gibt eine kostenlose Edition mit eingeschränkten Funktionen sowie eine kostenpflichtige Professional- und Enterprise-Version. Die Preise beginnen bei 945 US-Dollar, und Einzelheiten können bei ManageEngine erfragt werden. Eine kostenlose 30-Tage-Testversion ist ebenfalls verfügbar. Link zur Testversion
3. AppDynamics APM
Appdynamics, das jetzt Teil von Cisco ist, bietet ein hervorragendes Application Performance Management Tool namens Appdynamics APM. Dieses hervorragende Tool erkennt, kartiert und visualisiert automatisch kritische Customer Journeys durch jeden Anwendungsservice und jede Infrastrukturkomponente. Es bietet Managementteams eine zentrale Informationsquelle, um sich auf die End-to-End-Leistung im Kontext der Kundenerfahrung zu konzentrieren, anstatt einzelne Services zu überwachen.
Dieses Tool nutzt maschinelles Lernen, um zu erkennen, was die normale Leistung ist, und erstellt damit seine eigene Basislinie der Anwendungsleistung. Dadurch kann das Tool den Benutzer warnen, wenn die Leistung von der Norm abweicht. Es gibt eine direkte Integration mit ServiceNow, PagerDuty und Jira, sodass man sofort benachrichtigt wird und Probleme beheben kann, bevor Kunden sie bemerken.
Ein weiteres großartiges Feature ist die sofortige, automatisierte Diagnose auf Codeebene. Die umfassenden Diagnosefunktionen ermöglichen die Identifizierung der Grundursache bis hin zur einzelnen Codezeile. Das Team muss keine Protokolldateien durchsuchen, was wertvolle Entwicklerzeit spart.
Appdynamics APM ist in mehreren Versionen erhältlich. Die einfachste Version heißt APM Pro. APM Advanced bietet zusätzlich Funktionen zur Server- und Netzwerksichtbarkeit. Die höchste Stufe heißt APM Peak und umfasst alle Funktionen von APM Advanced sowie die Überwachung der Geschäftsleistung, Transaktionsanalysen und Geschäftsreisen. Die Preise können durch Kontaktaufnahme mit Appdynamics erfragt werden, und eine 30-Tage-Testversion ist verfügbar. Link zur Testversion
4. Dynatrace
Dynatrace ist eine cloudbasierte Software-as-a-Service (SaaS)-Lösung, die Anwendungen automatisch erkennen, lösen und optimieren kann. Um ein komplexes Anwendungsökosystem zu erkennen und abzubilden, muss lediglich der Dynatrace OneAgent installiert werden. Das Tool bietet einen detaillierten Überblick über den gesamten Anwendungsstapel, von der Leistung der Anwendungen, der Cloud-Infrastruktur und der Benutzererfahrung. Es hilft, Probleme zusammen mit ihren geschäftlichen Auswirkungen und Ursachen mühelos zu erkennen.
Dynatrace beansprucht die breiteste Abdeckung aller Überwachungslösungen in Bezug auf unterstützte Sprachen, Anwendungsarchitekturen, Cloud, On-Premise oder Hybrid, Unternehmensanwendungen, SaaS-Überwachung und mehr. Das Tool erkennt und überwacht dynamische Microservices, die in Containern ausgeführt werden, automatisch. Es zeigt, wie sie funktionieren und miteinander kommunizieren, und hilft dabei, Microservices mit schlechter Leistung schnell zu erkennen.
Die Preise für Dynatrace sind nicht ohne Weiteres verfügbar und können anscheinend erst nach der Anmeldung für die kostenlose 15-Tage-Testversion erfragt werden. Dann muss nur noch der Agent auf den Servern installiert werden, und die Überwachung kann innerhalb von 5 Minuten beginnen. Link zur Testversion
5. New Relic APM
Als Letztes auf unserer Liste steht New Relic APM, eine cloudbasierte SaaS-Software-Analytics-Plattform, die Application Performance Management und die Überwachung von Benutzererfahrungen bietet. Es funktioniert sowohl mit in der Cloud als auch in Rechenzentren bereitgestellten Webanwendungen, die in Ruby, Java, .NET, Python, PHP und Node.js implementiert sind. Das Produkt bietet auch mobile Überwachungslösungen für iOS- und Android-Anwendungen.
New Relic APM überwacht vom Frontend bis zur Infrastrukturebene. Es unterstützt On-Premise-, Cloud- und Hybrid-Setups. Das Tool verfolgt jede Änderung in allen Anwendungen und Diensten mit punktgenauer Klarheit und vollständigem Kontext. Mit einer kuratierten Benutzeroberfläche, die einen einzigen, umfassenden Überblick über den gesamten Anwendungsstapel bietet, ist kein Wechsel zwischen Tools und benutzerdefinierten Ansichten erforderlich. Alles ist in einem einzigen Fenster leicht zu finden.
New Relic APM ist in zwei Versionen erhältlich, Essentials ab 75 US-Dollar pro Monat und Pro ab 149 US-Dollar pro Monat. Letztere bietet erweiterte Funktionen wie längere Aufbewahrungszeiten, Service-Maps, Deployment-Tracking und SLA-Berichte. Eine kostenlose 14-tägige Testversion beider Versionen ist verfügbar. Link zur Testversion