API Platform 2.7 vers 3.x : l’upgrade-path ultime !

API Platform 3.2 est sorti en octobre 2023, et pourtant encore trop de projets restent sur la version 2. Cette migration majeure, bien que nécessaire, s’avère parfois compliquée. La majorité du temps, la montée de version du code custom en est la cause.

À travers cette conférence, nous allons détailler l’upgrade path proposé par API Platform, et étudier comment gérer les cas particuliers.

Microservices, maxi supplice

Sur notre projet, comme souvent, la dette technique a commencé au jour 1. Après 2 ans avec une dizaine de devs, l’application, découpée depuis son commencement en micro-services (7 puis 4), souffre de problèmes de couplages entre services, et donc, de gros problèmes de performances, comme des requêtes essentielles qui répondaient en plus de 44sec (p95). Elle est déjà utilisée en production par de gros clients et cet enjeu de performance freine son développement. Dans ce contexte, nous allons orchestrer une task force de 4 devs et Ops sur environ 3 mois pour fusionner ces micro-services en un monolithe. Cette fusion doit s’inscrire dans la roadmap d’un projet en évolution constante et gêner le moins possible les ajouts fonctionnels.

Dans ce talk, nous parlerons de pourquoi et comment détruire une archi micro-services pour retourner vers un majestueux monolithe :

  • Pourquoi un découpage en micro-services nécessite une maturité technique et métier que nous n’avions pas
  • Comment nous avons commencé par instrumenter pour détecter les bugs ou variations de performances
  • Comment nous avons analysé l’existant pour en déduire un plan avec des itérations régulières et moins risquées
  • Comment nous avons utilisé des outils visuels pour embarquer et synchroniser les autres équipes
  • Comment nous avons géré les problèmes rencontrés en cours de route

Avec ce talk nous espérons vous montrer qu’il est toujours possible de résorber ce genre de dette technique. Si nous l’avons fait, vous pouvez y arriver sur votre projet et bénéficier de notre retour d’expérience.

Release Management de Firefox

Comment Mozilla livre toutes les deux semaines un navigateur à des centaines de millions d'utilisateurs dans le monde.

Introduire de la qualité dans un projet “legacy”

La qualité de code est désormais un sujet largement intégré par les devs dans l'écosystème PHP et les bonnes pratiques sont largement documentées. S’il est relativement simple de mettre en place ces pratiques dans une nouvelle base de code, qu’en est-il sur un projet dit “legacy” qui a été construit sans en tenir compte ?

Après un rappel de ce qu’on entend par “qualité de code” et code “legacy”, nous verrons comment introduire sereinement quelques pratiques liées à la qualité de code dans un tel projet :

  • Stratégie de tests : quels types de tests privilégier sur du code existant qui n’en comporte pas ? sur le code ajouté ?
  • Ajouter un outil d’analyse statique de code : quels outils ? Comment gérer les corrections sur le code existant tout en sécurisant le code ajouté ?
  • Revues de code : processus de review / définir des conventions de code, comment gérer l’application de ces conventions sur la modification du code existant et sur le code ajouté ?
  • Quelques techniques de refactorisation pour tendre vers un code plus SOLID ?

PHP: Particularly Horrible Programs

PHP est votre outil de prédilection, mais est-ce-que vous connaissez vraiment PHP ?

Dans ce talk ludique et bon enfant on explorera les bizarreries du langage et des choses techniquement faisables mais peu recommandables qui auront le don de vous surprendre.

Profiler son application PHP en toute gratuité

Plongez dans le monde du profiling PHP sans dépenser un centime ! Cette conférence explorera les différentes solutions de profiling disponibles gratuitement, offrant un aperçu détaillé de leurs avantages et de leurs fonctionnalités. On connaît tous plus ou moins Blackfire, régulièrement hors-budget pour être intégré à nos projets. Il serait trop facile d'abandonner là la traque aux bugs et performances. Il est donc temps de découvrir les alternatives existantes !

J'ai testé API Platform V3, qu'est ce que j'en pense en tant que développeuse C# ?

Depuis l'API Platform Conf en septembre 2023, j'étais très curieuse d'utiliser API Platform V3, la dernière version sortie en septembre. J'ai du coup eu l'occasion de pouvoir tester ce framework à travers mes streams sur Twitch et je profite de cette occasion pour vous donner mon point de vue de développeuse C# .NET sur ce framework. Ses avantages, ses inconvénients ? Vous saurez tout.

Applications PHP conteneurisées : retour d'expériences et bonnes pratiques

API Platform est l'un des premiers frameworks PHP a avoir fourni nativement le support de Docker, de Docker Compose puis de Kubernetes et encore plus récement de Skaffold.

Le squelette d'API Platform a aussi servi de base à Symfony Docker, la solution la plus populaire pour conteneuriser les projets Symfony.

Ces années de développement de squelettes compatibles à la fois avec les environnements de dev, les chaînes d'intégration continue et les environnements de production ainsi que le run en prod d'applications PHP conteneurisées de toutes tailles nous a permis d'accumuler une forte expérience concernant la contenarisation d'applications PHP.

Est-il possible et souhaitable d'utiliser les mêmes images en prod qu'en dev ? Comment optimiser les temps de build ? Comment rendre nos apps compatibles à la fois avec Linux, Mac et Windows ? Kubernetes est-il indispensable ou Docker Swarm est-il encore vivant ? Quid des autres orchestrateurs ? Mieux vaut-il utiliser PHP FPM, le mod_php d'Apache ou encore FrankenPHP dans des environements conteneurisés ? Comment gérer la sécurité et les mises à jours de conteneurs ?

Au cours de cette conférence, nous disséquerons la dernière version des squelettes d'API Platform afin de comprendre comment conteneuriser de manière efficace et élégante n'importe quelle application PHP. Nous partagerons ensuite un certain nombre de tips and tricks acquis dans la souffrance !

Gitlab et Drupal

Vous est-il déjà arrivé de travailler sur des projets où personne n'avait mis en place de CI/CD, ou les devs avaient patché en local au lieu de créer une issue sur Drupal.org ? Nous allons parler ici d'init projet avec GitLab-CI, de l'importance d'une bonne revue de code, d'écoconception et d'équipe projet #OneTeam.

Keynote d'ouverture

Bienvenue à l'AFUP Day 2024 Lille

Keynote de clôture

Fin de cette journée d'apprentissages en compagnie de la communauté PHP.