Le BPI est une collection d’indicateurs de performance orientés BigData qui a pour objectif d’aider au benchmarking de différents outils de l’écosystème BigData, dans leur implémentation en environnement Cloud Public.
Bien entendu, même si cela peut sembler une évidence, faire des traitements BigData dans un environnement en Cloud Public suppose d’avoir déjà ses données chez le même opérateur ou d’avoir une interconnexion réseau suffisamment dimensionnée pour les transferts de données …
Le BPI peut également servir de mètre-étalon pour mesurer les performances d’une implémentation de Cloud Privé.
Le premier indicateur BPI-MR que nous allons construire est destiné à mesure la performance d’un traitement Hadoop de type Hdfs/MapReduce.
- Soit un traitement de référence MapReduce Mr de complexité Co;
- Soit un jeu de données Jd de référence de dimension Di (exprimé en Mo);
- Soit un cluster Cl0 de N0 noeuds homogènes dans leur nature.
Concernant le traitement Mr retenu, il devra solliciter de manière équilibré l’ensemble des composants de l’architecture sous-jacente.
Concernant le jeu de données Jd, il sera composé d’un ensemble de fichiers de dimension équivalente, en évitant un nombre de fichiers excessifs ou au contraire trop réduit.
Enfin, concernant le cluster Cl0, chaque noeud aura une performance P0 s’appuyant sur un environnement matériel et logiciel explicitement caractérisé (processeur, mémoire, disque, bande-passante réseau, espace disque, type de disque, débit I/O, système d’exploitation invité, environnement BigData Hadoop, produits logiciels tiers, etc).
Toujours en ce qui concerne le cluster, celui sera d’un coût facturé de Ct0 euros HT de l’heure. Le coût Ct0 en Cloud Public est un coût margé prenant en compte la marge de l’opérateur et ses différents coûts internes, s’appuyant sur une formule à l’abonnement au mois sur une période d’un an, coût facturé qui sera ramené à l’heure. Pour une mesure BPI en Cloud Privé, on devra bien entendu prendre en compte l’ensemble des coûts CAPEX/OPEX de la solution, y compris les coûts cachés.
Si l’on considère le temps de traitement Tt0 (en secondes) du batch MapReduce Mr lancé sur le cluster Cl0, on pourra alors mesurer l’indicateur :
BPI-MR0 (en Mo/Sec/Euro) = fs x Di/Tt0/Ct0
Remarque : fs est un simple facteur multiplicateur unique de normalisation de la valeur exprimée.
La même mesure sera effectué sur des clusters Cl1… ClN de taille différente et de nature matérielle différente afin de prendre en compte les distorsions liées :
- au temps de lancement du traitement et sa distribution sur les noeuds;
- au gabarit de chaque noeud et à la politique commerciale qui y est associée.
On obtiendra alors une série de mesures BPI-MR0 à BPI-MRN donnant une première caractérisation de l’offre Cloud sur du BigData chez un opérateur de Cloud Public.
Nous publierons prochainement une série de caractérisations BPI-MR sur Amazon AWS, Cloudwatt, Numergy, OVH, en cours de conception.
Remarque importante : pour une même série de mesure, l’environnement logiciel devra être strictement identique.