La parole est aux speakers : Emeric Kasbarian et Jérémy James

Publié le

Jusqu’au Forum PHP 2021, 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

Kairoi, et PHP se réconcilie avec les tâches planifiées

Kairoi est un serveur qui permet aux applications web de planifier très facilement des tâches à exécuter dans le futur. C'est un remplaçant moderne de CRON, qui dispose de plusieurs caractéristiques qui vont particulièrement intéresser les développeurs PHP : contrairement à CRON, Kairoi a été conçu dès l'origine pour être configurable à la volée, précis au millième de seconde et scalable.

Le serveur, actuellement en phase de développement, est très simple à utiliser avec notre langage préféré, grâce à une bibliothèque client PHP développée en parallèle du serveur.

Kairoi, contrairement à CRON, tire parti au maximum des architectures distribuées. Il supporte des myriades de clients en parallèle en traitant les données de manière atomique. Il route dynamiquement les tâches à exécuter au moyen de règles configurables et les distribue, grâce aux processeurs, à tous vos workers.

Au cours de cette présentation, nous découvrirons ce nouvel outil Open Source et son intégration PHP.

Katherine Johnson / Roissy
21/10/2021
12:10-12:30

Pourriez-vous nous présenter succinctement le projet Kairoi et les cas d’usage de celui-ci ?

Jérémy : De manière vraiment succincte, on a un serveur Kairoi qui tourne dans l’infrastructure. Une application demande à ce serveur d’exécuter la tâche qu’elle souhaite (soit un script shell, soit publier un message dans une queue RabbitMQ), à un moment donné précis (par exemple « déclenchement dans 18 minutes et 42 secondes »). Côté client, on n’a plus rien à faire. Et côté serveur, il se débrouille pour faire ce qui lui a été demandé, au bon moment.

Pour les cas d’usage, ils sont nombreux. On peut faire expirer des coupons de parrainage ou des paniers. On peut gérer très simplement le renouvellement du paiement pour des abonnements. L’idée c’est que n’importe quel•le dev puisse planifier une tâche simplement. Après, on peut même s’en servir en instantané pour remplacer un Rabbit par exemple, mais là on part un peu dans le futur, on risquerait de s’y perdre ! (rire)

D’où vient le nom du projet ?

Emeric : Un jour, un grand sage a énoncé une méthode pour nommer les projets « à-côté » : « Prendre le dernier dessin animé Disney vu, le nom du méchant, et voilà ! ». Là, malheureusement, on n’a pas pu faire ça pour garder un côté sérieux. À la place, on a suivi la seconde règle : la mythologie grecque. Kairos, c’est une notion qui représente « le moment opportun » (je vous invite à aller sur Wikipédia pour plus de détails, c’est super intéressant). Et au pluriel, Kairoi. En plus, on a essayé de reproduire les techniques qui ont permis aux meilleur•e•s de réussir, avec notamment un nom imprononçable, à la Kubernetes.

Entre une idée telle que Kairoi et une sortie publique du projet, combien de temps se passe-t-il ?

Jérémy : Trop de temps ! (rire) En vrai, le MVP est sorti très vite, au bout de 2-3 mois on avait quelque chose de fonctionnel. Après, pour pouvoir parler de sortie publique, il faut quelque chose d’éprouvé, robuste, documenté. Ca peut prendre plusieurs années. Par contre, on peut vous dire que depuis peu, on a repris activement le développement dans l’optique de pouvoir sortir une version béta utilisable pour le premier trimestre 2022. On est impatient de vous montrer Kairoi, et que vous puissiez l’utiliser !

Emeric : De mon côté, c’est une idée que j’ai en réflexion depuis plusieurs années. Le projet en lui même a débuté fin 2019. Je me souviens d’avoir passé ce Noël chez mes beaux-parents, isolé, à écrire le plan d’architecture du logiciel. Je suis désolé pour eux après coup, mais ça faisait partie des rares moments où je pouvais complètement sortir de mon boulot. Après ça, avec Vanoix, on a essayé de m’attribuer du temps pour pouvoir avancer. Je pense qu’à ce jour, j’ai dû passer quelques 300 heures à travailler et réfléchir à Kairoi. Par contre, le plus gros semble être le travail restant. On a tellement d’idées de fonctionnalités qui nous paraissent essentielles (je pense notamment à la clusterisation, qui est un point énorme), qu’on va encore pouvoir passer des milliers d’heures à mettre en place tout ça. Il ne nous reste plus qu’à faire fonctionner notre capacité à « Deliver Fast, Deliver Often » !

Une conférence présentée par

Emeric KASBARIAN
Emeric KASBARIAN
Amoureux de design logiciel, développeur #PHP #Symfony
Jérémy JAMES
Jérémy JAMES
Après un début de carrière en tant que développeur Python pour de grands noms du médical, Jérémy se passionne pour le web et PHP / Symfony. Après avoir fait ses preuves chez Elao, agence web lyonnaise reconnue, il rejoint Vanoix, regroupement d'experts PHP / Symfony.

Autres interviews