Plateforme d'orchestration déclarative basée sur les événements
Cliquez sur l'image pour savoir comment démarrer avec Kestra en 4 minutes.
? Qu’est-ce que Kestra ?
Kestra est une plate-forme d'orchestration open source basée sur des événements qui facilite les flux de travail planifiés et événementiels . En intégrant les meilleures pratiques d'Infrastructure as Code à l'orchestration des données, des processus et des microservices, vous pouvez créer des flux de travail fiables directement à partir de l'interface utilisateur en seulement quelques lignes de YAML.
Principales caractéristiques :
- Tout sous forme de code et depuis l'interface utilisateur : conservez les flux de travail sous forme de code avec une intégration de Git Version Control , même lorsque vous les créez à partir de l'interface utilisateur.
- Workflows événementiels et planifiés : automatisez les workflows événementiels planifiés et en temps réel via une simple définition
trigger
. - Interface YAML déclarative : définissez des workflows à l'aide d'une configuration simple dans l' éditeur de code intégré .
- Écosystème de plugins riche : des centaines de plugins intégrés pour extraire des données de n'importe quelle base de données, stockage cloud ou API, et exécuter des scripts dans n'importe quelle langue .
- Interface utilisateur intuitive et éditeur de code : créez et visualisez des flux de travail directement à partir de l'interface utilisateur avec mise en évidence de la syntaxe, saisie semi-automatique et validation de la syntaxe en temps réel.
- Évolutif : conçu pour gérer des millions de flux de travail, avec une haute disponibilité et une tolérance aux pannes.
- Contrôle de version convivial : écrivez vos flux de travail à partir de l'éditeur de code intégré et transférez-les vers votre branche Git préférée directement depuis Kestra, permettant ainsi les meilleures pratiques avec les pipelines CI/CD et les systèmes de contrôle de version.
- Structure et résilience : apprivoisez le chaos et apportez de la résilience à vos flux de travail avec des espaces de noms , des étiquettes , des sous-flux , des tentatives , des délais d'attente , la gestion des erreurs , des entrées , des sorties qui génèrent des artefacts dans l'interface utilisateur, des variables , des branchements conditionnels , une planification avancée , des déclencheurs d'événements , des remplissages , des dynamiques. tâches , tâches séquentielles et parallèles , et ignorez des tâches ou des déclencheurs si nécessaire en définissant l'indicateur
disabled
sur true
.
? La définition YAML est automatiquement ajustée chaque fois que vous apportez des modifications à un flux de travail à partir de l'interface utilisateur ou via un appel API. Par conséquent, la logique d'orchestration est toujours gérée de manière déclarative dans le code , même si vous modifiez vos workflows par d'autres moyens (UI, CI/CD, Terraform, appels API).
Démarrage rapide
Essayez la démo en direct
Essayez Kestra avec notre démo en direct . Aucune installation requise !
Démarrez localement en 5 minutes
Lancez Kestra dans Docker
Assurez-vous que Docker est en cours d'exécution. Ensuite, démarrez Kestra en une seule commande :
docker run --pull=always --rm -it -p 8080:8080 --user=root
-v /var/run/docker.sock:/var/run/docker.sock
-v /tmp:/tmp kestra/kestra:latest server local
Consultez notre guide d'installation pour d'autres options de déploiement (Docker Compose, Podman, Kubernetes, AWS, GCP, Azure, etc.).
Accédez à l'interface utilisateur de Kestra sur http://localhost:8080 et commencez à créer votre premier flux !
Votre premier flux Hello World
Créez un nouveau flux avec le contenu suivant :
id : hello_world
namespace : dev
tasks :
- id : say_hello
type : io.kestra.plugin.core.log.Log
message : " Hello, World! "
Exécutez le flux et voyez le résultat dans l’interface utilisateur !
? Écosystème de plugins
Les fonctionnalités de Kestra sont étendues grâce à un riche écosystème de plugins qui vous permettent d'exécuter des tâches n'importe où et de coder dans n'importe quel langage, notamment Python, Node.js, R, Go, Shell, etc. Voici comment les plugins Kestra améliorent vos flux de travail :
Courez n'importe où :
- Exécution locale ou à distance : exécutez des tâches sur votre machine locale, sur des serveurs distants via SSH, ou évoluez vers des conteneurs sans serveur à l'aide de Task Runners.
- Prise en charge de Docker et Kubernetes : exécutez en toute transparence des conteneurs Docker dans vos flux de travail ou lancez des tâches Kubernetes pour gérer des charges de travail gourmandes en calcul.
Codez dans n'importe quelle langue :
- Prise en charge des scripts : écrivez des scripts dans votre langage de programmation préféré. Kestra prend en charge Python, Node.js, R, Go, Shell et autres, vous permettant d'intégrer des bases de code et des modèles de déploiement existants.
- Automatisation flexible : exécutez des commandes shell, exécutez des requêtes SQL sur diverses bases de données et effectuez des requêtes HTTP pour interagir avec les API.
Traitement événementiel et en temps réel :
- Déclencheurs en temps réel : réagissez aux événements provenant de systèmes externes en temps réel, tels que les arrivées de fichiers, les nouveaux messages dans les bus de messages (Kafka, Redis, Pulsar, AMQP, MQTT, NATS, AWS SQS, Google Pub/Sub, Azure Event Hubs ), et bien plus encore.
- Événements personnalisés : définissez des événements personnalisés pour déclencher des flux en fonction de conditions spécifiques ou de signaux externes, permettant ainsi des flux de travail très réactifs.
Intégrations cloud :
- AWS, Google Cloud, Azure : intégrez une variété de services cloud pour interagir avec les solutions de stockage, les systèmes de messagerie, les ressources de calcul, etc.
- Traitement du Big Data : exécutez des tâches de traitement du Big Data à l'aide d'outils comme Apache Spark ou interagissez avec des plateformes d'analyse comme Google BigQuery.
Surveillance et notifications :
- Restez informé : envoyez des messages aux canaux Slack, des notifications par e-mail ou déclenchez des alertes dans PagerDuty pour tenir votre équipe informée des statuts des flux de travail.
L'écosystème de plugins de Kestra est en constante expansion, vous permettant d'adapter la plateforme à vos besoins spécifiques. Que vous orchestrez des pipelines de données complexes, automatisez des scripts dans plusieurs environnements ou intégrez des services cloud, il existe probablement un plugin pour vous aider. Et sinon, vous pouvez toujours créer vos propres plugins pour étendre les capacités de Kestra.
? Remarque : ceci n'est qu'un aperçu de ce que les plugins Kestra peuvent faire. Explorez la liste complète sur notre page Plugins.
Concepts clés
- Flux : l'unité centrale de Kestra, représentant un workflow composé de tâches.
- Tâches : unités de travail individuelles, telles que l'exécution d'un script, le déplacement de données ou l'appel d'une API.
- Espaces de noms : regroupement logique de flux pour l'organisation et l'isolement.
- Déclencheurs : calendrier ou événements qui lancent l’exécution des flux.
- Entrées et variables : paramètres et données dynamiques transmises aux flux et aux tâches.
? Créez des flux de travail visuellement
Kestra fournit une interface utilisateur intuitive qui vous permet de créer et de visualiser de manière interactive vos flux de travail :
- Interface glisser-déposer : ajoutez et réorganisez des tâches à partir de l'éditeur de topologie.
- Validation en temps réel : retour instantané sur la syntaxe et la structure de votre flux de travail pour détecter rapidement les erreurs.
- Auto-complétion : suggestions intelligentes au fur et à mesure que vous tapez pour écrire du code de flux rapidement et sans erreurs de syntaxe.
- Vue topologique en direct : visualisez votre flux de travail sous la forme d'un graphique acyclique dirigé (DAG) qui se met à jour en temps réel.
? Extensible et convivial pour les développeurs
Développement de plugins
Créez des plugins personnalisés pour étendre les capacités de Kestra. Consultez notre Guide du développeur de plugins pour commencer.
L'infrastructure en tant que code
- Contrôle de version : stockez vos flux dans des référentiels Git.
- Intégration CI/CD : automatisez le déploiement des flux à l'aide de pipelines CI/CD.
- Fournisseur Terraform : gérez les ressources Kestra avec le fournisseur Terraform officiel.
Rejoignez la communauté
Restez connecté et obtenez de l'aide :
- Slack : rejoignez notre communauté Slack pour poser des questions et partager des idées.
- LinkedIn : suivez-nous sur LinkedIn – à côté de Slack et de GitHub, c'est notre principal canal pour partager des mises à jour et des annonces de produits.
- YouTube : Abonnez-vous à notre chaîne YouTube pour du contenu vidéo éducatif. Nous publions de nouvelles vidéos chaque semaine !
- X : Suivez-nous sur X si vous y êtes toujours actif.
? Contribuer
Nous acceptons les contributions de toutes sortes !
- Signaler des problèmes : vous avez trouvé un bug ou avez une demande de fonctionnalité ? Ouvrez un ticket sur GitHub.
- Code de contribution : consultez notre Guide du contributeur pour connaître les directives initiales et explorez nos bons premiers numéros pour les tâches adaptées aux débutants à aborder en premier.
- Développer des plugins : créez et partagez des plugins à l’aide de notre guide du développeur de plugins.
- Contribuez à nos documents : apportez des modifications ou des mises à jour pour que notre documentation reste de premier ordre.
? Licence
Kestra est sous licence Apache 2.0 © Kestra Technologies.
️ Restez à jour
Donnez une étoile à notre référentiel pour rester informé des dernières fonctionnalités et mises à jour !
Merci d'avoir considéré Kestra pour vos besoins d'orchestration de flux de travail. Nous avons hâte de voir ce que vous allez construire !