FERMER
Image

DataOps : vers une entreprise "Data-Driven"

#bigdata | 26/11/2018

Le rôle crucial que jouent les données dans l’amélioration de la performance économique des entreprises n’est plus à démontrer. En effet, de plus en plus d’entreprises se lancent dans des projets Data d’envergure stimulés par les nouvelles technologies comme le Big Data et la Data Science. Cependant, selon un rapport Gartner, 85% des projets Data initiés en 2017 ont malheureusement échoués. Pourquoi ?
L’absence de cadres organisationnel et technologique, cruciaux aux nouvelles exigences en termes de réduction du « time to market ».

Aujourd’hui, les différents retours d’expériences ont permis de proposer un ensemble de bonnes pratiques, appelées DataOps, à la fois culturelles, organisationnelles et technologiques largement inspirées par la mouvance DevOps. Cet article vous présente les principes du DataOps, fondement d’une entreprise Data Driven…

Overview

Scénario Data Analytics traditionnel
Scénario Data Analytics Idéal
Pourquoi pas le DevOps ?
DataOps : Principes
DataOps : Quelles actions ?
DataOps : Quelles Technologies ?
Conclusion

Scénario Data Analytics traditionnel

La figure 1 décrit un scénario caricatural qui met en avant les principaux problèmes rencontrés dans le Data Analytics :

Figure 1 : Scénario Data Analytics traditionnel

A chaque nouveau besoin analytique, un processus séquentiel se déclenche :

  1. A. Identification et mise à disposition des données (étapes 2, 3, 4, 5 et 6) :
  2. Identifier toutes les sources de données nécessaires qui peuvent parfois être hétérogènes. Les Data Scientists font souvent appel à plusieurs interlocuteurs, faisant partie de l’équipe de données et des équipes métiers, afin de recenser toutes les sources possibles et de mieux comprendre la signification de chaque champ. Une fois les sources de données identifiées, les Data Scientists sollicitent l’équipe de données pour pouvoir y accéder. Cette tache peut s’avérer chronophage car elle nécessite souvent la validation des habilitations puis la mise en place d’un processus ETL. L’équipe de données est d’autant plus sollicitée qu’elle est le nœud critique pour toutes les demandes d’obtention de données au-delà de celle stockées dans le Data Warehouse.
  3. B. Mise à disposition des ressources (étapes 7, 8 et 9) :
  4. Suite à la demande des Data Scientists, les administrateurs du système doivent préparer les ressources logiciels et matériels avant de leurs fournir un environnement de développement et de test stable.
  5. C. Construction et validation des modèles et publication des résultats (étapes 10, 11, 12, 13 et 14):
  6. Une fois les données et les ressources reçues, les data-scientists entament la phase de construction, test et validation des modèles construits. Les résultats produits pendant cette phase sont publiés dans des DataMarts pour que les équipes métiers puissent avoir accès. La publication des résultats nécessite la sollicitation de l’équipe de données en charge de la gestion du DataMart. Les équipes de Data visualisation prennent ensuite le relais afin d’intégrer les résultats de l’étude dans les dashboards.
  7. D. Industrialisation et mise en production de toute la chaine Analytics (étapes 15 et 16):
  8. Souvent, un travail conséquent est requis pour rattacher toutes les briques du pipeline de données avant d’intégrer le cas d’usage au process IT. Ce déploiement de toute la chaîne analytique en production est effectué par les administrateurs du système.

Ce n’est qu’au bout de cette chaîne complexe et chronophage que les métiers peuvent avoir accès aux résultats de l’étude. Cette lourdeur de la livraison des résultats favorise l’apparition de bastion de « Shadow IT« , ce qui ne fait qu’entraver un peu plus la diffusion de la culture Data dans une entreprise. Le scénario décrit précédemment met en évidence certains freins pour la diffusion de la culture Data dans une entreprise, dont les plus importants sont :

    • Cycle de développement lent :

      • Les données utilisées pour produire les résultats peuvent perdre leurs valeurs.
      • Le besoin peut évoluer dans l’intervalle.
      • Le manque d’agilité des équipes Data et système peuvent être des goulots d’étranglement
  • Difficulté à apporter des évolutions sur une brique tout en garantissant le bon fonctionnement de toute la chaîne analytique.
  • Grande complexité pour tracker les différentes versions du code, des modèles, des configurations logicielles, des outils utilisés et des données sur toute la chaîne analytique.
  • Déploiement manuel des différentes versions des modèles de prédiction :
    • Difficulté à tester leur bon fonctionnement avant déploiement.
    • Très grande complexité pour revenir en arrière en cas de problème.
  • Faible satisfaction des métiers eu égard à la qualité de service et à la confiance aux données.

    Scénario Data Analytics Idéal

    La figure 2 montre le scénario cible d’une entreprise « Data Driven » où les données sont au cœur de l’organisation. Chacun peut participer à la création de valeur en ayant un accès facile mais sécurisé aux données et aux ressources.

    Figure 2 : Scénario Data Analytics cible

    Les administrateurs du système et l’équipe Data qui pouvaient représenter un frein au développement de la culture Data dans une entreprise sont vus dans ce scénario comme des accélérateurs et des facilitateurs de la diffusion des données dans les entreprises. Ils anticipent les études de cas, construisent et industrialisent des pipelines d’intégration continue de nouvelles données. Ils s’inscrivent également dans une démarche itérative visant à étoffer le catalogue de données disponible tout en améliorant la qualité des données qui y sont mises à disposition. Ils ont également la responsabilité de mettre en place des outils et des processus facilitant l’accès à ces données par des Data Scientists ou des utilisateurs métiers. Ainsi, ils consacrent plus de temps à analyser la donnée plutôt qu’à résoudre des problématiques techniques.

    Pourquoi pas le DevOps ?

    Les problèmes Data Analytics ressemblent en partie aux problèmes qui ont été résolus par l’introduction du DevOps dans le domaine de développement logiciel. Il s’agit d’un processus agile sur tout le cycle de développement d’un logiciel (voir figure 3).

      Figure 3 : Outils utilisés sur tout le cycle DevOps (Source : www.edureka.com)

    Les principes du DevOps sont :

    • Valider et Livrer par petits incréments.
    • Automatisez tout ce qui peut être automatisé : intégration continue, tests, déploiement.
    • Une surveillance étroite de la qualité de production.
    • Amélioration continue.

La réussite du DevOps dans le monde du développement s’est manifesté par :

    • La réduction du « time to market » via des cycles de livraison rapides et continus.A titre d’exemple, le site d’Amazone est livré toutes les deux secondes
    • Plus de Fiabilité et meilleure qualité du code.

Malgré la réussite du DevOps dans le monde du développement, il reste des challenges à relever pour espérer obtenir les mêmes bénéfices. Ces challenges découlent des spécificités des projets Data Analytics :

  • Gérer à la fois le code et les données sur toute la chaîne Analytique
    • Code éparpillé sur plusieurs briques (plusieurs outils, configurations, plateformes).
    • Associer la version du code avec la version des données et des modèles ML.
    • Pouvoir déployer une modification sur une brique sans impacter le fonctionnement global.
  • Automatiser la création d’un environnement de travail
    • Accès automatique aux données et aux ressources (matériels et logiciels)
    • Dépendance entre les différentes briques analytiques.
  • Plusieurs acteurs peuvent intervenir sur différentes briques
    • Comment harmoniser la collaboration entre les différents rôles (avec souvent différentes compétences) ?
    • Traitement des données sensibles : pouvoir travailler avec des données sensibles en toute sécurité.

DataOps : Principes

Analogiquement au DevOps qui se situe à l’intersection entre le développement, l’exploitation et l’assurance qualité. Le DataOps est considéré comme le maillon qui réunit l’ensemble des domaines suivants : Le développement & le Data Engineering, la Data Science, l’exploitation et l’assurance qualité (voir figure 4).

       Figure 4 : DataOps à l’intersection entre le développement & Data Engineering,
 la Data Science, l’exploitation et l’assurance qualité

Le DataOps est avant tout une culture « Data Driven Company » qui doit être supportée par des processus organisationnels, des actions et des bonnes pratiques sur le plan technologique. Elle tire parti du « DevOps » et de « Lean Manufactoring » pour harmoniser les interactions entre tous les utilisateurs de la donnée (Data Scientist, Data Analysts, Data Engineers, Développeurs, etc) afin de réduire la durée du cycle de vie Data Analytics et augmenter la qualité de ses livrables. Les principes du DataOps sont les suivants :

 

Culture : « Data Driven Company »

    • Considérer les données comme étant un élément de compétitivité.
    • Démocratiser l’accès aux données.
    • Faire confiance aux données factuelles plutôt qu’à l’intuition humaine.

Processus organisationnel :

    • Redéfinir le processus analytique.
    • Simplifier la communication entre les différents acteurs.
    • Favoriser Le « Self-service » afin de réduire le « time to Market ».
    •  Considérer le processus analytique comme étant une « Lean Manufactoring » continuellement améliorée.

Technologie :

    • Orchestration de bout en bout des données, du code et des outils analytiques.
    • Un travail analytique consiste aussi à générer du code : Les outils de préparation, de modélisation ou de visualisation de données, génèrent du code.
    • Réutilisation : éviter la répétition du travail et factoriser au maximum.
    • Livraison rapide et continue (agilité).
    • Reproductibilité : versioning du code, données, configurations matérielles et logicielles.
    • Faciliter et sécuriser l’accès aux données.
    • Assurer la qualité sur tout le pipeline et être capable de détecter les anomalies.
    • Faciliter la création des environnements de développement (isolé, jetable et réutilisable) qui reflètent la production.

DataOps : Quelles actions ?

Concrètement, appliquer les directives du DataOps dans une entreprise revient à effectuer les actions suivantes :


Faciliter l’accès aux données.

    • Centraliser les données dans un Data Lake.
    • Automatiser l’ingestion de donnée.
    • Faciliter l’accès et la recherche de données en renforçant la gouvernance de données (métadonnées, Data Classification, Data Lineage).
    • Contrôler et sécuriser l’accès aux données sensible.

Contrôle de version de bout en bout : Ceci concerne le code, les modèles ML, les configurations logiciels et les données.

Code :

    • Considérer le travail analytique comme étant du code source (modèles ML, configurations logiciel, ETL, R, Python, Tableau visualisation, etc.)
    • Utiliser un dépôt commun.
    • Utiliser un système de branches (git).

Données :

    • Utiliser des outils ou des techniques pour suivre les modifications sur les données et être capable de restaurer facilement les données(Redo).
    • Techniques : Snapshots, virtualisation en utilisant des volumes « Data Pods ».

Réutilisation du code et des environnements :

    • Factoriser le code pour pouvoir le réutiliser.
    • Réutiliser les environnements pré configurés et conteneurisés.

Tester les données et les traitements :

    • Paramétrer chaque partie du processus.
    • Tester les données en entrées et en sorties de chaque partie (contrôle de régression)
    • Tester le code séparément du reste de la chaîne.
    • Tester le fonctionnement de toute la chaîne.

 
Création automatique des environnements :

    • Séparer les environnements de développement, de tests et de productions.
    • Virtualiser et pré configurer les environnements (conteneurs Docker).
    • Création automatique à la demande des environnements de développements.

Automatiser les déploiements : Déploiement continue automatique de toutes les briques y compris les données et les modèles du machine Learning afin de faciliter leur industrialisation.

Monitorer la production :

    • Utiliser des outils qui permettent de surveiller l’état de la production.
    • Automatiser la détection des anomalies en utilisant les fichiers logs.

DataOps : Quelles Technologies ?

Selon l’écosystème technique de l’entreprise, les actions précédemment citées peuvent être implémentées soit en complétant les outils DevOps déjà en place en les couplant avec les outils Data Science et la politique data gouvernance, soit en utilisant des outils qui couvrent les fonctionnalités DataOps :

    • Orchestration du pipeline de donnée :  L’automatisation de l’ingestion de données, la gouvernance et l’accès aux données peuvent être assuré en utilisant des outils d’ETL, de gouvernance de données et des plateformes big Data.
    • Virtualisation et versioning de données :  Delphix, Pachyderm, Quilt Data, etc.
    • Automatisation des déploiements : DataKitchen, Jenkins, Docker & Kubernetes, etc.
    • Test et monitoring de la production : ICEDQ, DataKitchen, etc.
    • Plateforme de développement Data science et de mise en production des modèles ML : Dataiku, Domino, Open Data Group, Datakitchen, ParallelM, Datatron, Comet, etc.

L’écosystème DataOps continue à s’enrichir avec l’émergence de nouveaux outils sachant que les outils DevOps évoluent aussi pour faire face à ce besoin et peuvent encore être utilisés pour gérer le code analytique. Par ailleurs, l’évolution vers des architectures de type micro-services et la conteneurisation des applications introduit plus d’agilité quand il s’agit de mettre en place des applications d’analyse de données sur des environnements big data.

Pour conclure :

Le DataOps est une discipline qui consiste à changer la manière dont les cas d’usage Data Analytics sont créés, améliorés, maintenus et monitorés afin d’accélérer la durée du cycle Data Analytics. Elle ne se résume pas seulement à l’utilisation d’un outil mais plutôt à un changement progressif de culture et de processus organisationnels afin de continuellement tendre vers une entreprise « Data Driven » capable de tirer le maximum d’avantage concurrentiel de ses données.
Bien entendu, dans certaines organisation la fonction du DataOps peut être partagée entre Data Engineers, Développeurs, Data Scientists et Administrateurs Système. Dans d’autres cas, un rôle séparé « DataOps Engineer » est créé.
Sur le plan technologique, nous allons assister dans les années à venir à l’apparition de nouveaux outils qui offrent des fonctionnalités DataOps. Certaines solutions ont déjà vu le jour et continuent à se développer que nous pouvons citer : Data kitchen, Quilt Data, Pachyderm, Delphix, Dataiku, Comet, etc. D’autres solutions de type DevOps s’adapterons pour couvrir quelques fonctionnalités DataOps.

Bilel Belaid – Consultant Big Data

Ahmed Gater – Practice manager

FERMER