FrankenPHP, sessions dans Materia KV, cycle de vie : ce qui va changer dans PHP sur Clever Cloud

Depuis le début de l'année, nous avons délivré. Les nouveautés ont été nombreuses sur Clever Cloud, certaines plus visibles que d'autres.

Si nous aurons l’occasion de détailler tout cela dans de prochains articles, et que vous pouvez en avoir un aperçu au sein de notre changelog public, il y a un sujet qui nous tient à coeur : nos images.

La refonte des images

Chaque fois que vous déployez un add-on ou une application sur notre plateforme, notre orchestrateur met à votre disposition une machine virtuelle basée sur Exherbo Linux, pour laquelle nous avons compilé spécifiquement le noyau et les binaires mis à votre disposition afin de vous garantir un environnement GNU/Linux classique, performant, à jour et sécurisé. La configuration de cet environnement se fait de manière standard, principalement via des variables d’environnement.

Ce système minimal, spécifique à nos besoins et prêt à être configuré, compose ce que nous appelons nos images. Et nous avons radicalement changé notre manière de les concevoir ces derniers mois. En effet, nous disposions jusqu’à lors d’images différentes pour chacun de nos runtimes/langages supportés ou presque. Leur mise à jour et test étaient parfois complexes et très manuels. Nous avons donc simplifié et automatisé tout cela.

Depuis quelques semaines nous disposons d’une image unique, générée régulièrement, qui diffère très peu selon les besoins, et à qui nous faisons passer une batterie de tests drastiques afin de nous assurer que n’importe quelle application se déploiera sans accrocs au fil des évolutions. Sa mise en place s’est faite en douceur au fil des mois, nous arrivons actuellement au bout de ce processus qui s’est fait de manière transparente pour l’ensemble de nos clients.

Pourquoi vous en parler aujourd’hui ? Parce que c’est grâce à elle que nous allons pouvoir revoir et améliorer de manière progressive la manière dont vous déployez des applications sur Clever Cloud. Nous avons déjà posé quelques briques ici et là, comme avec l’intégration d’uv pour Python par exemple. Mais les choses vont changer de manière bien plus importante dans les prochains mois et courant 2025. L’un de nos plus gros runtimes concernés est PHP.

PHP 8.4, sessions dans Materia KV

Nos discussions l’année dernière avec la communauté à l’occasion de Forum PHP, nous a permis d’imaginer la manière d’améliorer les choses. Être plus réactifs sur la manière de supporter les nouvelles versions de PHP était l’une des demandes récurrentes. Les changements opérés nous permettrons notamment de tester plus rapidement le passage à PHP 8.4, attendu pour fin novembre. Une fois validé et intégré à Clever Cloud, vous pourrez l’activer via une simple mise à jour de variable d’environnement.

La flexibilité des sessions PHP était aussi un sujet revenant régulièrement. Actuellement, elles peuvent se reposer sur du stockage local persistant ou une base de données Redis liée à votre application. Cet été, nous avons travaillé à adopter notre technologie Materia KV à ce besoin. Nous avons mis en production il y a quelque jours une nouvelle version supportant les clés pouvant expirer et certaines commandes permettant son support de manière transparente pour les utilisateurs.

En pratique, c’est assez simple : récupérez le contenu du dépôt ci-dessus avec git, les Clever Tools, puis créez une application PHP comme si elle devait héberger ses sessions sur une base de données Redis, le code est identique :

clever create -t php --alias phpSessions
clever env set ENABLE_REDIS "true"
clever env set SESSION_TYPE "redis"

Ensuite, créez un add-on Materia KV, liez-le à l’application qui vient d’être créée :

clever addon create kv phpSessionsKV --link phpSessions

ll vous suffit alors de déployer l’application. En quelques secondes vous aurez le résultat attendu, en profitant de tout ce qui compose la plateforme Clever Cloud : un maintien en conditions opérationnelles, une gestion des domaines et des certificats TLS, des logs, des métriques, etc.

clever deploy & clever open

Comment sommes-nous parvenus à ce résultat ? Lorsque nous avons imaginé Materia KV, nous avons cherché à créer une base de données clé-valeur différente, complémentaire à notre offre actuelle. Elle est donc distribuée et très résiliente (les données sont écrites au sein de trois de nos data centers sur Paris) mais peut être utilisée de manière quasiment transparente puisqu’elle est compatible avec des écosystèmes existants.

Ainsi, elle supporte actuellement le protocole qui sert de base à Redis et peut être utilisée avec des commandes similaires ou des clients tels que iredis, redis-cli, valkey-cli, des interfaces graphiques, etc. Nous lui ajouterons sous peu Dynamo DB puis GraphQL.

Franken PHP, amélioration du déploiement

Il y a un autre sujet qui nous tenait à cœur: l’intégration de Franken PHP, développé par nos amis et partenaires des Tilleuls. Mixant PHP avec un serveur web Caddy de manière assez élégante et inhabituelle, cette solution permet de penser de manière différente le déploiement des applications PHP, leur configuration et séduit de manière croissante dans cet écosystème qui a largement regagné en vitalité ces dernières années.

Nous l’avons testé sur Clever Cloud, et expliqué à certains clients comment le déployer, via Docker ou de manière native. Nous souhaitions surtout aller plus loin en l’intégrant directement à nos images pour simplifier son usage au sein de notre plateforme. Ce sera bientôt chose faite, grâce au travail mené sur la simplification et la refonte de nos images. Nous en profiterons pour améliorer progressivement notre déploiement de PHP.

Actuellement, nous avons un fonctionnement qui prend en compte toute la “legacy” de ce langage, qui remonte pour certains à des versions 5.x ou 7.x, ce qui peut parfois nous freiner dans les développement que nous aimerions mettre en place. Passé la sortie de PHP 8.4, nous allons figer le fonctionnement “historique” de notre image PHP afin de permettre à nos clients de pouvoir profiter d’une stabilité dans le déploiement de leurs applications.

Mais cela nous permettra surtout de réinventer certaines choses en nous focalisant sur les version de PHP activement supportées, avec une gestion claire du cycle de vie des applications et de nos runtimes. Nous vous détaillerons ce plan un peu plus tard dans l’année.

Rendez-vous au Forum PHP

Vous l’aurez compris, la communauté PHP est importante pour nous. C’est d’ailleurs pourquoi nous sommes partenaires de l’AFUP encore cette année. Ainsi, nous serons présents au Forum PHP 2024 qui se tient ces 10 et 11 octobre à l’hôtel New York de Disneyland Paris. N’hésitez pas à venir échanger avec nous, nous aurons quelques surprises et exclusivités à montrer sur place. Ce sera aussi pour vous l’occasion de nous faire part de vos retours et demandes. Car c’est aussi comme cela que nous voulons construire le futur de Clever Cloud : ensemble.

Blog

À lire également

FrankenPHP, sessions dans Materia KV, cycle de vie : ce qui va changer dans PHP sur Clever Cloud

Depuis le début de l'année, nous avons délivré. Les nouveautés ont été nombreuses sur Clever Cloud, certaines plus visibles que d'autres.
Entreprise

SuperBOL : La révolution du COBOL sur le Cloud

Le COBOL, langage de programmation vieux de plus de 60 ans, continue d’alimenter une grande partie des systèmes informatiques des grandes entreprises mondiales, notamment dans les secteurs financiers et assurantiels.
Entreprise

Clever Cloud accueille les premières startups du Programme UP

Clever Cloud est fier d'annoncer l'arrivée des cinq premières startups sélectionnées pour intégrer son Programme UP, une initiative dédiée à soutenir les jeunes entreprises technologiques en phase de croissance.
Entreprise