Les Techdays sont l’évènement informatique majeur d’Europe. Organisé par Microsoft, c’est un public de professionnel qui se retrouve pour aborder de nombreux thèmes de l’informatique moderne.
Y être speaker est une opportunité unique de transmettre ses connaissances et j’ai eu la chance de pouvoir le faire. Cette année, le thème choisi par Microsoft, « Ambient Intelligence », ne pouvait pas mieux tomber. Tout d’abord parce que l’Ambient Intelligence c’est l’IOT (Internet Of Things), soit l’internet des objets. Pouvoir interconnecter tout type de matériel, sous une pléthore de protocoles, c’est techniquement très intéressant et fonctionnellement épatant. Un exemple ? Penser à la fourniture d’électricité. Le gros problème actuel en matière de production est que nous ne savons pas stocker l’électricité (plus précisément, nous savons, mais pas pour la puissance requise pour alimenter toute une ville pendant plusieurs instants) mais juste la produire. Produire de l’électricité, outre être néfaste pour l’environnement et coûter cher, exige quand il y a par exemple un pic de consommation à emprunter de l’électivité aux pays limitrophes. Se basant sur la météo, les sociétés de production estiment les consommations éventuelles et le comportement des individus par zones. L’IOT permettra (elle le permet déjà dans certaines villes où des expérimentations sont en cours) une analyse en temps réel ou pseudo-temps réel (avec un léger décalage de temps) des consommations. Ceci exige des compteurs intelligents. Le réseau électrique ainsi obtenu porte le nom de « SmartGrid », des grilles électriques intelligentes.
Il y a plein d’autres exemples. Un réfrigérateur qui sait le moment opportun pour commander des produits, une maison qui fait monter le chauffage quand votre voiture se rapproche, des panneaux de signalisation qui changent en fonction du nombre de voitures, etc.
L’Ambient Intelligence c’est donc top. Avoir un public de plus de 200 personnes et avec mes collègues leur parler des protocoles réseau IOT c’était génial.
Zigbee, vous connaissez ? C’est un protocole à rayon faible, plutôt lent, mais à fiabilité élevée. Les appareils compatibles interagissent entre eux en prenant différents rôles, notamment Coordinator, Router ou End Device. La fréquence d’usage est 868 MHz.
Il y a aussi Z-Wave. C’est un protocole radio inventé pour la domotique à faible puissance et bande passante; ce qui permet à des objets légers d’y participer sans y perdre trop d’énergie. Il supporte jusqu’à 232 appareils dans un rayon de 50m. La fréquence est également 868 MHz et il y a une alliance de fabricants Z-Wave.
Mais il y en a plein d’autres, des forts connus comme le Bluetooth (dont les dernières implémentations cherchent à réduire l’énergie d’usage nécessaire) ou 6LoWPAN (IPv6 Low Power Wireless Personal Area Network) dont le but est de faire un réseau personnel d’objets à base d’IPv6 (Fréquence de 900 MHz et 2.4Ghz).
L’IOT a également permis l’apparition d’un nouveau concept. On connaissait le LAN (Local Area Network), le WAN (Wide Area Network), nous avons désormais droit au PAN (Personal Area Network), un réseau personnel d’objets communicants.
Mais l’Ambient Intelligence ne se borne pas aux objets
L’ambient intelligence dévoile de façon sous-jacente une autre problématique. Celle du Big Data ! En effet, le volume de données récoltées par les objets du PAN, peut servir à différents niveaux et différentes fins. La récolte de données unitaires personnelles permet, lorsqu’elle est agrégée à l’ensemble d’une population, la détermination de tendances et comportements.
Car le BigData ne se borne pas à la collecte de données, mais bien à son analyse ! La bonne nouvelle pour ces Techdays, c’est que je suis certifié MongoDB.
Ont ainsi été abordées toutes les problématiques sous-jacentes du BigData, et elles sont nombreuses.
Tout d’abord, c’est un Buzz Word. Il est utilisé à tout va par différents éditeurs, sociétés de conseil et fabricant sans qu’on en comprenne totalement la teneur.
Le BigData est né des problématiques des acteurs majeurs de l’internet à pouvoir stocker sur des serveurs de base de données classique un nombre impressionnant d’item. Par item, j’entends lignes dans des tables SQL. L’adjonction d’index pour augmenter les performances même si elle suit une loi log-normale n’est pas suffisante, car se posent des problématiques de volumétrie (pas assez de RAM, de disque) ainsi que throughput (trop de demandes en simultanée).
Lorsqu’on rencontre un problème de performance nous avons côté IT, nous pensons souvent systématiquement à « monter le matériel ». Rajouter plus de processeurs, plus de disques, de RAM, etc.
Sauf que cela possède une limite lorsque le volume géré dépasse le Go pour atteindre le To ou Po.
La montée du matériel en puissance se nomme le sharding vertical.
Il y a pourtant une autre solution. Qui n’exige pas une machine plus puissante, mais tout simplement une autre machine pour aider la première. Ce sharding horizontal n’est possible que si les logiciels sous-jacents utilisés sont capables de gérer une typologie de répartition des informations.
C’est cela l’apport 1ert du BigData.
Hadoop, codé initialement par Yahoo est devenu un sujet top level sur Apache. Il ne s’agit pourtant initialement que d’un programme Java capable de répartir du file system sur un réseau sans pour autant être un système HA, c’est-à-dire High Availability à l’origine ; Hadoop ayant au niveau de son namenode un single point of failure ; c’est depuis contournable.
C’est ajouté sur Hadoop d’autres fonctionnalités comme Apache Hive qui perm et d’interroger ses données comme du SQL (née et utilisé p Facebook pour des besoins de recherche de données (datamining). Mire propose une console d’interrogation, Hive CLI (Commande line Interface).
Hive n’existe pas seul, il y a également Pig originellement créé par Yahoo Research permettant de créer et exécuter du Map/Reduce (opération consistant à découper une tâche en sous-ensembles d’opérations puis à consolider et réduire le tout) sur un ensemble de données (Dataset) large. Pig est concrètement un compilateur qui produit des programmes de Map/Reduce. Pig vient avec un langage pour sa plateforme, Pig latin, que l’utilisateur peut étendre grâce à des UDF (fonctions définies par l’utilisateur) codées en Jana, Python, Ruby ou Groovy.
Le Big Data c’est aussi des technologies comme Storm qui existe pour le calcul temps réel distribué supportant la montée en charge, la tolérance de pannes, s’appuyant sur un pipeline de traitement. Développé en clojure (un dérivé de Java) Storm fait ce que l’on nomme du Stream Processing, c’est-à-dire un traitement en mode flux. Il supporte le micro batching avec Trident mais son fonctionnement de base reste le Stream. Au d’niveau core, il fonctionne à base de Spouts et de Bolts, c’est-à-dire processus d’écoute, et traitements.
Il y a aussi Spark, le concurrent de Storm pour le traitement des données en mode micro-batching/flux mais ce n’est pas tout. Il y a aussi les technologies de Machine Learning comme Apache Mahaut.
Une minute. Mais où est Microsoft dans tout ça ?
Chez Microsoft, il y a l’appliance PDW(Parallel Data Warehouse) que j’ai eu l’occasion de tester chez un client. Intégré depuis dans une solution plus généralement nommée APS, Analatycal Platform System, cette solution à base de SQL Server est juste démentielle pour faire du sharding horizontale. On peut, avec HDInsight y connecter de l’Hadoop et interroger directement à la fois les données structurées PDW et non-structurées Hadoop avec Polybase, la technologie de Microsoft pour effectuer des requêtes en mode SQL .
Il y a, côté Azure, DocumentDB pour faire du stockage en mode document comme MongoDB. DocumentDB est notamment utilisée par la solution Office 365. Il y a aussi HDInsight dont j’ai parlé précédemment et aussi Elastic Squale qui permet de faire du sharding horizontal sur les bases de données SQL Server. Il y a aussi Azure Machine Learning, solution utilisée notamment par de nombreux Xbox.