Blog

Que choisir en 2020 pour votre votre Backend : Phoenix ou Symfony

Le 2020-09-28, par   Guillaume Le Gales

Symfony s’est imposé comme le framework de référence en France depuis quelques années.

Facile à prendre en main, accessible à un développeur PHP, riches en fonctionnalités, ce framework ne manque pas d’avantages.

Chez Codixis, Symfony sert de base à l’essentiel de nos projets et nous en sommes très satisfaits.

Malgré notre affection pour Symfony, nous avons rencontré des situations où les limites de Symfony / PHP étaient un problème.

Il s’agit d’applications très intenses, collectant massivement des données, tel que du Marketing Automation / de l’Analytics ou du Monitoring. Dans ces 3 situations, l’application reçoit massivement des informations qui doivent etre traitees au plus proche du temps réel.

Historiquement, nous avons combiné Symfony avec d’autres technologies pour atteindre les performances souhaitées.

Nous avions dans notre radar un nouveau Framework, Phoenix, que nous voulions essayer.

Phoenix a pour avantage :

  • une performance comparable (ou meilleure) que nodejs, etant base sur une technologie Telecom de Ericsson spécialisée sur les traitements massifs en parallèle
  • le confort de Symfony, avec un framework MVC bien organise, des générateurs de pages et de tests

Nous avons profité de l'été pour le mettre en oeuvre sur une application adaptée : la refonte de notre service de monitoring.

Phoenix nous a fourni tous les outils pour une refonte réussie.

Nous y avons trouvé :

  • une gestion de tâches intégrée à Postgre (Oban)
  • une insertion par lot dans Clickhouse avec une mécanique de buffering
  • des outils de gestion de base de donnée confortable (Ecto)
  • une intégration à la base Clickhouse, permettant de faire des statistiques en temps réel sans calculs intermédiaires

Le coeur de l’application, le moteur de monitoring, a atteint facilement les objectifs de performance fixés, avec une capacité à monter en charge rapidement.

Le développement de l’interface utilisateur et des API a été très satisfaisant aussi, sans difficulté importante au niveau du développement.

La même application avec Symfony était plus complexe à gérer et monter en charge.

Nous aurions gérer en plus :

  • Go ou similaire pour collecter données de monitoring
  • fluentd pour gérer l’insertion par lot dans Clickhouse
  • rabbitmq pour la gestion des tâches

Grâce à Phoenix, l’application a atteint facilement les objectifs souhaités, sans nécessité la mise en oeuvre d’une infrastructure complexe et compétences multiples.

Alors, allons nous baser tous nos projets désormais en Phoenix ?

Pour la faire courte, non :)

Nous utiliserons Phoenix pour :

  • les projets de nos clients nécessitant des traitements massifs
  • des projets internes pour développer les compétences de notre équipe

Pour les clients n’ayant pas de contrainte technologique spécifique ni de compétence interne en Phoenix, nous recommandons toujours en 2020 :

  • Symfony + HTML pour les projets web
  • Symfony + React pour les projets API centric ou multi-device (mobile + web)

Recevez nos actualités business et technologiques


Inscrivez-vous pour recevoir notre newsletter et en savoir plus sur le lancement rapide d’applications web

Newsletter

Découvrez les succès de nos clients

Application Deafiline
Plateforme Banque de Profil
Extranet M-Gestion
Voir tous les cas client