Pour nous faciliter la tâche, il apparaît depuis quelques temps différents moyens d’automatiser la mise en place d’une architecture big data au sein d’un environnement de cloud (API ou outil additionnel), grâce notamment aux contributions des fournisseurs Cloud possédant déjà tout un pan de l’expertise nécessaire.
Nous allons ainsi expliquer comment il est possible de rapprocher les technologies Big Data et de Cloud. Nous parlerons de la flexibilité et de l’élasticité apportés par une plateforme cloud dans un projet d’automatisation de déploiement d’infrastructure. Nous expliquerons enfin, comment centraliser et rationaliser l’installation et la configuration, puis comment envisager la gouvernance des données et la mise à disposition de celles-ci, au reste de l’entreprise.
Le Cloud permet de réaliser des déploiements d’architecture Big Data multiplateformes
Dans l’IT, le Cloud existe sous deux formes : le cloud public avec des providers comme Amazon Web Service, Google Cloud Plateforme ou encore Microsoft Azure et le cloud privé (dédié et physiquement hébergé dans l’entreprise ou externalisé dans un Datacenter) déployé grâce à des plateformes comme Openstack ou des solutions de virtualisation comme VMWare dont le concept commun repose sur la mise à disposition de ressources pour une entité unique (équipe, business unit, organisation globale).
Pour permettre une parfaite interconnexion avec une infrastructure Cloud, Terraform s’avère être une solution idéale permettant de s’adapter à chaque plateforme ou technologie en vue de créer des infrastructures répondant parfois à des besoins clients spécifiques.
Le buzzword associé à Terraform est « Infrastructure as Code ». Cela signifie que le développement de l’infrastructure se fait via l’assemblage de fichiers créés dans un format propre à Terraform (.tf).
Cela offre plusieurs avantages :
- Centraliser le code, c’est-à-dire les infrastructures, dans un outil de versionning tel que Git.
- Cloner les infrastructures à la volée et facilement.
- Gérer simplement le cycle de vie de chaque infrastructure.
L’intérêt réside ainsi dans la souplesse et la compatibilité offertes par Terraform vis-à-vis des différentes « briques » Cloud existantes.
Comment industrialiser les processus de configuration d’une architecture Big Data indépendamment du fournisseur Cloud
La technologie Ansible répond très bien lorsqu’il s’agit d’automatiser la configuration de clusters. Il s’agit d’un outil d’installation, de configuration et d’administration, qui ne nécessite pas l’installation d’un processus esclave sur les serveurs distants.
Le processus s’articule autour de trois grandes parties dédiées à la construction d’un cluster au sein d’une architecture Big Data, dans le Cloud :
Préconfiguration OS
Les tâches de pré-configuration sont découpées en sous tâches simples et peuvent être réutilisées pour reconfigurer à posteriori des serveurs ou pour ajouter des nœuds dans le cluster si besoin. Il est possible de changer de distribution Big Data (Cloudera, Hortonworks ou MapR) indépendamment de l’infrastructure, puisque celle-ci restera identique grâce à la compatibilité offerte par Terraform.
Installation des services
L’installation de services, développés sous forme de rôle Ansible tel que HDFS Hadoop, Impala, HBase ou Kafka, se fait par le lancement de tâches en interaction directe avec l’API Cloudera Manager. Une simple réadaptation des rôles permet d’installer ces services également sous les distributions Hortonworks ou MapR.
Optimisation des plateformes
Une fois le ou les clusters de serveurs virtuels installés, s’enclenche une configuration personnalisée, prévue en amont, afin de coller aux besoins du client.
Grâce à ce type de procédé, il est donc possible pour une architecture big data de faire de la virtualisation de clusters, dans un modèle « à la demande », afin de répondre à des besoins de robustesse et de scalabilité sur du court terme.
Comment migrer vers le Cloud AWS des clusters Hadoop en 5 étapes
Sélection, préparation et mise à disposition des données pertinentes dans le datalake de l’entreprise
Une fois les infrastructures déployées, Ansible permet là encore d’automatiser le paramétrage de zones de données spécifiques accessibles au sein du data lake de l’entreprise (données brutes, données raffinées, etc.) en fonction de ses besoins.
La donnée nécessite d’être rangée de manière pertinente par rapport aux besoins. C’est pourquoi il est nécessaire de cloisonner les projets au sein d’un datalake avec une zone de partage. L’intérêt étant la mise à disposition d’information commune et des zones de travail spécifiques à chaque entité et/ou projet.
De cette manière, la donnée peut être raffinée selon les besoins d’un projet et être ensuite exposée au reste du datalake pour en faire bénéficier les autres équipes/projets.
Pour mettre la donnée à disposition des utilisateurs, plusieurs alternatives existent :
- Table(s) Impala (interne(s) ou externe(s)) accessible(s) à tous
- Table(s) HBase accessible(s) à tous
- Topic(s) Kafka accessible(s) à tous
- Zone HDFS partagée
On peut aussi imaginer une API « home made », dont l’objectif serait d’agréger différentes sources de données raffinées, pour en restituer uniquement celles consolidées. Les systèmes d’API Management en l’occurrence, peuvent aider à cloisonner les accès à ce genre de ressources.
On vous donne également d’autres infos sur notre twitter 🙂
We make data yours !