Neu in Beach: Blackfire Profiling Integration

Es ist eine falsche Annahme, dass eine Anwendung schneller läuft, nur weil sie in die Cloud verlagert wird. Es ist zwar viel einfacher, eine Anwendung dort zu skalieren, aber die Auswirkungen einer schwachen Anwendungsarchitektur, große Mengen an Datenbankabfragen oder eine nicht optimierte Speichernutzung können die Anwendung tatsächlich langsamer machen. Wenn du deine gesamte Anwendung, einschließlich Datenbankserver, Key-Value-Store und Speicher, auf einer einzigen Maschine laufen lässt, wirst du viele der Leistungsprobleme, die in skalierbaren Umgebungen auftreten, nicht bemerken.

Diese Art von Leistungsproblemen ist etwas schwierig zu beheben. Deine Website Neos kann auf deinem brandneuen MacBook Pro ziemlich schnell sein, aber auf einem Produktionsserver schlecht funktionieren. Meistens ist es die Latenz, die die Party verdirbt. In diesen Fällen musst du ein Profiling in der tatsächlichen Hosting-Umgebung durchführen. Und mit der kostenlosen Blackfire-Integration für Flownative Beach ist das nur eine Sache von ein paar Klicks.

Leistungsprofilierung für Neos und Flow

Starte einfach mit Blackfire, indem du zum "Add-On" deines Beach Projekts gehst (verfügbar in Starter-Projekten und höher). Füge deine Blackfire-Kennung und Token für Server und Client hinzu:

Danach kannst du das Blackfire-Profiling für jede Instanz deines Projekts aktivieren. Gehe einfach zu der Instanz, die du profilieren möchtest, und aktiviere das Blackfire-Profiling mit dem Schalter:

Nach dem nächsten Deployment ist deine Instanz für die Profilerstellung mit Blackfire konfiguriert. Beach unterstützt sowohl HTTP(S)- als auch Kommandozeilen-Profilläufe. Für HTTP rufst du deine Instanz einfach mit einem Browser und dem Blackfire Companion Plugin auf.

Das Profiling eines Dienstes oder Befehls, den du über die Kommandozeile ausführst, ist ebenfalls einfach: Melde dich über SSH bei deiner Instanz an und starte mit dem Blackfire-Dienstprogramm einen Profiling-Lauf:

beach@instance-938fcb20-9050-43bd-b23a-51580cac2538-64cdddbdbf-kwzw7:/application$ blackfire run ./flow help
An open source Content Application Platform based on Flow. A set of core Content Management features is resting within a larger context that allows you to build a perfectly customized experience for your users. 4.1.7 ("Production/Beach/Instance" context)
usage: ./flow <command identifier>

The following commands are currently available:
…
Blackfire Run completed
Graph URL https://blackfire.io/profiles/ba2d7261-9ca1-3421-a5a8-47c047e47fc2/graph
No tests! Create some now https://blackfire.io/docs/cookbooks/tests
No recommendations

Wall Time     601ms
I/O Wait      231ms
CPU Time      371ms
Memory       19.2MB
Network         n/a     n/a     n/a
SQL           155µs     1rq

Wir denken, dass es noch nie so einfach war, ein Profil einer Neos Website oder Flow Anwendung in ihrem natürlichen Lebensraum zu erstellen. Viel Spaß!

Oh, nur für den Fall, dass du das noch nicht wusstest: Flownative Beach ist eine Cloud-Plattform, die speziell für Neos und Flow entwickelt wurde. Probiere es einfach aus, es gibt eine 14-tägige kostenlose Testversion und einen Leitfaden, der dir den Einstieg erleichtert!