Séminaire BigData du 9 juin 2011

J'ai participé le 9 juin au séminaire de l'association Aristote sur le thème du BigData. J'avais été invité a faire une présentation des différentes technologie du marché en réponse au grand défi qu'est le BigData. Cette présentation est donc un décryptage des offres des grands constructeurs que sont EMC, IBM, Oracle…, et des architectures innovantes du monde opensource, avec notament Hadoop dont nous avons déjà parlé ici.  

Présentation des solutions big data pour Aristote 9-6-2011
Le séminaire a été amorcé par Xavier Dalloz qui a remis en perspective la problématique du BigData en s'appuyant sur une publication de McKinsey sur le sujet. 
Dans les présentations plus techniques, certaines ont retenu mon attention :
  • Alexandru Costan (INRIA) nous a présenté un système de fichiers distribué : BlobSeer
  • Joerg Bienert (ParStream) nous fait découvrir ParStream un moteur de base de données dédié aux très grandes base de données et dont la technologie offre des niveaux de performance très intéressant. 
  • Denis Caromel (ActiveEon-INRIA) a présenté un progiciel de workflow permettant d'organiser des travaux Map/Reduce dans un cluster très largement distribué.
  • Nicolas Pons (INRA) a présenté ses travaux sur la génomique. Aujourd'hui la capacité de séquençage augmente infiniment plus vite que la capacité de stockage et de calcul dont nous disposons.
Vous pouvez retrouver toutes les présentation de cet excellent séminaire ici. Encore un grand bravo aux organisateurs qui ont su faire de cette journée une réussite.

Cloud Foundry de VMWARE

Cloud Foundry de VMWARE se présente comme une PaaS, qui regroupe dans un seul environnement de multiples briques logicielles. L'intérêt de cet environnement et ce qui fait qui va falloir surveiller cette offre de près réside en plusieurs points. 

  1. VMWARE est l'acteur de référence de la virtualisation, et pour avoir assisté à plusieurs présentations plus aou moins techniques de leur stratégie, le moins que l'on puisse dire c'est qu'ils ont envie de sortir du monde de l'infrastructure pure. Ils ont racheté ces dernières années nombre de société afin de construire une offre Cloud généralisée allant de l'IaaS (leur position historique), au SaaS (typiquement la messagerie ZIMBRA), en passant par le PaaS avec le rachat de plusieurs acteurs du développement logiciel (Springsource, etc...). Et c'est dans ce dernier pan de leur stratégie que s'inscrit Cloud Foundry.

  2. Des outils d'administration ultra simples, mais donnant accès à tous les paramètres d'exécution de vos applications dans le Cloud. Vous pouvez facilement faire varier le nombre d'instances déployées, vérifier les ressources utilisées, et le niveau d'utilisation de celles-ci.
  3. En créant une communauté forte par une approche opensource, VMWARE veut accélérer le développent de son écosystème. 
  4. Cloud Foundry est un PaaS très global, qui se distingue fortement d'acteur déjà très installés sur le marché (Google AppEngine, Force.com) par plusieurs points, que sont : 
  • La multiplicité des langages qui peuvent être utilisés :  Spring / JavaRails et Sinatra pour Ruby, et Node.js pour Javascript
  • La possibilité de s'appuyer sur des services de données variés que sont MySQLMongoDB et Redis
  • La possibilité de déployer tant sur le Cloud public hosté chez VMWARE, que dans son propre cloud privé. En effet l'ensemble des outils sont disponibles dans un repository Open Source, et peuvent être librement employés dans une infrastructure privée. C'est sur ce point que VMWARE trouve un élément très différenciant par rapport à ses concurrents.
L'infographie ci-dessous donne une vision globale de ce qui constitue l'ensemble de cet environnement. Aujourd'hui VMWARE a lancé une Beta semi-publique, il faut s'inscrire sur Cloudfoundry.com ou alors aller sur Cloudfoundry.org pour télécharger les outils et se faire son propre micro Cloud.
Tumblr_ljpgb0cnj31qhaq9m

Hadoop? MapReduce? le CEO de Cloudera répond

La vidéo ci-dessous est une interview de Mike Olson le CEO de Cloudera par Robert Scobble. Cette vidéo est l'occasion pour lui de faire une présentation relativement exhaustive de Hadoop, de Map Reduce et de ce que Cloudera fait autour de cette technologie. 

Le design de cette infrastructure est venue du besoin des géants de l'internet d'indexer le web. Face à ce défi les technologies classiques de bases de données ont très vite été dépassées. Hadoop se démarque facilement des grands SGDBR, car ceux-ci sont foncièrement inadaptés pour gérer des données non structurées. Les tables sont idéales pour faire des requêtes prévisibles sur des données tabulaires. Pour des raisons économiques, les données ont été réparties sur de petits serveurs standard disposant de quelques disques locaux, agrégés entre eux par une solution logicielle. Et pour traiter ces données, les algorithmes mis en oeuvre ont tiré parti de la CPU propre à chaque serveur. C'est ainsi que le systeme de fichiers HDFS  (Hadoop Distributed File System) et Map / Reduce sont nés. En 2004 Google a écrit une première publication sur MapReduce qui fixa les grandes lignes de cette nouvelle manière de traiter les grands volumes de données.

Cette approche de traitement des données a aujourd'hui comme effet de remettre les programmeurs et les ingénieurs systèmes ensembles pour réfléchir à la meilleure manière de stocker les données. Cette souplesse permet de créer une technologie adaptée à un problème plutôt que d'adapter le problème à la technologie comme on le faisait avant.

Cloudera a construit son business sur une offre de support et de distribution packagée des outils Hadoop. Pour développer une réelle valeur autour de cet écosystème, ils ont recrutés de nombreux ingénieurs qui étaient aux origines du produit. Si vous voulez tester les outils packagés dans leur distribution, une VM est disponible. Comme le souligne Mike Olson, avec Hadoop le rythme d'innovation s'accélère de nouveau. 

c'est toujours quand il faut pas que les incidents arrivent

Tranquillement installé cette après midi à regarder mes mails en retard et autres trucs moins sérieux, et d'un seul coup un mail arrive me sortant brutalement de ma torpeur. Un client dont l'application est en production depuis des semaines m'explique que plus rien ne fonctionne. Tout de suite échanges de mails, échanges divers pour creuser et tenter d'avoir un début d'explication. Evidemment tout ça commence par la classique action du saint esprit puisque personne n'a touché a rien, et rapidement des produits de protection systèmes ont été modifiés, bref finalement on se rend compte que l'application qu'on est en train d'essayer de débugger est parfaitement opérationnelle. Quel est l'intérêt de parler de ce type d'événement si ce n'est que ça amène toute la difficulté de l'exploitation d'applications par un client. Celui-ci doit maintenir un système en condition opérationnelle, en n'ayant -et c'est bien légitime- pas forcement la pleine mesure des effets de bords des opérations qui sont à réaliser sur les serveurs. Pourquoi pas lui proposer alors de passer en mode SaaS de type Cloud Computing, on externalise toute l'application et le client se connecte à ses données depuis Internet. Tout ça n'est pas si simple, il  y a d'abord la réticence évidente et paradoxale d'un client d'une petite structure à envoyer ses données sur internet, a ne plus les posséder en interne chez lui. A ce premier point s'ajoute parfois l'aspect technique, parfois des applications fonctionnement bien en local, mais pas évident que ce soit aussi efficace à distance. De ces différentes interrogations, et assertions me vient une reflexion qui consiterait à déployer des conteneurs d'applications chez les clients et à les gérer à distance. Ainsi on isole l'application pour être certain qu'elle continue à s'executer dans un environnement intègre, on en assure la maintenance et les évolutions, et on a la certitude qu'il n'y a pas de problèmes 'étranges'. Concrêtement cette logique peut s'envisager au travers d'une infrastructure de virtualisation chez le client et ainsi permettre de faire converger les deux préocupations, celle du client de propriété de ses données, et par ailleurs celle de robustesse et d'indépendance. On pourrait qualifier ça de 'in house cloud computing', l'application s'exécute dans un conteneur virtualisé, et à partir de là le client accède à un service sans plus de dicernement. Le concept reste à expérimenter, donc à suivre...