De façon générale, la virtualisation est l’une des clés  de l’adoption des plateformes de traitement de données massivement parallèles telles que Hadoop, Spark et les autres technologies de l’écosystème Hadoop. la virtualisation des données est l’une des stratégies IT qui ces derniers temps a le vent en poupe en matière de gestion de données. Cependant, il existe une forte confusion entre les concepts de virtualisation de données, intégration de données,  fédération de données et Cloud Computing.  Cela rend confus la compréhension de l’apport et de la place des solutions de virtualisation de données dans le paysage des solutions de gestion /traitement de données. Cet article a pour but de vous apporter un peu d’éclairage dans cette confusion.

Dans cette chronique, nous allons vous présenter le concept de Virtualisation de données (ou « Data Virtualization » en anglais), et son intérêt dans un projet Big Data. Cette chronique est rédigée sous forme de livre blanc et est destiné à un public de décideurs, emmenées à travailler avec des éditeurs de Virtualisation de données. Il vous aidera dans vos prises de décision en matière de stratégie de gestion de données et de choix de solution de virtualisation de données. 

A la fin de cette chronique, vous aurez une compréhension claire des stratégies de d’intégration de données de façon générale, vous pourrez faire des choix en matière de stratégie de gestion data et vous serez en même d’évaluer une solution de virtualisation de données.

Définition de la virtualisation

Pour comprendre le concept de virtualisation de données, il faut avoir des connaissances de base sur la virtualisation, car comme son nom l’indique, la virtualisation de données est un cas d’usage  de la virtualisation.

La virtualisation vient du constat selon lequel les serveurs en entreprise tournent rarement à pleine puissance ; généralement, ils tournent à pleine puissance lorsque l’entreprise observe un pic de son activité, ensuite redescendent en dessous de leur performance normale lorsque l’activité de l’entreprise se stabilise ou lorsqu’elle ralentit. 

Prenons l’exemple de l’activité des super marchés qui réalisent leur plus gros chiffre d’affaire lors des périodes de fêtes de fin d’année (qui en théorie dure 2 mois). Nous pouvons facilement estimer que leurs serveurs tournent à pleine puissance 2 mois sur 12, soit en moyenne à 20 % du temps. Cela veut dire que les serveurs sont sous-utilisés à 80% du temps. Cette situation ne permet pas à ces entreprises de rentrer dans leurs investissements en termes de TCO (Coût Total d’Acquisition) de ces serveurs.

La virtualisation est la réponse en termes de stratégie IT à ce problème, il permet aux entreprises d’optimiser l’utilisation de leurs serveurs, pour réduire les Coûts globaux de Possession (TCO) de ces serveurs, et ainsi de rentrer pleinement dans leurs investissements.

Techniquement, la virtualisation fait référence à l’abstraction physique des ressources informatiques. En d’autres termes, les ressources physiques (puissance de calcul, mémoire, disque dur, réseau) d’un ordinateur (ou d’une machine) sont allouées à ce que l’on appelle une « machine virtuelle », c’est-à-dire une application logicielle qui est l’abstraction des ressources de la machine hôte.  La machine hôte (ou machine sur laquelle est démarrée cette machine virtuelle) voit cette machine virtuelle comme une application à laquelle elle distribue ses ressources.

Les machines virtuelles sont construites à partir de l’excès des ressources de la machine hôte et sont gérées par un hyperviseur. L’hyperviseur gère les ordinateurs, et les serveurs d’un système informatique  comme un ensemble de pools auxquels il affecte dynamiquement les ressources en fonction des besoins  en ressources des requêtes des utilisateurs du système.

virtualisation des ressources informatiques
Figure : schéma d’un système informatique virtualisé

Ce système de gestion des ressources informatiques sous forme de pools permet  de répondre efficacement  aux requêtes qui entraînent des montées ou baisses en charge dues à la cyclicité de l’activité de l’entreprise.

Définition de la virtualisation des données

Avec l’avancée technologique, aujourd’hui presque tout élément d’un système informatique peut être virtualisé : le réseau, les applications logicielles, les Bases de Données, les points d’accès aux systèmes, le système d’exploitation (OS) et même les données.

Bien entendu, lorsque les données sont virtualisés, on parle de Virtualisation des données. La définition de la virtualisation des données n’est pas aussi intuitive que vous laisse croire son appellation. 

Virtualiser les données consiste à fournir une abstraction (ou une interface) qui masque les détails techniques liés à la donnée, tels que sa localisation sur le disque dur ou dans la base de données, sa structure de stockage,  les API d’accès, le langage de requête,…etc.  Par exemple, si vous utilisez un service Cloud comme Onedrive ou Google drive ou dropbox pour stocker vos données, alors vous avez déjà « virtualisé vos données ». En effet, lorsque vous utilisez ce type de services, vous ne savez pas où ni comment sont stockés vos fichiers, tout ce que vous voyez c’est une interface qui vous présente toutes vos données. C’est cela la virtualisation de données !

Cependant, ce concept s’est noyé avec le concept de data federation (fédération de données) et data integration (intégration de données), ce qui nous emmène à nos prochains points.

Data Virtualisation vs Data Federation

La fédération de données consiste à regrouper des sources hétérogènes et disparates de données en un point d’accès unique (Single Point of Access). Ceci permet d’éviter les opérations complexes de fusions de plusieurs sources de données. L’objectif ici n’est pas d’unir ou d’intégrer les données dans un modèle cohérant comme dans un Data Warehouse ou un Data Lake, mais plutôt de se connecter à leur source et y fournir un point d’accès unique (virtuel ou physique)  qui permet aux utilisateurs de consulter ou de requêter les données sans se soucier des considérations technologiques et techniques quant à leur accès et leur localisation.

Un use-case de la fédération de données est par exemple le cas d’une Base de Données fédérée. Une Base de Données fédérée se connecte à plusieurs bases de données différentes et fournit une cartographie de la structure des données contenues dans ces bases. Les bases de données sont fédérées via le réseau et peuvent être géographiquement décentralisées.

 Voici les niveaux sur lesquels intervient la virtualisation dans la fédération de données :  

  • La virtualisation  fournit un point d’accès virtuel unique sous forme d’une IHM (comme une interface Web) qui masque la complexité des opérations techniques de fédération ;
  •  La virtualisation permet de fournir un langage de requête unique pour tous les systèmes de données fédérés, car ne perdons pas de vue que les systèmes fédérés peuvent posséder des langages de requête différents ;

En conclusion de cette partie, virtualiser les données n’implique pas qu’elles soient hétérogènes;  par contre la virtualisation simplifie la fédération grâce à l’abstraction des opérations de fédération et l’abstraction d’un langage d’interrogation de données.

Data Virtualisation vs Data Integration

L’intégration des données est une stratégie de gestion des données qui consiste à regrouper et à combiner des sources hétérogènes et disparates de données afin d’offrir une vision unifiée et cohérante de ces données (Single Point of View). L’intégration suppose les opérations de jointure, de transformation, d’enrichissement et de nettoyage des données. La différence avec la fédération est qu’ici on ne fait pas que regrouper les données, mais on les orchestre dans un  modèle de données cohérent et on fournit une ou plusieurs vues de ces données aux utilisateurs. Dans d’autres cas, on peut donner la possibilité aux utilisateurs de créer eux-mêmes leurs propres vues.

Un use-case de l’intégration de données est l’approche ETL (Extract Transform Load) qui consiste justement à fédérer plusieurs sources disparates de données, les intégrer de façon cohérente et charger les données obtenues dans un Système de Gestion de Base de données appelé communément Data Warehouse.

Comme on peut le voir avec le cas de l’ETL, La virtualisation n’intervient pas nécessairement ici comme dans la fédération, car le but n’est pas de fournir une abstraction aux systèmes contenant les données, mais bel et bien de fournir de la donnée unifiée.

Or, la complexité des opérations d’intégration réduit la souplesse que l’on a dans la création des vues. Par exemple, avec l’approche ETL, chaque vue dont l’utilisateur a besoin fait office  d’une demande au service IT et d’un projet IT tout entier, qui va durer pas moins de quelques semaines. Ce manque de souplesse peut être préjudiciable pour certains métiers (exemple les data miners, data scientists, statisticiens, data analysts, contrôleurs de gestion…etc) requérant une plus grande flexibilité dans le maniement des données. 

Pour répondre à ce besoin,  la virtualisation peut  être ajoutée à l’approche d’intégration. Ceci permettra de rapprocher les utilisateurs aux données et leur permettra par conséquent de créer leurs vues relativement plus rapidement qu’en intégration standard sans avoir à faire intervenir les services informatiques.

Pa contre, virtualiser dans un contexte d’intégration de données demande de faire le choix d’une part sur le type de modèle sémantique à adopter et d’autre part sur l’approche d’intégration  des données :

  • Au niveau du modèle sémantique : garantir la cohérence des données disparates en vue de fournir une vue unifiée requiert l’utilisation d’un modèle que nous allons appeler modèle de cohérence de données ; ce modèle peut être soit relationnel  ou ontologique ; A chaque modèle correspond une façon particulière de stocker et d’interroger les données. Dans le cas d’un modèle relationnel, les données sont stockées sous forme de table, les tables s’orchestrent dans un modèle dit relationnel et le SQL est utilisé comme langage pour interroger ce modèle ; dans le cas d’un modèle ontologique, les données sont stockés sous forme de nœuds, les nœuds forment un graphe et le SPARQL est utilisé comme langage pour interroger ce graphe;
  • Au niveau de l’approche d’intégration : les données peuvent être intégrées de 2 façons ; soit  les scripts d’intégration sont  générées en amont et l’intégration est faite localement, directement  au niveau des sources de données (approche que certains éditeurs qualifient de « Local-As-View »), soit alors les données sont extraites des différentes sources et chargées dans une base de données centrale, et c’est dans cette base de données centrale qu’est effectuée l’intégration. Cette base de données centrale  peut être hébergée soit dans un environnement virtualisé, soit dans un serveur local ou distant (cette approche est aussi appelée « Global-As-View » par les acteurs du secteur) ;

Basez-vous sur ces critères (non exhaustifs) pour définir votre approche d’intégration de données et sélectionnez ainsi votre  solution logicielle, car chaque éditeur est positionné sur une approche différente. Ainsi, certains éditeurs fournissent des outils ETL avec un modèle relationnel dont la base de données est hébergée en local (cas des solutions classiques d’ETL entre autre Teradata, ODI, Stambia, Talend, Microsoft SSIS…), d’autres proposent des ETL  en mode Local as View avec un modèle ontologique qui se connecte à des sources de données externes ou internes (c’est le cas de l’éditeur Denodo), et d’autres proposent des ETL en mode Global as View avec un modèle ontologique dont la base de données est hébergée en cloud (c’est le cas de la solution Aggrego de l’éditeur Semsoft).

Nous avons voulu inclure ce schéma pour que vous ayez une idée plus précise de la structure d’une solution de Data Virtualisation.

data virtualisation - Denodo
Figure : Structure d’une solution de virtualisation de données : AGGREGO Semsoft

Nous allons maintenant faire un tour d’horizon sur le Cloud Computing et sur la façon dont il se combine avec la virtualisation pour offrir la virtualisation de données.

Data Virtualisation vs Cloud Computing

Le Cloud Computing est un modèle économique dans lequel une entreprise fournit à une autre entreprise des ressources informatiques via internet que cette dernière paye suivant un modèle de coût appelé « Pay-As-you-Go » (ou payement à l’usage).

Techniquement, le Cloud c’est de la virtualisation pure, c’est l’abstraction de l’excédent des ressources informatiques d’une entreprise qui les met à disposition d’autres entreprises via Internet.  

Les ressources en Cloud sont offertes sous forme de services. On en distingue 3 grandes catégories, le SaaS, l’IaaS et le PaaS :

  • Le SaaS ou Software-as-a-Service  est un niveau de service du Cloud dans lequel le fournisseur héberge et met à disposition un logiciel ou une application, sans que l’entreprise n’ait à se soucier de l’installation et de la maintenance de cette application en interne ;
  • Le PaaS ou Platform-as-a-Service est un niveau de service du Cloud dans lequel le fournisseur héberge et fournit un environnement de développement intégré (EDI) qu’un développer peut utiliser pour créer et développer des logiciels, éliminant de ce fait la nécessité pour l’entreprise d’acheter constamment des EDI ;
  • L’IaaS ou Infrastructure-as-a-Service qui est le niveau de service qui permet à des entreprises de louer des centres de données (data centers), serveurs, réseaux, bref de s’équipper d’un système informatique complet sans s’inquiéter de créer et de maintenir la même infrastructure en son interne ;

L’image ci-dessous va vous permettre de comprendre clairement la taxonomie des  services offerts en Cloud Computing.  

Taxonomie des services Cloud
Figure : data virtualisation vs Cloud Computing. Taxonomie des services offerts en cloud

Pour avoir une connaissance plus approfondie sur le Cloud Computing, vous pouvez consulter la chronique Hadoop dans le Cloud.

Maintenant que vous avez compris le Cloud, vous voyez qu’en matière de stratégie de données, il peut être utilisé pour héberger les données (par exemple en approche Global as View dans l’utilisation de la solution Semsoft).  Dans ce cadre, le Cloud complète les stratégies de gestion de données, il ne représente pas en soit ni la stratégie de gestion de données, ni la virtualisation. Il représente simplement une façon de vendre la virtualisation.

Conclusion

En conclusion, voici les points clés à retenir de cette chronique :

  • Le marché désigne par « Data Virtualisation », les solutions qui consistent à combiner virtualisation + intégration de données ;
  • La fédération et l’intégration  de données n’impliquent pas nécessairement la virtualisation de données ;
  • Ajouter la virtualisation dans une stratégie de fédération ou d’intégration de données permet rapprocher les utilisateurs des données et leur offre une plus grande souplesse dans l’utilisateur ;
  • Le Cloud est un cas d’usage de la virtualisation, en matière de stratégie de données, il permet d’héberger les données dans un répertoire « virtuel » ;

Voilà ! Nous avons fait le tour des différents concepts qui tournent autour de la virtualisation de données que nous avions évoqué au début de la chronique. Nous avons présenté chacun des concepts et l’avons positionné dans les stratégies de gestion de données. Armés de cette connaissance et de la connaissance de vos besoins, vous serez en même d’évaluer effectivement les solutions qui vous seront présentées dans le cadre de la gestion de vos données et de sélectionner celle qui correspond le plus à vos besoin. 


Juvénal JVC

Juvénal est spécialisé depuis 2011 dans la valorisation à large échelle des données. Son but est d'aider les professionnels de la data à développer les compétences indispensables pour réussir dans le Big Data. Il travaille actuellement comme Lead Data Engineer auprès des grands comptes. Lorsqu'il n'est pas en voyage, Juvénal rédige des livres ou est en train de préparer la sortie d'un de  ses livres. Vous pouvez télécharger un extrait de son dernier livre en date ici : https://www.data-transitionnumerique.com/extrait-ecosystme-hadoop/

>