Vous souhaitez travailler sur un projet Big Data ? Quelle offre Cloud choisir ? Amazon EMR ou Microsoft Azure HDInsight ? Dans la chronique précédente (Déployer Hadoop dans le Cloud), nous vous avons montré comment grâce au Cloud Computing, les entreprises, aussi bien petites que grandes, qui n’avaient pas le budget nécessaire pour se lancer dans le Big Data, ont désormais l’opportunité d’acquérir les technologies de l’écosystème Hadoop ainsi que celles du Big Data sur la base d’un coût variable.
Maintenant que vous savez comment Hadoop fonctionne dans le Cloud, nous allons passer en revue les deux offres Cloud Hadoop les plus influentes du marché : Amazon Elastic MapReduce (EMR) d’Amazon et Azure HDInsight de Microsoft. L’objectif est d’établir un benchmarking de ses deux solutions, afin que vous aillez une base de départ pour les comparer. Notez que nous les avons choisies exclusivement sur la base de leur leadership sur le marché et sur la base de l’expérience personnelle que nous avons des deux sociétés. Ainsi, n’interprétez pas le choix de leur offre comme une indication de supériorité à d’autres offres du marché. Aussi, renseignez-vous directement sur le site de l’entreprise pour les prix exactes et les configurations des offres. Notre but est simplement de compléter votre compréhension du fonctionnement d’Hadoop dans le Cloud et de vous faire comprendre la façon dont Hadoop est facturé en Cloud.
L’offre Cloud Big Data d’Amzon : Amazon EMR
Amazon Elastic MapReduce ou simplement Amazon EMR est l’offre Cloud Hadoop d’Amazon. Elle offre aux entreprises et aux particuliers, la capacité de déployer en Cloud un ou plusieurs clusters sur lesquels sont installés une distribution complète d’Hadoop avec son écosystème ou alors un composant de l’écosystème Hadoop. Le client a le choix entre la distribution MapR d’Hadoop, la distribution Hadoop personnalisée d’Amazon, et récemment la distribution Hortonworks d’Hadoop. Amazon EMR n’est pas une offre tout en un, c’est une offre qui résulte de l’addition de plusieurs autres offres Cloud d’Amazon. En fait EMR est juste la partie applicative du service. Vous choisissez séparément les instances de l’offre Amazon EC2 (Amazon Elastic Cloud Compute, l’offre IaaS d’Amazon) qui vont constituer votre cluster (standard, mémoire élevée, CPU élevée, etc.) et selon vos besoins, vous souscrivez à un abonnement Amazon S3 (Amazon Simple Storage Service, l’offre Cloud de stockage d’Amazon) pour la persistance des données que vous traitez dans le Cloud. Résumé en une équation, l’offre Hadoop dans le Cloud d’Amazon est la suivante :
Hadoop Cloud Amazon = instances Amazon EMR + instances Amazon EC2 + abonnement stockage Amazon S3
Fonctionnalités d’Amazon EMR
L’offre Amazon EMR possède plusieurs caractéristiques qui la rendent intéressante pour l’utilisation d’Hadoop en Cloud. Nous allons présenter de façon succincte 3 d’entre elles. Vous trouverez l’exhaustivité de ces caractéristiques sur le site Web officiel d’Amazon dédié à AMR.
- Redimensionnement automatique des clusters en cours d’exécution : Amazon EMR offre la possibilité de redimensionner un cluster en cours d’exécution. En d’autres termes, si la charge de calcul de vos traitements change, vous pouvez ajouter temporairement plus de puissance de traitement au cluster, ou bien réduire votre cluster pour diminuer les coûts. Par exemple, vous pouvez ajouter des centaines d’instances à vos clusters au moment du traitement par lots, puis suppriment les instances excédentaires lorsque celui-ci est terminé. Lorsque vous ajoutez des instances à votre cluster, EMR peut commencer à utiliser la capacité dimensionnée sans arrêter le cluster. Cet avantage rend l’offre scalable en termes de performance, flexible en termes de coûts, et annule le besoin de planifier à l’avance les pics ou creux de charge de calcul qui vont survenir dans le futur ;
- Intégration avec des Services Cloud de stockage: vous pouvez utiliser Amazon EMR à partir des données stockées dans un service Cloud distinct (par exemple Amazon S3). Par exemple, supposons que vous stockez vos données chez un fournisseur Cloud particulier, vous pouvez utiliser des instances de cluster Amazon EMR pour vous connecter à ces données et les traiter. Ceci rend vos clusters et vos traitements indépendants de vos données. Cette caractéristique de l’offre a été rendue possible par le système de fichier EMR FS (Amazon EMR File System) mis au point par Amazon. Le système de fichiers EMR (EMRFS) permet aux clusters EMR d’utiliser par défaut Amazon S3 comme espace de stockage de données pour Hadoop. EMRFS offre des performances élevées en matière d’écriture vers et de lecture à partir d’Amazon S3, prend en charge le chiffrement S3 côté serveur ou côté client à l’aide d’AWS Key Management Service (KMS) ou de clés gérées par le client, et fournit une vue cohérente optionnelle, qui vérifie la liste et la cohérence read-after-write (lecture directe après écriture) des objets suivis dans ses métadonnées. De plus, les clusters EMR peuvent utiliser aussi bien le système EMRFS que le système HDFS ; vous n’avez donc pas à choisir entre un stockage sur le cluster et Amazon S3. Avec Amazon EMR, vous pouvez utiliser plusieurs Object Store, y compris Amazon S3, le système de fichiers distribués Hadoop (HDFS) et Amazon DynamoDB ;
- Disponibilité d’une distribution complète d’Hadoop: Amazon EMR repose sur la distribution MapR d’Hadoop, en d’autres termes, tous les outils et technologies Hadoop disponibles dans la distribution MapR sont également disponibles en Cloud EMR. Il en est de même avec la disponibilité de la distribution Hortonworks HDP. Pour plus de détails concernant les composants Hadoop de MapR et de Hortonworks, veuillez-vous référez à notre ouvrage « Maîtrisez l’utilisation des technologies Hadoop – Initiation à l’écosystème Hadoop », paru chez les éditions Eyrolles. En plus de ces deux distributions, Amazon met à disposition d’EMR sa propre distribution Hadoop, composée entre autre des outils tels qu’Amazon DynamoDB (un service de base de données NoSQL), Amazon Relational Database Service (un service Web qui facilite la configuration, l’exploitation et le dimensionnement des bases de données relationnelles dans le Cloud), et Amazon Redshift (un service d’entrepôt de données d’une capacité de plusieurs péta-octets). Amazon intègre également quelques outils Open source supplémentaire de l’écosystème Hadoop qui ne sont pas présent dans la distribution MapR, à savoir Apache Phoenix (permet d’exécuter les requêtes SQL sur les données stockées dans Apache HBase), Apache Flink (un moteur de streaming de données traitement temps réel), R, Mahout (environnement d’exécution des modèles d’apprentissage statistique selon le paradigme MapReduce), Ganglia (outil de monitoring du cluster Hadoop ), et Accumulo (un système de gestion de base de données NoSQL initialement développé par la NSA avant d’être léguée à la fondation Apache). Pour plus de détails sur l’ensemble des outils, veuillez consulter le site Web d’Amazon EMR ;
Tarification d’Amazon EMR
Le modèle économique d’Amazon EMR consiste à facturer l’utilisation de chaque instance du cluster à l’heure. Par exemple, si vous souscrivez à un cluster de 10 nœuds pour 10 heures, le prix revient au même prix qu’un cluster de 100 nœuds s’exécutant pendant une heure. 3 éléments principaux composent cette tarification : le type d’instance souscrit, l’édition de distribution MapR sélectionnée, et la zone géographique souscrite.
- Le type d’instance : le premier critère consiste à déterminer les caractéristiques des instances qui vont former votre cluster. Pour cela vous devez souscrire à des instances Amazon EC2. Amazon EC2 fournit un vaste éventail de types d’instances optimisés pour différents cas d’utilisation. Ces types d’instances correspondent à différentes combinaisons en termes de capacités de CPU, de mémoire, de stockage et de mise en réseau. Chaque type d’instance inclut une ou plusieurs tailles d’instance, ce qui vous permet de mettre à l’échelle vos ressources en fonction des exigences de la charge de travail prévue. Pour plus de détails sur les caractéristiques des différents types d’offres, veuillez consultez le site Web d’Amazon EC2. Le tableau suivant donne un aperçu des caractéristiques des types d’instances ;
- La version de la distribution MapR sélectionnée : MapR décline sa distribution sur Amazon EMR en 3 distributions : l’édition M7, l’édition M5 et l’édition M3. Chaque édition correspond à un niveau de fonctionnalités couvert. Ci-après la figure récapitulative des fonctionnalités de chaque édition ;
- La zone géographique : la tarification varie également en fonction de la zone géographique, c’est-à-dire de la zone où vos données sont hébergées. Amazon couvre 3 grandes zones : l’Amérique, l’Asie Pacifique, et l’Union Européenne (où elle a ses serveurs à Francfort et en Irlande) ;
Le tableau suivant donne un aperçu des grilles de tarif/heure d’Amazon EMR. Mais rapprochez-vous directement sur le site officiel de l’offre EMR d’Amazon pour plus de précision.
Microsoft Azure HDInsight
On ne présente plus Microsoft, l’un des géants du monde logiciel. En matière de Cloud, Microsoft propose Azure. Azure couvre toutes les offres Cloud de Microsoft. L’Offre Cloud Hadoop est Azure HDInsight. Azure HDInsight rend les composants Hadoop de la distribution Hortonworks disponibles dans le Cloud, déploie et approvisionne des clusters de machines virtuelles nécessaires pour l’exécution de vos problèmes de calcul. Azure HDInsight fournit des configurations de cluster pour Apache Hadoop, Spark, HBase et Storm. Elle vous permet également d’utiliser des clusters personnalisés avec des actions de script. Au même titre qu’Amazon EMR, Microsoft Azure HDInsight est une offre qui est facturée sur les composants Hadoop utilisées et les types d’instances de machines virtuelles qui forment le cluster et sur le compte de stockage que vous aurez pris au cas où vous vous aurez abonné à un.
Hadoop Cloud Microsoft = instances Azure + instances HDInsight + abonnement stockage Azure
Fonctionnalités d’Azure HDInsight
La spécificité d’Azure HDInsight est qu’elle fait partie d’un écosystème plus grand, Azure. Par conséquent, elle bénéficie des fonctionnalités de celle-ci. Nous allons énumérer de façon succincte celles qui nous semble les plus importantes par rapport aux objectifs de cette article.
- Redimensionnement automatique des clusters en cours d’exécution : Azure HDInsight, tout comme Amazon EMR offre la possibilité de redimensionner un cluster en cours d’exécution ;
- Intégration avec l’Object Store blob Azure : les clusters que vous créez en Azure HDInsight peuvent exploiter les données directement depuis un service Cloud séparé, Azure Store blob[1] qui est le service Cloud de stockage d’Azure. Grâce à une interface HDFS, l’ensemble des composants de HDInsight peuvent fonctionner directement sur les données structurées ou non structurées dans le stockage d’objet blob. Azure Store blob n’est pas juste un endroit où les données sont stockées, il fait aussi office de système de fichiers distribué remplaçant le HDFS pour les clusters HDInsight, ce qui permet la mutualisation des données entre plusieurs comptes de stockage Azure blob, l’élasticité des ressources et réplication/restauration géographique des données ;
- La gouvernance : Azure offre des fonctionnalités de gouvernance qui permettent de l’intégrer dans la politique de gouvernance informatique de l’entreprise cliente. Il offre l’authentification Unique (Single Sign-On – SSO), l’authentification multi-facteur et la gestion des millions d’identités à travers Azure Active Directory, un service Cloud de gestion des identités et des authentifications. De plus, Azure HDInsight s’intègre avec Apache Ranger pour permettre l’attribution des niveaux de droit d’accès à des utilisateurs, ou des groupes d’utilisateurs. Azure HDInsight est conforme aux normes HIPAA, PCI et SOC, garantissant un haut niveau de sécurité à la fois de la plateforme et des données des clients ;
- Intégration à Hadoop : Azure HDInsight s’appuie sur la distribution HDP Hortonworks d’Hadoop. Elle offre 4 types de clusters indépendants : un cluster Hadoop, un cluster HBase, un cluster Spark et un cluster Storm. En d’autres termes, vous ne pouvez pas provisionner un cluster de machines virtuelles avec HBase ou Storm ou Spark ou Hadoop tournant au même moment dessus. HDInsight est également intégré aux outils décisionnels de la suite Microsoft tels que Power BI, Excel, SQL Server Analysis Services et SQL Server Reporting Services. Le cluster HDInsight peut être provisionné et déclenché à l’aide des scripts d’action personnalisées, ce qui lui permet de pouvoir s’intégrer à des applications externes. Actuellement, des scripts d’action ont été développés pour qu’un cluster HDInsight s’utilise avec les applications Datameer, Cask, AtScale et StreamSets, et avec des environnements de développements utilisateurs tels qu’éclipse, Jupyter, IntelliJ ou Visual Studio.
[1] L’acronyme blob se traduit par Binary Large Object et fait référence aux données non-structurées de grande taille telle que les images, les vidéos, etc.
Tarification d’Azure HDInsight
Les clusters HDInsight sont des approvisionnements d’instances de machines virtuelles ou de nœuds. Le client est facturé sur l’usage de leurs nœuds sur une période donnée (par heure ou par mois). La facturation commence une fois que le cluster est créé et s’arrête lorsque le cluster est supprimé. La tarification HDInsight est fonction des 3 facteurs principaux suivants : le type de cluster, le type d’instance, la version de l’offre HDInsight, la région géographique, et les services de support.
- Le type de cluster : la facturation varie en fonction du type de cluster que vous sélectionnez. Azure HDInsight offre le choix entre 4 types de cluster : le cluster Hadoop, le cluster HBase, le cluster Spark et le cluster Storm. Pour connaitre le coût de chaque type de cluster, rapprochez-vous directement de Microsoft sur le site officiel de l’offre Azure HDInsight ;
- Le type d’instance : Azure fournit des types d’instances optimisés chacun pour un cas d’utilisation bien précis et pour un type de cluster précis. En d’autres termes, le type d’instance que vous sélectionnez est fonction du type de cluster que vous allez utiliser. Chaque type d’instance correspond à un ensemble de caractéristiques de performance spécifiques qui seront utilisées pour approvisionner les machines virtuelles de votre cluster. Microsoft Azure met à disposition 2 grandes catégories de types d’instances : les séries A, adaptées aux clusters qui exécutent des applications de requête de base et des modèles dans Hadoop et adaptées également aux clusters à hauts niveaux de performances, spécialisé dans le calcul intensif, la modélisation, les simulations, l’encodage vidéo, ainsi que les autres scénarios nécessitant une bande passante importante ou de nombreux calculs. Et les séries D, adaptées aux clusters qui exécutent des applications nécessitant une faible latence et un accès disque SSD local ou des processeurs plus rapides sur Hadoop. La figure suivante donne un aperçu des caractéristiques de quelques configurations de machines disponibles dans les différentes séries ;
En plus des caractéristiques des instances, HDInsight déploie un nombre différent de nœuds pour chaque type de cluster. Au sein d’un type de cluster donné, il existe différent rôles pour les divers nœuds, ce qui permet à un client de dimensionner ces nœuds dans un rôle donné en fonction de la charge de travail. Par exemple, les nœuds de calcul d’un cluster Hadoop peuvent être approvisionnés avec une grande quantité de mémoire si les analyses exécutées en ont besoin. Les clusters Hadoop pour HDInsight sont déployés avec deux rôles : Nœud principal (2 nœuds) et Nœud de données (au moins 1 nœud). Les clusters HBase pour HDInsight sont déployés avec trois rôles : les Serveurs principaux (2 nœuds), les Serveurs de région (au moins 1 nœud) et les Nœuds principaux/Zookeeper (3 nœuds). Les clusters Spark pour HDInsight sont déployés avec trois rôles : le Nœud principal (2 nœuds), le Nœud de travail (au moins 1 nœud) et les Nœuds Zookeeper (3 nœuds) (Gratuit pour les nœuds Zookeeper de taille A1). Les clusters Storm pour HDInsight sont déployés avec trois rôles : les Nœuds Nimbus (2 nœuds), les Serveurs superviseur (au moins 1 nœud) et les Nœuds Zookeeper (3 nœuds). L’utilisation de R-Server implique un nœud de périphérie en plus de l’architecture de déploiement du cluster. Le tableau suivant récapitule la configuration minimale de chaque type de cluster. Pour plus de détails, rapprochez-vous de Microsoft.
- La version de l’offre HDInsight : HDInsight est disponible en deux versions, la version standard et la version Premium. Les deux types de versions n’offrent pas toutes les mêmes fonctionnalités, surtout en termes de gouvernance et de sécurité, et ne sont pas facturés de la même façon. Les 2 tableaux ci-après illustrent respectivement les fonctionnalités et les prix de chaque version.
- la région géographique : la facturation d’Azure HDInsight dépend également de la localisation géographique de vos clusters. Actuellement, Azure est mis en disponibilité générale dans 30 régions du monde et 8 autres régions seront bientôt annoncées ;
- les services de support : en plus des 4 critères précédents, vous pouvez optionnellement souscrire à des services supplémentaires pour vos clusters HDInsight. Microsoft Azure met à disposition 3 services supplémentaires : le service de stockage de données (Azure blob Storage), le service de transfert de données, et le service support. Vous avez également la possibilité de souscrire à R-Server pour les analyses statistiques. Notez que ces services sont facturés séparément ;
Avec tous ces critères, il vous est peut-être difficile de vous retrouver. Nous allons utiliser un exemple tiré du site support de Microsoft pour illustrer un exemple de facturation. Supposons que vous souscrivez à un cluster dans la région Est des États-Unis avec 2 nœuds principaux D13 v2, 3 nœuds de données D12 v2 et 3 Zookeeper D11, la facturation est la suivante dans les deux scénarios :
- Utilisez HDInsight Standard sur un cluster de cœurs HDInsight : 2 x 1,15 €/heure + 3 x 0,64 €/heure + 3 x 0,32 €/heure) = 5,1914 €/heure
- Utilisez HDInsight Premium sur un cluster de cœurs HDInsight avec R-Server : 2 x 1,15 €/heure + 3 x 0,64 €/heure + 3 x 0,32 €/heure + (2 x 8 + 3 x 4 + 3 x 2) x 0,0337 €/Cœur-heure = 6,3382 €/heure
Tout comme avec Amazon EMR, les tarifs et la composition de l’offre complète d’Azue HDInsights est en renouvellement permanent. Renseignez-vous directement auprès de Microsoft pour les informations à jour ou n’hésitez pas à vous rendre sur le site officiel de l’offre Azure HDInsight.
ATTENTION !!!! Lorsque vous devez conseiller votre client quant à l’offre Cloud à sélectionner pour vos problèmes Hadoop (précisément le stockage de données dans les services Cloud), soyez conscient de l’impact des réglementations. L’Etat américain par exemple possède une loi appelée le Patriot Act (et récemment il a introduit la Cloud Act) qui l’autorise en cas de nécessité à investiguer les données hébergées dans le Cloud des entreprises américaines, indépendamment de la localisation de leurs data centers dans le monde. Ainsi, si l’Etat américain juge nécessaire, il peut accédez aux données stockées dans le Cloud de Microsoft ou Amazon même si les serveurs qui stockent ces données sont hébergés sur le territoire européen. C’est une erreur très courante de croire que cette loi s’applique uniquement sur le sol américain. De plus, même si vous souscrivez à une offre Cloud d’une entreprise américaine en Europe, rien ne garantit que vos données restent hébergées dans les data Centers en Europe.
Pour plus de détails sur le Cloud Computing, les offres Cloud, les exigeances et l’impact des réglémentations, nous vous recommandons de vous procurer notre ouvrage Maîtrisez l’utilisation des technologies Hadoop.