Stellen wir uns mal folgendes Szenario vor.
Wir entwickeln eine Software die mehrere 100.000 User am Tag mit einem Desktoprechner, Mobile Telefon nutzen. Auf einmal stellt sich heraus dass die Performance ganz in den Keller geht und die Gefahr besteht dass viele Benutzer die Software die nächsten Stunden nicht mehr benutzen können.
Wie so oft fängt das Rätselraten an und es wird eine Eskalation eingeleitet mit Fachleuten aus der Entwicklung, Datenbanken, Netzwerk, Firewall, Webserver, Applikationserver, Betriebssysteme usw.
Anhand dieser Aufzählung kann man erkennen dass die Fehlersuche nicht einfach sein wird und es sehr viele Komponenten gibt, die zu einem Fehler oder Ausfall beitragen können.
In der heutigen Zeit erkennen viele Anwender nicht mehr dass hier eine hoch komplexe Infrastruktur dahinter steht. Der Anwender sieht nur seine Anwendung auf dem Smartphone die dann nicht läuft.
Im Großkundenumfeld werden oft die sehr teueren Tools wie „Tivoli“ oder „HP Openview“ eingesetzt. Hier ist es aber nicht so dass man wenn die Software installiert ist, die Überwachung der Systeme direkt beginnen kann. Nein , es beginnt dann die Arbeit des Customizing, dh. die Software an die Systeme anzupassen mit all seinen Feinheiten.
Aus dem OpenSource Umfeld kennt man noch „Nagios“ und „Cacti“, die übrigens auch sehr oft im Konzernumfeld eingesetzt werden um Lizenzkosten zu sparen.
Nun kommt eine neue Software auf den Markt die Cloud und SaaS Dienstleister die Fehlersuche vereinfachen soll und zwar mit „ruxit„.
Die Software besteht aus zwei Teilen. Der eine Teil ist der Agent der auf Windows und fast allen Linux Distributionen installiert werden kann. Die Software kann man direkt von der Webseite herunterladen und auf den Systemen installieren. Der zweite Teil ist eine Webbasierende Anwendung die einfach im Browser läuft. Es bedarf keinerlei Konfiguration am Agent oder am Server selbst.
Der Agent erkennt wenn auf einem Applicationserver wie Tomcat ein neues Programm installiert wird. Datenbanken wie MySQL und Postgres werden ebenfalls automatisch erkannt. Webserver wie Apache mit PHP werden automatisch erkannt. Netzwerkkarten, Prozesse, virtuelle Maschinen und noch vieles mehr wird automatisch erkannt. Man muss keinen Agent neu konfigurieren oder neu starten, der Agent bekommt auf dem System alles mit was hinzukommt oder weggenommen wird. Dh. die Inventarisierung eines jeden Servers erfolgt vollkommen automatisch und dynamisch im laufenden Betrieb.
Hier sieht man die einzelnen Prozesse und deren Abhängigkeiten zueinander im Zusammenhang mit einem Tomcat Server und deren installieren Anwendungen.
Dieses Bild zeigt welche Webanwendungen auf dem Server installiert sind und welche Komponenten damit verknüpft sind wie z.B. Tomcat Server, Datenbanken, Webserver usw.
Dieses Bild zeigt die Antwortzeiten einer Anwendung die auf dem Tomcat Server installiert ist. Gerade bei JVM (Java Virtual Machine) ist es immer schwierig den Übeltäter heraus zu finden.
Mit dieser Software kann sehr schnell erkannt werden wo der Flaschenhals in der Anwendung liegt.
Was sehr hilfreich ist wie sich verschiedene Java Anwendungen in den Laufzeiten verhalten, zeigt dieses Bild. Hier wird die ganze Kette von Netzwerk, Webserver, Anwendung, Applicationserver, Datenbank komplett durchgetestet. So lassen sich Performance Fehler sehr schnell finden.
Das nächste Bild zeigt wie die Anwendung mit der Datenbank sich verhält, welche Zeiten werden erreicht und wieviele Anfragen werden gestellt. Für Anwendungsentwickler ein muss.
Dieses Bild zeigt die Performance für eine PHP-Anwendung mit einem Webserver Apache.
Alle Webprogramme die auf den server installiert wurden selbstständig ohne Konfigurations Gefrickel automatisch und dynamisch erkannt. Wenn neue Anwendungen zustätzlich installiert werden, werden diese automatisch erkannt.
Laufzeitmessungen aus dem Internet die Weltweit erfasst werden. Dies ist vor allem wichtig wenn die Antwortszeiten in wichtigen Ländern oder Märkte erfasst werden müssen, Hier kann dann per CDN weiter analysiert werden.
Die Software eigentlich sich vor allem für JAVA-Entwickler die ihre Anwendung auf Performance in einer echten Umgebung testen möchten. Man erkennt sehr schnell wo die Performance verbessert werden muss. Dies kann im Datenbank Design sein oder das Java Klassen nicht optimal genutzt werden.
Dadurch dass auf dem Server eine Fremdsoftware installiert werden muss, ist an Datenschutz ein hohes Mass anzulegen. Wie weit diesem Fakt Sorge getragen wird durch den Anbieter kann ich derzeit nicht beurteilen. Es zeigt auch in wie weit sich so eine Software in das Betriebssystem eingräbt um wirklich alles ohne Konfiguration und Plugins zu erfassen.
Sollte es nicht möglich sein das besagte Netzsegment oder Server Infrastruktur direkt an das Internet anzubinden, da sonst keine Daten übermittelt werden, kann hier auch ein Proxy-Server installiert werden, der dann die Daten übermittelt und direkt an das Internet angebunden sein muss.
Fazit: Es ist eine interessante Software die man sich auf jeden Fall anschauen soll da die Kosten auch sehr erschwinglich sind mit gerade mal 15 Cent pro Stunde und pro Server. Für Entwickler von Java Anwendungen ein tolles Tool um die Performance in Echtzeit testen zu können.
Wer weitere Infos zu dem Thema wünscht, einfach unten einen Kommentar schreiben.
Viel Spass und viel Erfolg wünscht Joachim