• Docs
  • Talk to an expert
Blog
Blog
BlogProduitÉtudes de casNouvellesPerspectives
Blog

Blackfire : une solution complète d'observabilité

performanceBlackfireobservabilité
10 janvier 2024
Thomas di Luccio
Thomas di Luccio
Ingénieur DevRel
Partager
Cette page a été rédigée en anglais par nos experts, puis traduite par une IA pour vous y donner accès rapidement! Pour la version originale, c’est par ici.

Remarque : Blackfire est la solution d’observabilité du cloud d’Upsun incluse dans tous les projets PHP et Python sur la plateforme PaaS d’Upsun et qui permet le profilage continu de tes applications Go et Node.js.

La quête de la performance parfaite est un parcours sans fin. Ce n’est pas gagné dès qu’un goulot d’étranglement a été corrigé, même si ça peut ressembler à une bataille épique et glorieuse. C’est un effort constant pour identifier rapidement les problèmes et les éliminer avant qu’ils ne deviennent incontrôlables, afin de garantir une performance aussi fluide que possible.

Mais ça soulève une question : est-ce que des performances parfaites sont vraiment possibles ? Eh bien, la perfection, dans n’importe quel domaine, n’est pas vraiment possible. Mais tu peux t’en approcher très, très près.  

Élaborer une stratégie d’observabilité pour des performances quasi parfaites

Élaborons un plan d’attaque ! Ou mieux encore, une stratégie d’observabilité. Ce type de plan est essentiel pour les organisations qui cherchent à fournir des logiciels fiables et hautement performants dans un environnement en constante évolution et au rythme effréné.

Mettre en place une stratégie de surveillance et d’observabilité permet aux entreprises d’adopter une approche proactive pour surveiller leurs systèmes, ce qui est bien mieux que d’attendre que les problèmes surgissent pour y réagir.

Blackfire propose une solution de surveillance et d’observabilité unique et complète qui te permet de construire ta propre stratégie, et le mieux, c’est qu’elle est disponible avec Upsun Cloud. 

Voici les éléments d’une stratégie d’observabilité que tu peux adopter. Si tu décides de te lancer, ta mission sera d’élaborer un plan adapté à ton entreprise ainsi qu’à tes pratiques de développement et de déploiement.

Surveillance Blackfire

La surveillance Blackfire offre une vue d’ensemble des performances d’une application, y compris tout le trafic HTTP surveillé par défaut. L’interface CLI peut également être instrumentée grâce à une simple configuration.

La surveillance Blackfire t’indique quand et où un problème spécifique s’est produit afin que tu puisses y réagir rapidement. Elle te permet d’explorer en détail une transaction spécifique pour analyser la contribution des différents services utilisés — tels que Redis, la base de données, HTTP, etc. — au temps de réponse.

Alertes Blackfire

Comme tu ne vas pas passer ta journée à attendre qu’un plantage se produise, tu peux configurer des alertes pour être averti. L’accès aux informations critiques ne doit pas nécessairement perturber ton processus habituel. Les alertes et les délais d’attente sont transmises vers n’importe quel canal que tu utilises déjà, comme l’e-mail, Slack, Microsoft Teams ou d’autres services web.

Le profileur Blackfire

Une fois le diagnostic posé, tu peux analyser en profondeur le comportement de l’application grâce au profileur Blackfire jusqu’à identifier la fonction ou les appels de service précis à l’origine du problème de performance. Le profileur Blackfire te permet également de comprendre pourquoi ton application se comporte d’une certaine manière.

Toutes tes requêtes SQL et tes appels HTTP sont identifiés et répertoriés à côté des graphiques d’appels et des vues chronologiques. Pour rendre les informations de surveillance et d’observabilité plus complètes, le profil fournit également des « Recommandations », une liste d’informations exploitables et des détails sur l’utilisation et la configuration du cache.

Suite de tests Blackfire

Une fois le code d’un script optimisé, une bonne pratique consiste à comparer les profils « avant » et « après » pour t’assurer que ta correction ne provoque pas d’effets secondaires. 

Il reste encore une chose à faire avant de déployer en production : écrire des tests.

Blackfire propose une suite de tests complète. Les assertions personnalisées sont définies dans un fichier .blackfire.yaml et sont évaluées à chaque fois qu’un profil est déclenché. Ça facilite la détection des baisses de performances.

Il existe également des intégrations avec PHPUnit, Behat, les tests fonctionnels Symfony et les tests Laravel. D’autres intégrations sont possibles grâce aux SDK PHP et Python de Blackfire.

Surveillance synthétique

Les performances des parcours utilisateurs critiques de tes applications peuvent également être évaluées régulièrement. Ces parcours utilisateurs, ainsi que les attentes associées à chacun d’entre eux, peuvent être décrits dans des scénarios.

Lors de l’évaluation, un profil est déclenché à chaque étape de chaque scénario. Comme pour tous les profils, les assertions correspondant aux requêtes sont évaluées. Un rapport de build regroupe les résultats de tous ces profils.

Un rapport de build est un outil pratique pour vérifier d’un seul coup la santé de grandes parties d’une application. Les builds Blackfire peuvent être déclenchés manuellement, périodiquement et via des webhooks.

On ne saurait trop te recommander d’intégrer la dernière génération de builds Blackfire à tes pipelines CI/CD. Ces intégrations empêchent la fusion d’une pull request ou le déploiement de code en production si cela nuit aux performances de ton application. Cela garantit les performances de tes applications sur le long terme.

Ensuite, des tests de performances automatisés et périodiques intégrés aux pipelines CI/CD protègent l’application en prévenant toute dégradation des performances.

Article initialement publié par Thomas di Luccio sur Blackfire.io. 

Regarde cette vidéo

Restez informé

Abonnez-vous à notre newsletter mensuelle pour les dernières mises à jour et nouvelles.

Déployez en toute liberté.
Essayez Upsun gratuitement.

Développez avec DispatchDéployez avec Cloud