© saicle/Shutterstock.com
Eine neue Browser-Toolbar nicht nur für Entwickler

Raychlich Infos


Im Rahmen des im Juni vorgestellten Zend Servers 7 hat Zend Technologies ein neues Feature für Entwickler präsentiert: Z-Ray, eine vom Applikationscode unabhängige Browser-Toolbar, die sich in den HTML-Output einklinkt und vielfältige Informationen des gerade ausgeführten Requests preisgibt. In der aktuellen Zend-Server-Version 8 hat Z-Ray auf der Featureliste noch einmal mächtig zugelegt: Applikationsspezifische Erweiterungen, Custom Extensions und API-Call-Analyse durch Z-Ray Live.

Eine Browser-Toolbar? Reichen denn nicht die „­Chrome Developer Tools“ und „Firebug“? Außerdem hat doch jedes Framework, Blog- oder Shopsystem sein eigenes Bundle, Modul, Plug-in oder eine Extension zur Analyse von Performance oder Datenbank-Querys. Das ist natürlich richtig. Die Browsertools haben jedoch den Nachteil, dass sie keine Informationen vom Server selbst auslesen können. Und die Erweiterungen der Frameworks und Standard-Apps klinken sich in der Regel sehr tief ins System ein, um an die Informationen heranzukommen. Z-Ray hingegen ist eine eigene PHP-Extension als Bestandteil des Zend-Servers (Kasten: „Zend Server 8“), die Informationen zur Performanceanalyse, des Speicherverbrauchs, Datenbank-Querys und vieles mehr in einer SQLite-Datenbank zwischenspeichert. Diese Daten werden dann wiederum über AJAX Requests in die Z-Ray-Toolbar nachgeladen. Um Missverständnissen vorzubeugen: Z-Ray ist kein Browser-Plug-in. Der Z-Ray-Code selbst ist HTML und JavaScript, das in den Output des Requests injiziert wird. Außerdem muss die Applikation selbst in keinster Weise geändert oder angepasst werden. Aber der Reihe nach.

Zend Server 8

Zend Server 8 ist ein PHP-Application-Server, der anstelle der von der Distribution ausgelieferten PHP-Version installiert wird. Als Webserver stehen unter Linux Apache und nginx zur Wahl, unter Windows sind es Apache und IIS. Zend Server ermöglicht es – unabhängig von der Plattform – die gleiche PHP-Version auf allen Stages auszurollen. Zend Server 8 unterstützt PHP 5.5 und 5.6, bei Bugs im PHP-Core und Securityproblemen kann sich an das Support- und Entwicklerteam gewandt werden. Neben den Monitoring- und Performanceoptimierungskomponenten stehen vor allem der Deployment-Prozess und die HA-Cluster-Fähigkeiten im Vordergrund. Durch das REST-API kann jegliche Aktion, die mit Zend Server möglich ist, über Web Services gesteuert und kontrolliert werden. Dank dieser Eigenschaften lässt sich Zend Server problemlos in Continuous-Delivery-Umgebungen implementieren. Ein Satz von so genannten „Continuous Delivery Patterns“ wie z. B. Chef Cookbook, das Nagios- oder Bamboo-Plug-in ist Open Source und kann über [1] bezogen werden.

Der einfachste Weg, Z-Ray selbst auszuprobieren, ist es, das Ganze auf einem öffentlichen Testserver unter die Lupe zu nehmen [2]. Nun kann eine Standard-WordPress-Applikation oder Drupal in der Basisausstattung schon einmal gut zeigen, was prinzipiell möglich ist – den eigenen Code zu analysieren hat aber natürlich eine ganz andere Qualität. Wie kommt man also zu Z-Ray? Wie oben bereits geschrieben, ist Z-Ray eine PHP-Extension, die Teil des Zend Servers ist. Um gleich die Angst vor einer Installationsodyssee zu nehmen: Zend Server beinhaltet den PHP-Kern (PHP 5.5 oder 5.6) und erweitert diesen um Zend-Server-spezifische Features, wie z. B. Z-Ray oder das Monitoring (welches auch von Z-Ray genutzt wird). Die Installation ist Dank der Integration ins Paketmanagement nicht schwieriger als die Installation von einem „Vanilla PHP“ mit Apache oder nginx. Im Gegenteil: Durch das Installationsskript lässt sich der Zend Server insbesondere in Verbindung mit nginx mit einer Zeile auf der Command Line ohne weitere Konfiguration installieren. Alternativ kann auch Vagrant oder Docker für die Provisionierung genutzt werden (Kasten: „Zend Server testen“).

Zend Server testen

Eine Installation von Zend Server ist problemlos möglich. Für Windows steht ein EXE-File bereit, für Linux gibt es ein kleines Installationsskript, welche jeweils von [3] heruntergeladen werden können. Eine manuelle Installation unter Linux ist unter [4] beschrieben.

Wer gerne ein Testsystem mit Vagrant aufsetzen möchte, wird im GitHub-Account [5] fündig. Ein Docker-Container mit Zend-Server-Installation ist über das offizielle Docker Repository [6] verfügbar.

Wer Zend Server direkt mit Puppet oder Chef in die Infrastruktur einbinden möchte, der muss keine eigenen Rezepte resp. Skripte implementieren, sondern wird im GitHub-Account [7] fündig.

Nach der Installation muss Zend Server einem Bootstrapping unterzogen werden. Im Wesentlichen geht es um das Setzen von Passwörtern und Akzeptieren der EULA. Ein Punkt ist jedoch für Z-Ray-Nutzer wichtig: Zend Server kann in den Development-, Production- oder Cluster-Modus gesetzt werden. Z-Ray ist nur im Development-Modus (standardmäßig) aktiviert. Das ergibt durchaus Sinn, denn die Informationsfülle von Z-Ray sollte Entwicklern vorbehalten sein und nicht eine „Debug-Möglichkeit“ für den End-User darstellen. Das Bootstrapping wird durch den Aufruf des Zend-Server-UI unter http://HOSTNAME:10081 aufgerufen. Wer https nutzen will, wechselt auf den Port 10082. Im UI lässt sich Zend Server und somit auch PHP selbst komplett konfigurieren und überwachen. Besonders spannend ist es, wenn ein Cluster im Einsatz ist, da eine Konfigurationsoberfläche Änderungen an alle Knoten im Verbund weitergibt.

Los geht’s

Zend Server ist installiert, Apache, nginx oder IIS ist am Start. Jetzt wird noch eine Applikation gebraucht. Diese kann jetzt nach eigenen Wünschen installiert werden. Sei es manuell oder über Composer oder andere Wege. Zend Server gibt diesbezüglich keine Vorgaben; es kann exakt so wie mit einem „Vanilla-PHP“ gearbeitet werden. Zend Server hingegen bietet die Möglichkeit, die Vhost-Verwaltung zu übernehmen und stellt in diesem Zusammenhang einen standardisierten Deployment-Prozess bereit [8]. Darüber können einige Open-Source-Applikationen wie WordPress, Drupal oder Magento direkt über die Oberfläche installiert werden [9].

Ob die Applikation erfolgreich installiert wurde, sieht man am besten im Browser. Und da erwartet uns auch die erste Überraschung: Z-Ray ist aktiv und zeigt uns die ersten Informationen und vielleicht auch Warnungen oder Fehler. Insbesondere dann, wenn die Applikation noch nicht korrekt konfiguriert wurde und es z. B. einen Fehler gibt, weil versäumt wurde, den richtigen Include Path zu setzen.

Fassen wir an dieser Stelle schon einmal kurz zusammen: Z-Ray ist als Bestandteil von Zend Server im Development-Modus direkt aktiv und klinkt sich automatisch in den HTML-Output der Applikation ein, um eine browserunabhängige Toolbar in die Seite zu injizieren, ohne den Code in irgendeiner Form zu modifizieren. Damit hebt sie sich von applikationsspezifischen Debug Toolbars oder Profilern ab. Zum einen ist es egal, welche Applikation mit welchem Framework (wenn überhaupt) im Einsatz ist. Zum anderen muss weder ein Plug-in installiert noch ein Bundle oder Modul aktiviert werden.

Die für diesen Artikel verwendete Beispielapplikation ist ein Drupal-Setup. Um die Applikation zu beschleunigen, wurde das Redis-Modul installiert [10], das dafür verantwortlich ist, die zu cachenden Items im Key-Value Store von Redis zu hinterlegen. Redis wird uns am Ende des Artikels noch etwas beschäftigen, wenn es darum geht, eine eigene Z-Ray-Extension zu schreiben.

Gehen wir nun ans Eingemachte. Eingeklappt gibt uns die Z-Ray-Statusleiste einen ersten Überblick über den Stand des gerade durchgeführten Requests. Es wird der Response-Code angezeigt, der URL-Pfad, die Seitenladezeit mit Speicherverbrauch und diverse Symbole, die auf Warnungen, Fehler, DB-Querys, Funktionsaufrufe und Request-Infos hinweisen. Besonders interessant: Es gibt auch B...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang