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
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

En poursuivant votre navigation sur ce site, vous acceptez l’utilisation des cookies pour améliorer votre navigation. plus d'infos

1. Qu’est-ce qu’un cookie?

Un Cookie est un petit fichier texte enregistré sur votre terminal (ordinateur, tablette, smartphone, etc.), à l’occasion de la consultation d’un service en ligne grâce à votre logiciel de navigation. Il permet à son émetteur d’identifier le terminal dans lequel il est enregistré, pendant la durée de validité ou d’enregistrement du Cookie. Lors de la consultation de notre site Internet, des informations relatives à la navigation de votre terminal sont susceptibles d'être enregistrées dans ces fichiers dits "Cookies". Ces derniers sont installés sur votre terminal, sous réserve des choix que vous auriez exprimés concernant les Cookies et que vous pouvez modifier à tout moment.

2. A quoi servent les cookies émis sur notre site ?

Seul l’émetteur d’un cookie est susceptible de lire ou de modifier les informations qui y sont contenues.
Les cookies utilisés sur notre site permettent :

3. Vos choix concernant les cookies

Vous disposez de différents moyens pour gérer les cookies. Tout paramétrage que vous pouvez entreprendre sera susceptible de modifier votre navigation sur notre site et sur Internet en général et vos conditions d'accès à certains services de notre site nécessitant l'utilisation de cookies. Vous pouvez à tout moment exprimer et modifier vos souhaits en matière de cookies, par les moyens décrits ci-dessous. L'accord sur les cookies L'enregistrement d'un cookie dans un terminal est essentiellement subordonné à la volonté de l'utilisateur du terminal, que celui-ci peut exprimer et modifier à tout moment et gratuitement à travers les choix qui lui sont offerts par son logiciel de navigation. Si vous avez accepté dans votre logiciel de navigation l'enregistrement de cookies dans votre terminal, les cookies intégrés dans les pages et contenus que vous avez consultés pourront être stockés temporairement dans un espace dédié de votre terminal. Ils y seront lisibles uniquement par leur émetteur.

Le refus des cookies Si vous refusez l'enregistrement de cookies dans votre terminal, ou si vous supprimez ceux qui y sont enregistrés, vous ne pourrez plus bénéficier d'un certain nombre de fonctionnalités qui sont néanmoins nécessaires pour naviguer dans certains espaces de notre site. Tel serait le cas si vous tentiez d'accéder à votre compte ou à votre abonnement qui nécessite de vous identifier. Tel serait également le cas lorsque nous, ou nos prestataires, ne pourrions pas reconnaître, à des fins de compatibilité technique, le type de navigateur utilisé par votre terminal, ses paramètres de langue et d'affichage ou le pays depuis lequel votre terminal semble connecté à Internet. Le cas échéant, nous déclinons toute responsabilité pour les conséquences liées au fonctionnement dégradé de nos services résultant de l'impossibilité pour nous d'enregistrer ou de consulter les cookies nécessaires à leur fonctionnement et que vous auriez refusés ou supprimés. Les choix offerts par votre logiciel de navigation Vous pouvez configurer votre logiciel de navigation de manière à ce que des cookies soient enregistrés dans votre terminal ou, au contraire, qu'ils soient rejetés, soit systématiquement, soit selon leur émetteur. Vous pouvez également configurer votre logiciel de navigation de manière à ce que l'acceptation ou le refus des cookies vous soient proposés ponctuellement, avant qu'un cookie soit susceptible d'être enregistré dans votre terminal. Pour la gestion des cookies et de vos choix, la configuration de chaque navigateur est différente. Elle est décrite dans le menu d'aide de votre navigateur, qui vous permettra de savoir de quelle manière modifier vos souhaits en matière de cookies. Selon votre navigateur, consultez le lien ci-dessous pour configurer votre navigateur et refuser les cookies :