Avec une équipe technique de 5 personnes, l’application Yuka qui évalue la qualité des produits alimentaires et cosmétiques, gère plus de 70 scans par seconde et 68 millions d’utilisateurs à travers le monde.
Alors que l’application mobile ne cesse de croître avec plus de 5 millions de produits référencés dans 13 pays, sa plateforme technique vient de franchir une étape majeure en passant de Symfony 4 à Symfony 7, avec l’aide de SensioLabs à l’origine de Symfony.
Trois enjeux majeurs ont dicté cette modernisation :
Optimiser les performances en intégrant les derniers standards du langage PHP et de Symfony. Yuka a mis en place des systèmes de mise en cache avancés réduisant drastiquement le nombre de requêtes serveurs et les coûts d’infrastructure.
Garantir la sécurité de l’application avec les derniers correctifs de sécurité et un support garanti jusqu’à fin 2028.
Faciliter le recrutement en évoluant sur les technologies les plus récentes du marché pour attirer plus facilement les meilleurs talents.
Une montée de version étape par étape
Selon SensioLabs, la migration ne s’est pas faite en une seule fois.
Initialement bâtie sur Symfony 4 et sur EasyAdmin 1 pour son interface d’administration, l’application a gravi les versions une à une : Symfony 5, puis 6, puis 7 avec en parallèle une montée d’EasyAdmin jusqu’à sa version 4.
Ce chantier s’est accompagné d’une mise à jour de tout l’environnement technique, avec le passage de PHP 7.4 à PHP 8.3 et celui de l’ORM Doctrine, passé de sa version 2 à sa version 3.
Ce séquençage précis a permis de suivre les bonnes pratiques recommandées par Symfony et d’éviter les mauvaises surprises, alors que le passage aux dernières versions de Symfony et d’EasyAdmin nécessitait un travail important de refactoring du code, du fait de l’évolution des standards et de la nécessité d’adapter les personnalisations d’EasyAdmin.
Une occasion d’outiller et de fiabiliser le code
Au-delà de la seule montée de version, ce chantier a aussi été l’occasion pour Yuka de renforcer ses pratiques de développement.
Toujours selon SensioLabs, l’équipe a notamment mis en place une chaîne d’intégration continue (CI) qui n’existait pas auparavant, harmonisé ses pratiques de code grâce aux outils PHPStan, Rector et PHP CS Fixer, et renforcé sa couverture de tests.
Des revues de code régulières et des tests de non-régression ont également été instaurés pour garantir la performance et la qualité du code sur le long terme.
Cette modernisation a aussi été l’occasion pour Yuka de contribuer concrètement à l’écosystème open source. Les contributions ont porté sur plusieurs bundles tiers, dont NzoUrlEncryptorBundle, kreait/firebase-bundle et algolia/search-bundle, ainsi que sur EasyAdminBundle lui-même.
« Il était essentiel pour nous de ne pas rester bloqué sur une version vieillissante. Grâce à l’architecture de Symfony, nous avons pu moderniser simplement notre socle technique et propulser notre application à l’échelle mondiale », résume François Martin, cofondateur et CTO de Yuka.
Photo : François Martin © DR
The post Yuka monte en puissance avec Symfony 7 appeared first on Silicon.fr.