Comment scaler une application PHP vieille de plus de 20 ans ... sans frozen zone ?

Au cours de cette présentation, nous parlerons de notre architecture N-tiers, un élément fondamental de notre approche pour garantir un système à la fois évolutif et performant. Nous examinerons comment nous avons segmenté notre site en couches pour faciliter la maintenance, favoriser la scalabilité et simplifier les migrations tout en améliorant les performances.

De plus, nous aborderons l'importance cruciale du cache HTTP (Varnish) dans la réduction de la charge serveur et l'amélioration de la réactivité de nos services. Vous découvrirez des outils essentiels tels que Blackfire, qui ont permis une analyse en profondeur et une optimisation efficace de notre code PHP.

Enfin, nous partagerons notre approche de sensibilisation des devs aux enjeux de la performance, afin de prévenir les incidents.

Anatomie d'un projet open-source profitable

Une énorme part du numérique repose sur l'open-source. Entre le/la passionné•e qui dédie ses soirées à un projet de coeur et le géant du numérique qui subventionne à fonds perdu un projet pour cultiver son image de marque, il existe une voie étroite pour faire de l'open-source sans y laisser sa santé.

React-admin est un projet open-source qui est arrivé à générer assez de revenus pour rémunérer une équipe dédiée, sans levée de fonds ni pratiques marketing douteuses. Autrement dit : nous sommes payés pour faire de l'open-source. C'est un doux rêve, mais surtout le résultat d'une alchimie délicate entre opiniâtreté, qualité du code, réactivité, approche produit, documentation, support technique, animation de communauté et gestion financière.

Au-delà du code, quelles sont les recettes pour passer d'un projet open-source populaire à un projet open-source profitable ? Cette conférence non-technique sera l'occasion de partager nos apprentissages.

Gamechanging CSS!

CSS a bien évolué depuis ses balbutiements en 1996 et il nous étonne tous les jours à présent !

D'un simple langage de description, il est devenu un véritable outil de programmation, embarquant variables, imbrications, et conditions. Les évolutions sont parfois si nombreuses qu'il est difficile de tout suivre. Ça tombe bien car c'est justement ce qu'on va faire : un rapide panorama d'une série de fonctionnalités très modernes mais déjà utilisables en production (sélecteurs, cascade, positionnement, container queries, etc.)

Containers, the hard way

La technologie des conteneurs est aujourd'hui incontournable dans le domaine de l'informatique. De l'environnement de développement à la production, les conteneurs sont devenus un moyen simple, moderne et standardisé de packager une application. Docker a grandement favorisé leur adoption en simplifiant leur implémentation et en fournissant aux devs une gamme d'outils pour faciliter leur quotidien. Mais comment fonctionne réellement cette technologie sous le capot ? Après avoir situé le contexte, nous plongerons ensemble dans les rouages de la création d'un conteneur. Venez approfondir votre compréhension du fonctionnement des conteneurs !

Architecture et pattern en mode SaaS

Construire un SaaS est un modèle de business avantageux à plusieurs points, mais son architecture est primordiale à étudier en fonction du type de clients que vous souhaitez intégrer. Seront-ils surtout concernés par l'isolation de leurs données ? Par la scalabilité ? Ou encore souhaiteront-ils une intégration avec certains de leurs outils internes ? Nous parlerons pendant cette conférence des différentes architectures pour gérer plusieurs clients, comparant leurs avantages et inconvénients et nous aborderons aussi la question de l'interconnexion résiliente avec des outils tiers.

OpenTelemetry

Dans une architecture distribuée, étant donné que les microservices évoluent indépendamment, il est nécessaire de pouvoir suivre le parcours d'une requête entièrement. Cependant, en cas d'erreur dans les communications, le suivi de la requête devient fastidueux voire impossible en utilisant les techniques traditionnelles.

Nous devons être en mesure d'observer le système afin d'anticiper les problèmes qui pourraient engendrer une mise hors-service. La collecte, le traitement et la transmission des données télémétriques devient donc primordiale pour répondre à ce besoin, en s'appuyant sur le framework OpenTelemetry.

Au cours de cette conférence, nous verrons les principes de OpenTelemetry et son implémentation dans nos projets PHP.

TDD : principe, architecture synergique, types et stratégie de tests

Le code produit pour une application est rarement celui qu'on avait prévu de prime abord. De plus, ce code va dans la plupart des cas évoluer au fil du temps et des changements du besoin.

Les tests unitaires permettent de s'assurer de la non régression du code sur les fonctionnalités existantes. Le TDD permet de se servir de cette possibilité pour en plus itérer sur de petites unités de code et pour découvrir son architecture au fil du développement.

Au travers d'un exemple en PHP, nous verrons d'abord le principe du TDD et ses avantages. Nous aborderons ensuite le principe de l'architecture hexagonale pour voir en quoi celle-ci permet au TDD de fonctionner à son plein potentiel. Enfin, nous reverrons les types de tests à notre disposition et nous verrons en quoi l'utilisation de ces différents types nous permet de développer le code le moins sujet à bugs possible.

EventStore & PHP

EventStore c’est la base de données hype pour faire de l’event sourcing… L’event sourcing c’est une façon d’organiser nos données et d’architecturer notre code… Et c’est pas des choses qu’on voit souvent en PHP ! Je vous propose de parler un peu de cette architecture peu connue dans notre monde et surtout de parler d’EventStore DB et comment l’utiliser avec PHP.

Combat pour la cohérence et l'harmonie du front

Aujourd'hui il y a mille et une façon d'architecturer et penser une interface web (symfony, vueJs, angular, react et autre magie).

Comment créer un écosystème harmonieux pour assurer la cohérence entre différentes interfaces web ?

Le design, le code, les interprétations personnelles sont autant de facteurs qui influent sur la difficulté à trouver un terrain d'entente entre les parties prenantes. Afin de structurer, d'industrialiser la génération d'éléments graphiques, tout en gardant un consensus, il y a plusieurs méthodologies. Nous allons vous expliquer nos choix, les impacts qui en découlent et les leçons que nous en avons tirées.

  • Faire du code qui marche c'est bien, faire du code qui marche partout, c'est mieux !

  • Quid de la maintenance, l'évolutivité et l'inter-communication de ces mille et unes architectures ?

  • Comment s'assurer que les devs puissent être réactifs tout en gardant le code sain, flexible et leur sanité intacte ?

  • Comment propager cet ecosystème pour qu'il se diffuse sur tous les applicatifs, même les plus anciens (coucou l'enfer des dépendances) ?

Autant de questions que nous allons aborder dans cette présentation !

Keynote d'ouverture

Bienvenue à l'AFUP Day 2024 Nancy !

Keynote de clôture

Fin de la journée de conférences en compagnie de la communauté PHP.