À quoi sert Dagu ?

Dagu est un outil open source dédié à la conception, à la planification, à l’exécution et à la supervision de processus applicatifs. Cet outil permet d’enchaîner plusieurs étapes (les steps) au sein d’un processus (le workflow) ; chaque étape correspondant à une instruction à réaliser (créer un dossier, lancer un script, télécharger un fichier, exécuter une requête API, etc…) . Ces étapes sont modélisées pour être exécutées de manière parallèle ou séquentielle avec prise en compte ou non des dépendances entre étapes.

Dans Dagu, la modélisation d’un processus se traduit par la création d’un fichier YAML qui permet de préciser :

  • Les propriétés globales du « workflow » : nom, description, tags, groupe d’appartenance, nombre exécutions simultanées, configuration pour la notification par mél, etc.
  • Les propriétés spécifiques à chaque « step » : nom, description, instruction à exécuter sous forme de commande système ou de module spécifique (http, docker, SSH, etc.), dépendances à d’autres étapes


Une interface web permet d’éditer ce fichier de configuration mais cette dernière présente surtout un intérêt pour visualiser de manière graphique le workflow, lancer manuellement l’exécution d’un processus complet ou d’une étape spécifique, superviser la bonne exécution et consulter les logs applicatifs.

Installation de Dagu et portée d’utilisation

Nous avons opté pour une installation via binaire (systemd), mais Dagu propose également une image Docker.

L’interface web est accessible sur notre domaine. Une configuration via un reverse proxy Nginx avec HTTPS (via Certbot) et une protection par mot de passe avec htpasswd (Apache Utils) permettent de restreindre l’accès à cette interface.

Dagu permet d’exécuter des tâches directement sur le serveur sur lequel il est est installé, mais il permet aussi de se connecter à d’autres machines via SSH pour y exécuter des actions.

Nous avons donc configuré Dagu pour :

  • S’authentifier avec des clés SSH
  • Accéder uniquement aux serveurs autorisés
  • Centraliser tous les workflows dans une interface unique

Quels bénéfices concrets ?

  • Clarté : La représentation graphique des processus permet de visualiser rapidement les dépendances entre les différentes étapes.
  • Visibilité : La visualisation étape par étape est un plus et les logs sont facilement accessibles.
  • Contrôle : L’outil permet de relancer rapidement tout ou partie d’un processus en cas d’erreur.
  • Simplicité : Dagu n’est pas une usine à gaz tant pour la phase d’installation que dans l’usage. Il ne nécessite ni base de données, ni dépendances lourdes et la configuration s’effectue via un fichier YAML.
  • Interopérabilité : Dagu dispose d’une API REST qui facilite les échanges avec d’autres applications.

Ces qualités permettent à cet outil de rejoindre la liste des solutions proposées par Agaric IG auprès de ses clients, notamment pour permettre de superviser les processus établis avec l’ETL Apache Hop.

Le lien vers le projet Github : https://github.com/dagu-org/dagu