Performance au quotidien dans un environnement symfony

Directeur Technique Adjoint à Groupe Figaro CCM Benchmark
8 Apr 2016
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
Performance au quotidien dans un environnement symfony
1 sur 43

Contenu connexe

Tendances

Intro  grpc.netIntro  grpc.net
Intro grpc.netMSDEVMTL
04 - [ASP.NET Core] Entity Framework Core 04 - [ASP.NET Core] Entity Framework Core
04 - [ASP.NET Core] Entity Framework Core Cellenza
03 - [ASP.NET Core] Services RESTful et SPA 03 - [ASP.NET Core] Services RESTful et SPA
03 - [ASP.NET Core] Services RESTful et SPA Cellenza
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, LinuxYasmine Amrani
Redeploiement d’une plateforme eZpublish multisites internationaleRedeploiement d’une plateforme eZpublish multisites internationale
Redeploiement d’une plateforme eZpublish multisites internationaleKaliop-slide
Présentation de PHP 5.4 [FR]Présentation de PHP 5.4 [FR]
Présentation de PHP 5.4 [FR]Wixiweb

En vedette

lafourchette.com table sur Esker pour l’envoi de ses factureslafourchette.com table sur Esker pour l’envoi de ses factures
lafourchette.com table sur Esker pour l’envoi de ses facturesESKER
Cas client La fourchetteCas client La fourchette
Cas client La fourchetteESKER
Rapport La FourchetteRapport La Fourchette
Rapport La FourchetteJules Martin
Food & Tech StartupsFood & Tech Startups
Food & Tech StartupsCedric Giorgi
e-réputation et réservation en ligne, deux outils clés de la commercialisatio...e-réputation et réservation en ligne, deux outils clés de la commercialisatio...
e-réputation et réservation en ligne, deux outils clés de la commercialisatio...echangeurba
Presentation du framework symfonyPresentation du framework symfony
Presentation du framework symfonyJeremy Gachet

Similaire à Performance au quotidien dans un environnement symfony

Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureMarc Nazarian
Cologne Web Performance Optimization Group Web - VarnishCologne Web Performance Optimization Group Web - Varnish
Cologne Web Performance Optimization Group Web - VarnishD
Symfony 4 2019Symfony 4 2019
Symfony 4 2019Eric Para
Ecrire et déployer une appli PHP maintenableEcrire et déployer une appli PHP maintenable
Ecrire et déployer une appli PHP maintenableChristophe Villeneuve
PrestaShop Day Paris - le futur de PrestaShopPrestaShop Day Paris - le futur de PrestaShop
PrestaShop Day Paris - le futur de PrestaShopPrestaShop
Intégration Continue et PHPIntégration Continue et PHP
Intégration Continue et PHPOswald De Riemaecker ☁

Performance au quotidien dans un environnement symfony

Notes de l'éditeur

  1. 4 sites dans le top 40
  2. Il ne manquerait pas quelque chose ? Les tests de performance ! Difficiles à automatiser (qu'est ce que je mesure et comment) ? Reprenons cette présentation au début
  3. Pourquoi on est aussi sévères Pourquoi varnish / le cdn ne sont pas les seules bonnes réponses 10 To de RAM pour varnisher tous nos sites
  4. De la même manière que pour un bug, plus la détection est tardive, plus le nombre de personne mobilisé augmente et plus l’impact business est important. Effet cascade d'une requête qui prend trop de temps
  5. PHP Postgresql MariaDB Memcached Redis Varnish Akamai
  6. Quel type d'outil ? Un framework full stack ou un micro framework ? Comment s'assurer qu'on a toujours de bonnes performances. Etude pour choisir le nouveau framework
  7. Et là, bingo, on confirme toutes les théories sur le fait que les framework full stack, c'est long et lourd.
  8. Symfony s’en sort légèrement mieux que laravel en conso CPU. Par contre en mémoire il s’agit du plus gourmand. Evidemment le plain PHP est bien plus rapide que l’ensemble des des frameworks testés et sert de groupe test. Le fmraework
  9. Doctrine est un bon outil, cependant il ne répond pas à nos contraintes  comment faire dès lors ?
  10. Pour un project long terme, Active Record n’est pas un bon choix. D’ailleurs c’est considéré comme un anti pattern  Séparation des responsabilités!
  11. Pour un project long terme, Active Record n’est pas un bon choix. D’ailleurs c’est considéré comme un anti pattern  Séparation des responsabilités!
  12. On ne développe pas des librairies mais des implémentations. Nous avons actuellement Postgresql & MariaDb  on souhaite pouvoir utiliser les syntaxes spécifiques de ces outils lorsque c’est nécessaire.
  13. On ne développe pas des librairies mais des implémentations. Nous avons actuellement Postgresql & MariaDb  on souhaite pouvoir utiliser les syntaxes spécifiques de ces outils lorsque c’est nécessaire.
  14. Un outil Open-Source qui répond à nos contraintes Le TingBundle pour l’intégrer à Symfony Le TingUserBundle pour exploiter FosUserBundle
  15. Pour optimiser son cache de requête  le cache infini est la meilleure solution  Je supprime les données du cache à chaque fois qu’elles sont modifiées à la source.
  16. Pseudo standard  soumis en 2001 au W3C qui ne l’a pas approuvé Très simple dans l’absolu: on intègre un code XML Fonctionnement intégré nativement à Symfony  génération automatique des URL de fragment: il suffit simplement d’activer le support des ESI sur son reverse proxy
  17. Pas utilisable actuellement sur varnish. Intéressant notamment sur akamai car réseau entièrement dédié avec des routes optimisées en permanence Alternatives pour varnish: hit for pass: si une page doit nécessairement être en cache: force une requête en bypassant le cache Ban: on expurge simplement le cache et la prochaine requête aura une version fraiche
  18. Principe de base, on ne devrait jamais avoir un fichier de cache qui se compile en prod. Il faut toujours s’assurer que l’ensemble des fichiers nécessaire soit créé avant. Et si besoin le surveiller  L’implémentation de twig avait un problème: les fichiers compilés lors du cache-clear n’étaient pas forcément exploités et étaient régénérés avec une clé différente (résolution de chemins différente). On a corrigé ça et c’est dispo depuis Twig 1.18.0 On ne peut pas se permettre de laisser le premier internaute se prendre le temps de génération dans la vue  et si c’est google on le paye le prix fort.
  19. Quand on voit ça on se dit que tout va bien  le cache:clear est en réalité effectué avec l’option –no-warmup
  20. Cache-warmup à false par défaut  symfony effectue un cache:clear –no-warmup. Assets-Install: hard  le système n’a pas besoin de lire le lien symbolique pour trouver les assets  gain direct sur les disques
  21. 3 étapes Simples : 1 – Je constate qu’il y a un problème (158ms au total, 77ms d’IO) 2 – Je repère la fonction problématique 3 – Je repère son contexte d’exécution
  22. Après le BDD, les TDD, le BBDD J'appelle cette méthode le BBDD: Broken By Design Development
  23. Avoir un backend qui répond rapidement est une bonne chose, mais ça ne sert à rien si votre front-end tue vos performances. Attention à ne charger que les bons assets, s’assurer de les compiler en un seul appel et d’avoir le maximum d’appels asynchrones. Petit rappel basique  assets sur serveur cookie less, éventuellement un CDN