BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Kestra : Une Plate-Forme D'Orchestration Et De Planification Open Source Scalable

Kestra : Une Plate-Forme D'Orchestration Et De Planification Open Source Scalable

Kestra, une nouvelle plate-forme open source d'orchestration et de planification, aide les développeurs à créer, exécuter, planifier et surveiller pipelines complexes.

Il est construit sur des outils bien connus comme Apache Kafka et ElasticSearch. L'architecture Kafka offre une scalabilité : chaque worker du cluster Kestra est implémenté en tant que consommateur Kafka et l'état de l'exécution d'un workflow est géré par un exécuteur implémenté avec Kafka Streams. ElasticSearch est utilisé comme une base de données qui permet d'afficher, de rechercher et d'agréger toutes les données.

Le concept de workflow, appelé Flow dans Kestra, est au cœur de la plateforme. Il s'agit d'une liste de tâches définies avec un langage descriptif basé sur yaml. Il peut être utilisé pour décrire des flux de travail simples, mais il permet des scénarios plus complexes tels que des tâches dynamiques et des dépendances de flux.

Les flux peuvent être basés sur des événements tels que les résultats d'autres flux, la détection de fichiers à partir de Google Cloud Storage ou les résultats d'une requête SQL. Les flux peuvent également être planifiés à intervalles réguliers en fonction d'une expression cron. De plus, Kestra expose une API pour déclencher un flux depuis n'importe quelle application ou simplement le démarrer directement depuis l'interface Web (UI).

Kestra, en fait, fournit une interface web riche qui permet aux développeurs de modifier, d'exécuter et de surveiller les flux en temps réel.

L'interface Web Kestra est illustrée ci-dessous :

Kestra peut être employé en tant qu'orchestrateur de données : pour gérer des flux complexes, déplacer, transformer et charger de grands ensembles de données (ETL ou ELT) ; en tant que crontab distribué pour planifier le travail sur plusieurs workers et surveiller tous ces processus ; ou en tant que flux piloté par des événements pour réagir à des événements externes tels que des appels d'API.

Il peut être déployé n'importe où, par exemple sur Kubernetes, Cloud Compute, Docker ou même sur site (on premise). Et grâce à son architecture modulaires, des fonctionnalités supplémentaires peuvent être ajoutées avec des plugins tels que l'intégration avec Amazon S3, Apache Avro, Google BigQuery et MongoDB.

La plateforme Kestra est similaire à Apache Airflow, mais cette dernière s'appuie sur des workflows écrits en Python au lieu de yaml.

Un exemple de flux écrit en yaml est présenté ci-dessous :

La dernière version a amélioré les performances globales en réduisant l'utilisation du processeur et la latence et a introduit un nouveau plugin JDBC qui permet des requêtes en masse.

Le logiciel est encore relativement nouveau puisque l'équipe a annoncé la première version publique en février 2022. La dernière version, 0.4.2, est disponible sur Github, mais il est déjà utilisé en production par Leroy Merlin, l'un des leaders du bricolage en Europe.

Au sujet de l’Auteur

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT