Beaucoup de chaînes de données démarrent avec une ligne de cron sur un serveur. C’est simple et cela fonctionne — jusqu’au matin où le tableau de bord est vide et où personne ne sait si le traitement a tourné, ni pourquoi il a échoué.
Ce que le cron ne fait pas
- Il ne garde pas d’historique. Savoir ce qui s’est passé mardi dernier suppose d’avoir organisé soi-même les journaux.
- Il ne prévient personne. Un échec silencieux se découvre par ses conséquences.
- Il ne connaît pas les dépendances. Lancer B « une demi-heure après A » n’est pas la même chose que lancer B quand A a réussi.
Ce que Jenkins apporte
Jenkins est connu pour l’intégration continue du code, mais c’est d’abord un automate : il déclenche, enchaîne, journalise et alerte. Appliqué aux données, cela donne un fichier versionné qui décrit le traitement :
pipeline {
agent any
triggers { cron('H 2 * * *') }
stages {
stage('Chargement des ventes') {
steps {
sh './hop-run.sh --project ventes --file chargement.hwf --runconfig local'
}
}
}
post {
failure {
mail to: 'equipe-data@example.com',
subject: 'Échec du chargement des ventes',
body: "Détail : ${env.BUILD_URL}"
}
}
}
Ce fichier lance chaque nuit un workflow Apache Hop, conserve le journal de chaque exécution et envoie un courriel en cas d’échec. Les étapes suivantes ne démarrent que si la précédente a réussi, les mots de passe restent dans le coffre de Jenkins plutôt que dans un script, et une exécution se relance d’un clic.
L’intégration continue, pour les traitements aussi
Le même outil sert à vérifier les traitements avant leur mise en production : à chaque modification poussée sur Git, Jenkins peut exécuter le traitement sur un jeu d’essai et comparer le résultat à l’attendu. Une régression se voit alors le jour où elle est introduite, pas trois semaines plus tard dans un rapport.
Les limites à connaître
Jenkins n’est pas un orchestrateur de données spécialisé : il ne sait rien du contenu des tables ni du rattrapage de périodes manquées. Pour quelques dizaines de traitements dans une structure qui l’utilise déjà, c’est un choix sobre et solide. Au-delà, la question d’un outil dédié mérite d’être posée.
La formation Jenkins part de ce cas d’usage : ordonnancer et fiabiliser des traitements existants.
