Jetzt heißt es: Profilen, was das Zeug hält

Qafoo Profiler betritt die Open-Beta-Phase
Kommentare

Was bisher immer nur ein Ausblick auf das war, was in Zukunft mit dem Profiler auf uns zukommen wird, betritt nun die große Bühne: Der im Juni vorgestellte Qafoo Profiler tritt in die Open-Beta-Phase ein. Interessierte Benutzer können sich ab sofort registrieren und selbst einen Blick riskieren. Darüber hinaus gibt es nun auch einen Ausblick auf das Pricing – vorgesehen sind Pläne für bis zu 5 Millionen Requests pro Tag.

Der Qafoo Profiler

Mit dem im Juni vorgestellten Qafoo Profiler betritt ein neuer Player den Applikations-Analyse-Markt. Der Profiler, der auf Facebooks XHProf aufbaut, möchte vor allem mit umfangreichen Analysen, maßgeschneiderten Optimierungsvorschlägen und einem aufgeräumten Dashboard überzeugen.

Screenshot des Dasboards im Qafoo Profiler Das Dasboard bietet einen detaillierten Überblick

Während bisher nur ausgewählte Partner mit dem Tool experimentieren konnten, betritt das Team nun die nächste Stufe auf dem Weg zum finalen Produkt: die Open-Beta-Phase ist eröffnet.

Open Beta is open

In der bisherigen Closed-Beta-Phase konnte das Team mit 100 ausgewählten Testnutzern an den Features für den Profiler arbeiten. Heraus kam eine SaaS-Plattform, die vor Kurzem die 500-Millionen-Request-Marke geknackt hat und damit bereit ist, den Schritt in die Open-Beta-Phase zu wagen.

Ein Stützpfeiler des Profilers ist dabei die ursprünglich von Facebook erdachte PHP-Extension XHProf, deren Weiterentwicklung nach dem Release der HHVM – vorsichtig formuliert – ins Stocken geriet. Das ist übrigens auch der Grund für den Fork durch Qafoo. Weitere Details dazu findet ihr im Interview etwas weiter unten.

Konfigurationsmöglichkeiten

Der Profiler bietet eine umfangreiche Packages-Konfiguration. So gibt es unter anderem die Möglichkeit, den Impact des Composer AutoLoadings zu tracken oder die verschiedenen Bereiche von Doctrine (Annotations, Common, DBAL und ORM) genauer unter die Lupe zu nehmen. Auch Informationen zu Elasticsearch oder Memcache können ohne Probleme hinzugeschaltet werden.

Vorgefertigte Packages untersuchen die Auswirkungen von Smarty oder Twig auf die Performance, ebenso wie sie detaillierte Informationen zu Drupal 7, Oxid, Shopware oder Magento geben.

Wer sich einen tieferen Einblick verschaffen möchte, sollte sich für die Open-Beta-Phase anmelden und selbst einen Blick riskieren.

Pricing

Wie eingangs bereits erwähnt, gibt es nun auch Informationen zum Pricing – insgesamt drei Pläne stehen in der offenen Beta-Phase zur Verfügung: Startup, Business und Enterprise.

Der Startup-Plan verarbeitet bis zu 100 000 Requests pro Tag und schlägt mit 99 Euro pro Monat zu Buche. Der Business-Plan deckt 500 000 Requests pro Tag ab und kostet 199 Euro, während man mit dem Enterprise-Paket für 399 Euro pro Monat satte 5 Millionen Requests pro Tag abdeckt.

Für welches Paket man sich auch entscheidet: Eine kostenlose 14-tägige Testphase ist in der Registrierung enthalten.

Alle weiteren Informationen zum Qafoo Profiler findet man auf der offiziellen Website.

Jetzt aber lassen wir noch einen der Köpfe hinter dem Profiler zu Wort kommen.

Hintergründe zum Qafoo Profiler

PHP Magazin: Zunächst einmal die Frage: Warum habt ihr überhaupt mit diesem Projekt begonnen?

Tobias Schlitt: Wir führen häufig für unsere Kunden Performancetests durch – da geht es um Themen wie „Verkraftet mein Shop mit dieser Hardware die TV-Kampagne?“. Kommt dabei dann heraus, dass die Anwendung schon bei der Hälfte der Last zusammenbrechen würde, sind die Anschlussfragen immer „Woran liegt das?“ und „Wie können wir das Problem beheben?“.

Also folgt das klassische Profiling: XHProf aufzusetzen, Datenbank einrichten, GUI dazu basteln und eigene Skripte gegen die Daten ausführen, um bessere Insights zu bekommen. Das kostet natürlich jedes Mal ordentlich Zeit und oft auch ordentlich Nerven. Also haben wir versucht, die Vorgehensweise weitest möglich von Schmerzen zu befreien und in ein Tool zu gießen: Das war dann die erste Version des Qafoo Profilers.


Tobias SchlittTobias Schlitt ist Diplom-Informatiker (Uni) und arbeitet seit mehr als zehn Jahren in professionellen Webprojekten auf Basis von PHP. Als Open-Source-Enthusiast beteiligt er sich an verschiedensten Communityprojekten. Tobias ist Mitgründer der Qafoo GmbH, die Teams mit Experten-Consulting und individuellem Training dabei unterstützt, hoch-qualitative Webanwendungen zu entwickeln. Tobias beschäftigt sich in diesem Rahmen hauptsächlich mit den Themen Software-Architektur, objektorientiertes Design und automatisiertes Testen..


PHP Magazin: Unter der Haube setzt ihr vor allem auf XHProf; warum genau?

Tobias: Im Open-Source-Bereich gibt es eigentlich nur zwei Alternativen für das PHP-Profiling: Xdebug und XHProf. Xdebug eignet sich nicht für den Einsatz in Produktivsystemen, da der mitgebrachte Performance-Overhead zu hoch ist. Das Tool ist eben primär ein Debugger, der auch Profilen kann.

XHProf hingegen ist extra für das Profiling in Produktion entwickelt worden.

PHP Magazin: Ihr habt vor einiger Zeit XHProf geforkt und mit eigenen Updates und Features erweitert. Was genau habt ihr in diesem Bereich alles unternommen?

Tobias: Im Laufe der Zeit so einiges. Wer Details einsehen möchte, kann sich das Changelog auf GitHub anschauen, denn alle unsere Anpassungen sind Open Source und können auch ohne den Qafoo Profiler benutzt werden. Ich picke mir mal drei der für mich wichtigsten Neuerungen heraus:

  1. Details zu PHP-Funktionen: Aus einigen performancekritischen Funktionen, beispielsweise PDO und CURL, lieferte XHProf bisher keine Daten zurück, um das eigentliche Problem mit der Performance zu identifizieren. Zum Beispiel die eigentliche SQL-Query oder den URL des HTTP-Calls. In unserer Version erhält man zusätzlich zu der Info, dass eine Funktion aufgerufen wird, auch eine Zusammenfassung des SQLs oder den angefragten HTTP-Host.
  2. Layer: Unser angepasstes XHProf kann neben echten Profiles auch eine oberflächliche Messung von wichtigen Funktionen durchführen. Diese ordnen wir sog. Layern zu. Ein Beispiel für einen Layer wäre „Datenbank“, die darin enthaltenen Funktionen sind mysql_query(), PDOStatement->execute() etc. Solche entschlackten Layer-Messungen geben zwar kein komplettes Profil für einen Request wieder, bieten aber dennoch einen Überblick über die Gesamtperformance des Systems. Außerdem ist der Overhead für die Messung so gering, dass sie in jedem Request durchgeführt werden kann. Im Rahmen unseres Profilers messen wir also immer die Layer-Werte und samplen dazu volle Profile, um eine sinnvolle Auswertung zu ermöglichen.
  3. Errors: Neben Performancedaten kann der Qafoo Profiler auch die Fehlerrate der Anwendung messen und aufgetretene Fehler im Detail (incl. Stack-Trace) darstellen. Da man einige Fehler im PHP-Userland nicht sinnvoll abfangen kann – und Frameworks natürlich Fehler größtenteils behandeln, um noch eine sinnvolle Seite darzustellen –, haben wir die benötigten Funktionen in die Profiler-Extension eingebaut.

PHP Magazin: Aktuell gibt es von verschiedenen Seiten Bemühungen, das Projekt XHProf weiterzuführen. Gab es hier eine Zusammenarbeit mit anderen Teams?

Tobias: Grundsätzlich schauen wir uns natürlich die anderen Forks von XHProf an und diskutieren mit verschiedenen Entwicklern über die Möglichkeiten. Eine wirkliche Zusammenarbeit, in der man versucht, die Forks zusammenzuführen, gibt es allerdings nicht. Dazu haben wir derzeit auch noch viel zu viele Ideen im Kopf, bei deren experimenteller Umsetzung eine Kooperation mehr hinderlich als nützlich wäre. Aber wer weiß, was die Zukunft bringt …

PHP Magazin: Ihr habt euer Versprechen wahr gemacht und euren Fork mittlerweile mit einer Open-Source-Lizenz versehen und veröffentlicht?

Tobias: Ja, der Fork steht – wie schon XHProf selbst – unter Apache License 2.0 und ist auf GitHub zu finden.

PHP Magazin: Ihr habt jetzt die Open Beta gestartet – ab wann plant ihr, damit GA zu gehen?

Tobias: Bisher gibt es da noch keinen konkreten Plan, aber wenn die Zeit reif ist, werden wir euch das umgehend wissen lassen. 😉

PHP Magazin: Gibt es weitere Pläne für die Zukunft? Welche Features schlummern noch in euren Köpfen?

Tobias: Die Closed Beta hat uns bereits eine Menge Feedback gebracht. Das hat beispielsweise zwei Mal dazu geführt, die Oberfläche komplett umzubauen. In der Open Beta konzentrieren wir uns jetzt auf die endgültige Stabilisierung und viele nützliche Features auf Basis des jetzt bestehenden Grundgerüsts. Ziemlich weit oben in der Wunschliste stehen Alerts, also Benachrichtigungen bei kritischen Änderungen im Livesystem. Außerdem ist es uns sehr wichtig, dem Benutzer noch mehr direkt umsetzbare Hinweise zu geben, wie er die Performance der Anwendung verbessern kann. Dazu kommt hoffentlich ganz viel Feedback von unseren Beta-Testern, dass wir dankbar aufnehmen und in viele weitere coole Features einfließen lassen werden.

Aufmacherbild: bDetective with magnifying glass for cartoon design. von Shutterstock / Urheberrecht: matsevich_maxim

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -