La parole est aux speakers : Kévin DUNGLAS

Publié le

Jusqu’à l’AFUP Day 2024, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

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 !

La Comédie
24/05/2024
16:45-17:25

Envisagerais-tu encore de faire une application PHP non dockerisé ? Si oui, pour quelle(s) raison(s) et sous quelle(s) condition(s) ? Sinon, que dirais-tu aux personnes qui ne souhaitent pas le faire ? Quels sont les services de conteneurisation que tu recommandes ? Et pourquoi Kubernetes ?

Oui, rien ne sert d’écraser une mouche avec un marteau piqueur. Pour les petites apps, un bon vieux déploiement sur des serveurs bare metal suffit amplement. Les outils comme Laravel Forge (qui supporte Laravel mais aussi Symfony et WordPress), ou le déploiement d’applications sous la forme d’un binaire autonome grâce au mode application embarquée de FrankenPHP (que j’ai présenté à la SymfonyCon Amsterdam) permettent d’automatiser les déploiements à 100% et les rendent extrêmement simples.

Pour les applications un peu plus complexes, les Platform as a Service (PaaS) comme Platform.sh, Clever Cloud ou encore Heroku (qui n’utilisent pas non plus Docker) sont aussi de très bonnes solutions.

Ceci étant dit, Docker Compose fonctionne aussi très bien, et n’est pas forcément beaucoup plus compliqué si on part d’un bon template (voir par exemple https://github.com/dunglas/symfony-docker/blob/main/docs/production.md), et permettent d’avoir exactement le même environnement en local, dans la CI et en production, ce qui est un confort non-négligeable et permet de détecter de nombreux problèmes avant qu’ils ne touchent les utilisateurs finaux.

Pour les applications complexes (nombreux services, voire micro-services) ou critiques, il va cependant falloir sortir l’artillerie lourde. De nombreuses solutions existent et permettent de créer des infrastructures haute disponibilité de qualité, mais Kubernetes a l’avantage d’être une solution entièrement libre, supportée par la plupart des acteurs du marché (et installable sur n’importe quel cluster le cas échéant), ayant de très nombreuses fonctionnalités avancées (comme l’auto-réparation ou la mise à l’échelle automatique), un écosystème d’outils énorme et de donner la possibilité de tout paramétrer dans les moindres détails… Mais cette puissance vient avec une grande complexité, et elle a un coût. Mieux vaut être entouré d’une équipe qui connaît Kubernetes sur le bout des doigts.

FrankenPHP devient très populaire, conseilles-tu de l’utiliser pour une application contenerisées en production ?

Oui ! Mais on en reparlera le 24 mai, à Lille évidemment !

Une conférence présentée par

Kévin DUNGLAS
Kévin DUNGLAS
Kévin est le créateur du framework API Platform ainsi que de projets comme FrankenPHP, Mercure ou Vulcain. Il est également membre de la Core Team Symfony et a cofondé la société autogérée Les-Tilleuls.coop.

Autres intervenants