APM-Grundlagen: Terminologie und Konzepte

Heute werden wir uns mit den Grundlagen des Application Performance Management befassen. Wir schauen uns wichtige Terminologie und die Konzepte des APM an. Auch wenn das APM heutzutage für IT Systeme unglaublich wichtig geworden ist, wird es von vielen Organisationen immer noch nicht in vollem Umfang genutzt.

Organisationen brauchen APM, um die Kontrolle über ihr Netzwerk und ihre Infrastruktur zu behalten. Es kann jedoch sein, dass sie nicht in der Lage sind, ihr APM effektiv einzurichten, wenn sie Bedeutung und den Umfang der Wirkung des APM unterschätzen. Aus diesem Grund braucht jeder ein tiefgreifendes Verständnis von APM. Wir müssen uns klar machen, warum APM in der Applikationsentwicklung eine Rolle spielt und was die besten Möglichkeiten sind, ihn zu verwalten und zu überwachen.

Was ist APM genau?

Schauen wir uns das APM einmal näher an. Das Application Performance Management ist eine Methode, mit der Unternehmen die Leistung ihrer Applikationen diskret verfolgen können, indem sie jene identifizieren, die fehlerhaft funktionieren oder sich falsch verhalten. Beispielsweise leiten sie Bad Requests weiter, reagieren langsam auf Anfragen und so weiter. Das Application Performance Management sollte jedes Problem innerhalb einer Applikation aufdecken, wie z.B. verdächtige Mengen an ein- und ausgehendem Datenverkehr, Speicherlecks oder Ressourcenüberlastung.

APM ist etwas, das heute jedes System braucht.

Früher war APM nicht so wichtig, weil jede Applikation für sich allein verwaltet werden konnte. Ein Systemadministrator könnte bemerken, dass eine einzelne Applikation träge war und konnte sie so einfach rauspicken und ihre Fehler wieder beheben. Aber heute gibt es hunderte oder tausende Applikationen in einem einzigen System. Dezentrales Computing, Microservices-Architekturen, Virtualisierung und Containerisierung haben dazu geführt, dass Applikationen auf mehreren Ebenen einer Netzwerkorganisation funktionieren. Und jedes dieser Netzwerke benötigt dazu auch eine unabhängige Wartung und Überwachung.

APM konsolidiert all dies in einem einzigen System, das es ermöglicht, Probleme mit praktisch jeder Applikation zu identifizieren. Es bedeutet auch, dass das System als eigenständige Einheit gut funktionieren muss, konsistent und kohärent sein muss und alle Anwendungen durch verteilte Rückverfolgungsprozesse verfolgen muss. Diese Anforderung kann eine Herausforderung darstellen, besonders für Organisationen, die ihren APM einrichten oder eine Nachverfolgung durchführen.

Die Key-Features des APM

Es gibt viele APM-Lösungen auf dem Markt. Einige von ihnen sind relativ leicht und abgespeckt, während andere sehr robust sind. Kleine Unternehmungen könnten von einer leichtgewichtigen APM-Lösung profitieren, während ein großes Unternehmen eine schwergewichtige APM-Lösung mit umfangreichen komplementären Features benötigt. Ungeachtet dessen, was ein benutzerdefiniertes Projekt speziell erfordert, haben die meisten APMs immer sehr ähnliche Features.

  • Durchführung von Webanfragen. Die meisten Lösungen sind heute Cloud-basiert und webbasiert. APM verfolgt die Performance von Webanfragen, um festzustellen, ob einige von ihnen verzögert sind oder ob die Performance sich andernfalls verbessern könnte. Jede Transaktion wird zurückverfolgt, so dass die Organisation dringende Probleme leicht angehen kann.
  • Leistungs-Profiling auf Code-Ebene. APM kann feststellen, welche Methoden innerhalb des Code-Levels einer Applikation ein System verlangsamen könnten. Applikationen werden heutzutage in sich und aus sich selbst heraus immer komplexer, und deshalb wird diese Art der Wartung außerordentlich wichtig.
  • Abhängigkeiten von Applikationen. Es ist vielleicht nicht die Applikation, die fehlerhaft arbeitet, sondern eine ihrer Abhängigkeiten. Zum Beispiel könnte das System verfolgen, ob die SQL-Abfragen der Applikation langsam laufen.
  • Server-Überwachungs-Metriken. Viele Leute sind mit dem Taskmanager vertraut; APM-Lösungen bestimmen, wie die Applikation in Bezug auf CPU-Nutzung, Speicherverbrauch und mehr läuft. Dies ist sehr einfach, kann aber schnell wichtige Erkenntnisse liefern.
  • Log-Daten. APM wird eine beträchtliche Menge an Logdaten nehmen und verwalten, die dann durchsucht, überwacht oder analysiert werden können. Einige APM-Lösungen exportieren sogar Logdaten, damit andere Systeme sie analysieren können.
  • Verwaltung von Fehlern. Eines der wichtigsten Systeme, APM wird auch Fehler identifizieren. Ein robustes System wird diese Fehler priorisieren, so dass es klarer wird, welche Fehler wann behoben werden müssen.
  • Überwachung der User. Zusätzlich zu den Applikationen selbst, werden APM-Lösungen auch feststellen, was die User tun und wie sie mit den Applikationen interagieren. APM-Lösungen sollten immer auf den User ausgerichtet sein und sicherstellen, dass die Applikationen das liefern, was sie dem User liefern müssen.

Wie andere fortgeschrittene Systeme können APM-Lösungen in der Regel erweitert werden. Wenn sie erweitert werden, werden sie mit anderen Lösungen integriert oder mit Add-Ons zu ihren bestehenden Lösungen versehen. Aber APM-Lösungen als Ganzes werden immer die oben genannten Features beinhalten.

APM Terminologie

Die APM-Terminologie ist seit dem APM-Boom von 2013 deutlich gewachsen. Vor Cloud Services, Microservices und anderen Architekturänderungen war APM wirklich nicht so notwendig wie heute. Aber mit der Branche wird auch jene Nomenklatur immer wichtiger. Da sie gleichzeitig immer komplexer wird, gibt es spezifische Begriffe, die wir verwenden müssen.

  • Distributed Tracing. Hierbei handelt es sich um eine Methode, bei der die Rückverfolgung durch alle Applikationen hindurch durchgängig durchgeführt wird, um sicherzustellen, dass die Anfragen zu jedem aufgetretenen Problem zurückverfolgt werden können. Distributed Tracing ist ein unglaublich wichtiger Faktor in APM, aber es sollte nicht mit APM selbst verwechselt werden, so wie Beobachtbarkeit nicht mit Monitoring verwechselt werden sollte.
  • Tracing. Tracing ist das, was Anfragen in einem System verfolgt. Es ist wichtig, denn ohne es kann eine Anfrage fälschlicherweise in ein System gelangen. Der Fehler kann innerhalb einer Applikation auftreten, aber eine frühere Interaktion könnte fehlerhafte Daten weitergegeben haben. Ohne das Tracing könntest du feststellen, wo der Fehler liegt, aber nicht, wo er entstanden ist. Dann können einzelne Microservices fehlerhafte Anfragen durch das ganze System senden.
  • Monitoring. Das Monitoring identifiziert Probleme, sobald sie auftreten und meldet sie zurück. Durch Tracing, Verwaltung, Analyse und mehr werden die Daten bereitgestellt. Aber das Monitoring-System alarmiert die Organisation, wenn Probleme aufgetreten sind, und es ist einer der wichtigsten Aspekte jeder APM-Lösung. Ohne ausreichend robustes Monitoring kann das System zwar Fehler erkennen, doch würden die meisten unbehandelt bleiben.
  • Tags. Tags machen es einfacher, Dinge im gesamten System zu verfolgen, indem sie wichtige und manchmal kritische Informationen anhängen. Tags innerhalb eines APM-Systems machen es viel einfacher, wichtige Dinge zu verfolgen.
  • Filter. Das Filtern und Durchsuchen von APM-Logs macht es einfacher, an kritische Informationen zu gelangen. APM-Logs liefern analytische Daten, wie zum Beispiel Performance-Probleme, die verborgen bleiben könnten, weil sie noch nicht kritisch sind.
  • Services. Services sind die Kernbausteine eines Systems, die es ermöglichen, eine Applikation zu erstellen. Services sind heutzutage unglaublich wichtig wegen der Microservices, die oft in der gesamten Anwendungsarchitektur verwendet werden und die an und für sich nachvollziehbar sein müssen.
  • Ressourcen. Ressourcen können sich auf die Domains innerhalb einer Kundenapplikation beziehen, einschließlich Hintergrund-Jobs, Datenbankabfragen, Web-Endpunkte und andere zugängliche und diskrete Einheiten. Ressourcen werden von Applikationen verwendet und können ihre eigenen Fehler oder Leistungsprobleme haben.

Das Verstehen der oben genannten Begriffe kann den Prozess des Verstehens des APM viel einfacher machen. Aber APM ist eine Disziplin für sich, und Organisationen, die daran interessiert sind, ihre Fähigkeit zu robuster APM zu verbessern, sollten in Erwägung ziehen, die Hilfe eines Managed Partners in Anspruch zu nehmen.

Konzepte des APM

Was sind die wichtigsten Konzepte des APM? Was ist es, das APM so wichtig macht? Im Allgemeinen sind es folgende grundlegende Konzepte:

  • Beobachtbarkeit. Es ist wichtig, dass jeder weiß, wo innerhalb eines Systems etwas schief gelaufen ist. Zusätzlich zum Wissen, wo Systeme schief gelaufen sind, ist es wichtig, auch den allgemeinen Status des Systems zu kennen.
  • Kontinuität. Eine lückenlose Rückverfolgung ist unglaublich wichtig, denn sonst ist nicht immer klar, wo ein Fehler aufgetreten ist. Größere Ebenen der Kontinuität werden immer wichtiger, zusammen mit immer größeren und komplexeren Systemen.
  • Prioritätensetzung. Es ist wichtig, dass eine Organisation in der Lage ist, Prioritäten für ihre Systeme zu setzen. Fehler auf hoher Ebene müssen anderen Kanälen folgen als Fehler auf niedrigerer Ebene, oder die IT wird es schwer haben, sie richtig anzugehen.
  • Skalierbarkeit. Da immer mehr Applikationen hinzugefügt werden, ist es wichtig, dass sich das System ohne Probleme anpassen kann. Ansonsten muss das System jedes Mal angepasst werden, wenn neue Applikationen eingeführt werden, was recht häufig vorkommen kann.

Insgesamt kann man sagen, dass es beim APM vor allem darum geht, sicherzustellen, dass eine Unternehmung die Kontrolle über die Überwachung ihrer Applikationsperformance behält. Wenn sie dazu nicht in der Lage ist, wird das System selbst brüchig und anfällig für Fehlfunktionen.

APM Best-Practises

Was sind einige der Best-Practices des APM? Das hat natürlich alles mit den Systemen und Suiten zu tun. Es gibt heute viele APM-Technologien, und sie wachsen ständig. Aber wenn es um die besten Methoden mit APM geht, gibt es einige Dinge, über die sich alle einig sein sollten:

  • Kontinuität und Standardisierung. Die Namen der Applikationen, die Rückverfolgung, die Berichterstattung und vieles mehr sollten alle standardisiert werden, damit es einfacher ist, sie zurückzuverfolgen.
  • Eindeutige Identifikatoren. Alle Events, die über Applikationen abgewickelt werden, sollten eindeutige Identifikatoren haben, egal wo sie sich innerhalb des Systems befinden, damit sie zurückverfolgt werden können.
  • Prioritätensetzung. Wie bereits erwähnt, ist die Priorisierung ein Schlüsselkonzept. Verschiedene Applikationen sollten danach priorisiert werden, wie wichtig sie für das System sind.
  • Protokollierung. Robuste Logs sind der Schlüssel zu APM und verteilter Rückverfolgung, und idealerweise sollten sie für Suche, Analyse und Anpassung bereit sein

Mit den oben genannten Best Practices können Organisationen mit der Überwachung der Performance ihrer Applikationen beginnen. Je komplexer das Netzwerk, desto komplizierter wird aber auch das entsprechende APM. Es ist wichtig für Organisationen, immer ein Auge auf strukturelle Verbesserungen zu haben und die neuesten APM-Technologien auszuprobieren, sobald sie auftauchen. Da Containerisierung, Docker Services und die Architektur von Microservices mittlerweile definitic nicht mehr wegzudenken sind, wird es immer schwieriger werden, Fehler in einem ganzen System zu verfolgen.

Sie mögen diesen Beitrag?

Autor

Nashat Wanli | Chief Technical Officer

Nashat übernimmt die Rolle des Chief Technology Officer bei CodeCoda. Nashat bringt mit seinen früheren Funktionen, die von Software Engineer, Architect über Project Manager bis hin zu CTO bei einem führenden E-Commerce-Unternehmen reichen, fast 25 Jahre wertvolle Branchenkompetenz mit. Er ist eine selbstmotivierte, hochqualifizierte und fähige Person, die, sobald sie zu einem Projekt hinzugefügt wird, Wert und Schlüsselkompetenz bietet.
Seine Erfahrung in der gesamten Bandbreite der Softwareentwicklung ist ein Gewinn für die Softwareentwicklungen unserer Kunden. Seine Liebe zum Detail und sein Ehrgeiz, Innovationen zu entwickeln und wichtige Veränderungen voranzutreiben, sind seine Schlüsselstärken!