Karsten Flott von AppDynamics erklärt, weshalb das Monitoring von Drittanbieter-Code für viele Unternehmen eine Herausforderung darstellt – und beschreibt anhand dreier verbreiteter Szenarien mögliche Lösungsansätze.
Wie sehr vertrauen Sie der Arbeit anderer? Von Winston Churchill stammt das Zitat, er glaube ausschließlich an Statistiken, die er selbst gefälscht habe. Dieses hohe Maß an Misstrauen mag in der Berufspolitik angemessen sein, in anderen Branchen und Bereichen ist es aber aus wirtschaftlichen und praktischen Gründen schlicht nicht sinnvoll. Das gilt auch für die Software-Entwicklung.
Auf den ersten Blick würde es einen guten Grund dafür geben, der Programmierarbeit anderer zu Misstrauen und jede einzelne Code-Zeile selbst zu schreiben. Sicherheitslücken, mangelnde Performance oder andere Probleme sind dann immer das Resultat eigener Fehler, die sich im Quelltext aufspüren und beheben lassen. Das bedeutet ein Höchstmaß an Kontrolle. In der Praxis kann es sich jedoch niemand leisten, auf Anwendungen oder Komponenten von Drittanbietern zu verzichten. Denn sie sind in der Regel günstiger als Eigenentwicklungen und bieten oft elegante Lösungen für wiederkehrende Probleme. Sie bieten also einen immensen Effizienzvorteil. Aber sie haben auch einen entscheidenden Nachteil: mangelnde Transparenz.
Drittanbieter-Code wird für Entwickler und IT-Verantwortliche oft zur Black Box. Drei Szenarien lassen sich unterscheiden: Im ersten Fall – dem Idealfall – besteht Zugriff sowohl auf die Laufzeit als auch auf den Quelltext. Das Monitoring stellt dann kein Problem dar. Im zweiten Fall besteht lediglich Zugriff auf die Laufzeit und im dritten Fall lässt sich weder auf die Laufzeit noch auf den Quelltext zugreifen. Ein effektives Monitoring ist dann nur noch mit den richtigen Tools und Methoden zu gewährleisten. Welche Ansätze es gibt, möchte ich anhand von drei verbreiteten Cases erläutern.
Monitoring von Commercial Off-the-Shelf-Software (COTS)
Kommerzielle Standardsoftware, abgekürzt mit dem englischen Akronym COTS, sind komplette, in sich geschlossene Lösungen, die lokal innerhalb einer eigenen Box laufen. Hier besteht in der Regel Zugriff auf die Laufzeit, aber aufgrund der fehlenden Innensicht gestaltet sich die Instrumentierung, also die Konfiguration der Agenten zur Performance-Überwachung, äußerst schwierig. Bei populären COTS-Lösungen wie SAP, Atlassian Confluence oder IBM Integration Bus schaffen Tools Abhilfe, die mit vorkonfigurierten Agenten für diese Software ausgeliefert werden. In allen anderen Fällen hilft die Überwachung grundlegender Metriken wie die Zahl der Requests pro Minute oder der verwendete Festplatten-Speicher, um Korrelationen zu Geschäftstransaktionen abzuleiten und somit wertvolle Einblicke zu gewinnen. Hier sollten Unternehmen ansetzen.
SLAs von Remote Services sicherstellen
Im Gegensatz zu COTS-Lösungen sind Remote Services von Drittanbietern nur über das Netzwerk erreichbar und bieten keinerlei Zugriff auf die Laufzeit. Durch die Überwachung der Endpunkte lässt sich aber zweifelsfrei klären, ob der jeweilige Dienst für Performance-Probleme verantwortlich ist oder nicht. Darüber hinaus lässt sich der Zustand des Services durch Synthetisches Monitoring und Verfügbarkeits-Monitoring überwachen. Sofern der Drittanbieter-Service selbst Performance-Metriken bereitstellt, ist es zudem sinnvoll, diese in entsprechende Dashboards sowie in das Alerting zu integrieren, damit das Performance-Team etwa einen ungewöhnlichen Anstieg der Antwortzeiten sofort erkennen und unter die Lupe nehmen kann. Auch eventuelle Verstöße des Drittanbieters gegen Service Level Agreements (SLAs) lassen sich auf diese Weise exakt dokumentieren.
Verlangsamen Drittanbieter-Bibliotheken meine Anwendung?
Drittanbieter-Bibliotheken sind ebenfalls sehr verbreitet. Was ist der beste Weg, um Probleme mit beispielweise einer Threading-Bibliothek, einer Logging-Bibliothek oder einer Client-Bibliothek zu beheben? Wenn eine Library in den eigenen Code integriert ist, fließen Geschäftstransaktionen durch sie hindurch und werden durch sie möglicherweise ausgebremst oder anderweitige gestört. In solchen Fällen helfen Monitoring-Tools, die Anwendungen bei Performance-Problemen bis auf die einzelne Codezeile zu durchleuchten. Sie können dann zuverlässig feststellen, ob die Drittanbieter-Komponente eine Schuld trifft oder nicht, und die Fehlerursache exakt ausdeuten.
Mehr Effizienz dank Monitoring von Drittanbieter-Code
Mit den richtigen Monitoring-Tools lässt sich die Performance von Drittanbieter-Code effektiv überwachen. Auch wenn der Zugang zu Laufzeit und Code in vielen Fällen fehlt, existieren vielfältige technische Möglichkeiten, Performance-Metriken zu erfassen und für mehr Transparenz zu sorgen. So können Unternehmen von den Effizienzvorteilen profitieren, die sich aus der Nutzung von Drittanbieter-Code ergeben, müssen gleichzeitig aber keine Abstriche bei Performance und Nutzererfahrung hinnehmen. Zumindest was die Performance angeht, wird es dann für Entwickler und IT-Verantwortliche wesentlich einfacher, auf fremden Code zu vertrauen.
Über den Autor: Karsten Flott, Sales Engineer Manager CER
Karsten Flott ist seit 2014 Sales Engineer bei AppDynamics und ist im Bereich des Performance Testing und Application Performance Management tätig. Zuvor war Karsten über 10 Jahre in derselben Position bei Compuware angestellt.
In seiner beruflichen Laufbahn bei den beiden Software-Unternehmen beschäftigte sich Flott intensiv mit Soft- und Hardware-Lösungen, die DevOps-, Analytics- und Application-Performance-Management-Prozesse verbessern. Sein Expertenwissen ist viel gefragt in zahlreichen IT-Fachmedien.
Karsten Flott studierte von 1997 bis 2001 an der Fachhochschule Mittweida und machte seinen Diplomingenieur in Kommunikationstechnik. Neben Englisch und Deutsch spricht Karsten zusätzlich auch Russisch.