DataOps KésaKo?

Pierre-Alexandre Maury
YounitedTech
Published in
5 min readApr 19, 2019

Dans un premier article nous évoquions pourquoi envisager la méthodologie DataOps. Maintenant que nos esprits sont persuadés de la valeur ajoutée de cette méthodologie nous allons pourvoir la décrire plus précisément et voir comment la mettre en place.

Un peu d’histoire…

Si le DataOps est né du DevOps, attention les deux sont bien différents ! Sur le fond les bases sont semblables avec la volonté de réunir la partie développement et opérationnelle d’un projet, dans notre cas appliqué au cycle de vie complet de la donnée.

Les personnes concernées et les attentes entre les deux concepts sont bien différents :

Par ailleurs les concepts utilisés avec le DevOps tels que l’intégration continue, la notion de “delivery”, de monitoring, de scalabilité sont appliqués par les Data Engineers et le sont désormais aussi côté Data Scientists.

En effet on trouve la notion de gestion de version de code (git, par exemple), la containérisation (Docker, Kubernetes) mais aussi la construction/déploiement de l’infrastructure de manière automatique (Terraform).

Allons maintenant voir comment le DataOps “tient” debout.

Les trois piliers du DataOps

Commençons tout d’abord par la définition générale du DataOps trouvé ici:

DataOps is an automated, process-oriented methodology, used by analytic and data teams, to improve the quality and reduce the cycle time of data analytics.

La définition est claire, le but l’est aussi : faisons du propre et réduisons nos temps de développement ! Le DataOps repose sur trois piliers pour arriver à cet objectif :

  • Le développement Agile

Un mot très utilisé de nos jour dans beaucoup d’entreprises. Pour certains il ne veut rien dire, d’autres ne jurent que par ça. Mais qu’est ce que l’agilité ?
D’après le manifeste Agile, la méthode repose sur 4 principes fondamentaux:

  1. Les individus et leurs interactions. On retrouve ici l’idée de privilégier l’humain aux processus et aux outils utilisées, n’oublions pas ce principe fondamental qu’est l’écoute entre collègues pour délivrer sereinement !
  2. Des logiciels opérationnels. Ça va de soi !
  3. La collaboration avec les clients. Les échanges constructifs et clairs avec ceux-ci doivent primer sur une négociation de contrat longue n’aboutissant pas forcément…
  4. L’adaptation au changement. The last but not the least, l’adaptation rapide au moindre changement est primordial dans l’adoption de la méthode.

Grâce à l’agilité, le DataOps peut répondre aux challenges que représentent les changements fréquents de besoin métier ainsi que l’inflexibilité qu’on peut souvent reprocher aux équipes. On reviendra sur ces bénéfices un peu plus loin.

  • L’approche DevOps

Si on se revendique différent, cela ne va pas dire qu’on ne s’inspire pas de cette méthodologie ! Les processus de développement et de déploiement sont similaires:

  1. Développement
  2. Build
  3. Test
  4. Déploiement
  5. Orchestration
  6. Run
  7. Monitoring

Avec pour le DataOps, l’ajout de la notion d’orchestration et de monitoring sur la qualité des données. La division en deux groupes distincts d’utilisateurs est aussi une similitude des deux approches:

Enfin l’héritage du DevOps reste le fait de pouvoir faire des releases de code plusieurs fois par jour ainsi que le gain en fiabilité et robustesse grâce au pipeline automatique de déploiement.

  • La maîtrise statistique des procédés

D’après notre cher Wikipédia la maîtrise statistique des procédés peut se définir comme cela:

Elle permet de suivre à travers des rapports ou des représentations graphiques les écarts par rapport à une valeur de référence afin d’améliorer la production industrielle

Comment ce type de méthode utilisé en environnement industriel peut-il nous être utile ici ? En fait son intérêt réside dans le fait de fixer des règles sur les entrées et les sorties des processus analytics. Par exemple se fixer en entrée des valeurs de référence sur:

  • la conformité de la données (ex : une date en YYYY-mm-dd, un âge est un entier naturel)
  • le nombre de valeurs attendues (comptage)
  • la cohérence dans le temps des événements (date de simulation < date de financement)
  • la cohérence de l’application (un age doit être compris entre 18 et ~100)
  • la validation des champs (les champs attendu sont bien présents et correctement formattés)

Pour les sorties il faut vérifier que le résultat des opérations est bien celui que l’on attendait. Par exemple on ne doit pas retrouver d’emails en @masuperentreprise.org si c’est censé être filtré.

Une fois ces inputs définis il faut mettre en place un mécanisme de validation des données afin de surveiller le respect des entrées/sorties définies plus haut et que l’on ne s’écarte pas des valeurs de référence ciblées.

La mise en place du DataOps

Voyons désormais comment mettre en place cette méthodologie. Il faut appliquer les 3 piliers vus un peu plus haut tout en essayant de pousser certains principes comme démocratiser sa donnée c’est à dire donner accès à cette donnée à un plus grand nombre d’utilisateurs, la vulgariser et trouver toujours plus de sources.

On peut aussi investir du temps dans la recherche d’outils Open Source innovants comme par exemple Airflow pour faire l’orchestration de jobs, Git pour faire la gestion de version des projets ou encore Spark pour traiter/transformer la donnée et construire, in fine, un pipeline intégration robuste et flexible.

On vient de l’évoquer mais dès que c’est possible il faut automatiser tout ce qu’on peut! Il faut apporter rapidement de la valeur et pour cela il faut passer un minimum de temps sur les taches redondantes qui peuvent demander beaucoup d’efforts manuels. S’assurer de la qualité de donnée et de sa conformité en est un parfait exemple.

Enfin dans un monde idéal il faut détruire le plus possible les silos, les outils développés devrait être accessible et utilisable pas le plus grand nombre (Data Analystes, Data Scientists…)

Les bénéfices d’une telle approche

Le DataOps n’est pas là pour casser l’existant, mais faire en sorte que celui-ci soit plus robuste, rapide et fiable. Donc pas d’inquiétude les processus actuels ne vont pas disparaître !

Nous l’avons déjà évoqué, mais l’avantage principal sera d’accélérer les développements des équipes Data sans que la qualité des livraisons ne soit impactée. L’autre avantage sera sur le gain en qualité de la production analytique réalisée mais aussi l’amélioration globale du moral de l’équipe Data qui aura tourné le dos au héroïsme et au rattrapages manuels…

De fait, un avantage important d’un point de vue business est l’efficacité de l’équipe à réutiliser ou “refactorer” des processus agiles.

En somme, une méthodologie à adopter!

--

--