Audit Talend
1 juin 2022
Pourquoi on nous appelle
Un audit Talend démarre rarement par une envie de bien faire. Il démarre par un symptôme :
- le traitement de nuit déborde sur les heures ouvrées, et personne ne sait dire pourquoi il a doublé de durée en six mois ;
- un job tombe une nuit sur deux, l’astreinte le relance, et parfois ça crée des doublons ;
- l’équipe qui a construit la plateforme est partie, et plus personne n’ose toucher aux jobs ;
- une montée de version est bloquée parce que personne ne sait ce qui va casser.
L’audit sert à transformer ces symptômes en une liste de causes et de correctifs chiffrés. Pas à produire une note sur 20.
Ce qu’on regarde
Les traitements et leur coût réel
On mesure d’abord, on juge ensuite : durée par job, volumétrie traitée, évolution sur les derniers mois, place réellement occupée dans la fenêtre disponible. C’est ce qui distingue un job lent d’un job qui va devenir bloquant dans huit mois.
Les causes de dérive les plus fréquentes tiennent en quelques points : rechargement complet là où un incrémental suffirait, absence de pool de connexions, jointures faites en mémoire dans Talend alors que la base les ferait mieux, lecture ligne à ligne d’une source qui accepte les lots.
La capacité à rejouer un traitement
C’est le point qui coûte le plus cher quand il est négligé, et le moins visible en recette. Concrètement : que se passe-t-il si le job s’arrête au milieu et qu’on le relance ?
On vérifie si un traitement peut être relancé sans créer de doublon ni fausser un cumul, si les rejets sont isolés au lieu de faire tomber le lot entier, et si l’exploitation dispose d’une procédure écrite pour reprendre. Beaucoup d’incidents de production ne sont pas des incidents de développement : ce sont des incidents de reprise.
La gestion des contextes et des environnements
On cherche les valeurs en dur, les mots de passe stockés dans les jobs, les fichiers de contexte qui diffèrent d’un environnement à l’autre sans que personne ne sache pourquoi. Une plateforme où passer de la recette à la production demande une modification manuelle est une plateforme où la production finira par diverger.
Le découpage et la lisibilité
Un job de trois cents composants ne se maintient pas. On regarde le découpage en sous-jobs, la factorisation de ce qui est répété, le nommage, et si les traitements sont annotés au point qu’un nouvel arrivant puisse les reprendre. La question de contrôle est simple : combien de temps faut-il à quelqu’un d’extérieur pour comprendre ce que fait ce flux ?
L’exploitation
Ordonnancement et dépendances dans le TAC ou la TMC, purge des logs et des archives de jobs, supervision réellement branchée, alertes qui arrivent à quelqu’un. Une plateforme sans purge finit toujours par tomber sur un disque plein, et c’est un incident évitable.
La sécurité
Comptes techniques et leurs droits, chiffrement des flux sortants, secrets et leur mode de stockage, versions des composants et vulnérabilités connues. Ce volet conditionne souvent la validation d’une mise en production par le RSSI.
Ce qu’on livre
Un rapport en trois parties :
- Les constats, appuyés sur des mesures, pas sur des impressions.
- Les correctifs, chacun chiffré en charge et classé par gain attendu. Un audit qui produit quarante recommandations de même niveau n’aide personne à décider.
- Ce qu’on ne recommande pas de corriger, et pourquoi. Une dette technique assumée et documentée coûte moins cher qu’une dette corrigée sans raison.
Le plan est en général découpé en trois vagues : ce qui se corrige en quelques jours et supprime un risque immédiat, ce qui demande un chantier court, et ce qui relève d’une refonte à arbitrer.
Combien de temps
Sur un périmètre courant, quelques dizaines de jobs et un environnement d’ordonnancement, comptez une à deux semaines : accès aux environnements, entretiens avec l’équipe, analyse, restitution. Un périmètre plus large se découpe par domaine plutôt que par volume total.
Le prérequis qui bloque le plus souvent n’est pas technique : c’est l’accès en lecture aux environnements et aux journaux. Autant l’anticiper.