Microsoft Azure

Azure est une plateforme cloud développée par Microsoft, elle met à disposition toute sorte de service facturé à l’utilisation.

Event hub et Service bus queue

Ce sont deux services ont pour rôle d’écouter des événements, mais le service bus queue permet d’ajouter une couche de persistance avec un système de file d’attente.

IOT Hub

IOT hub permet de centraliser la gestion objets connectés, il prend notamment en charge le protocole MQTT, que l’on peut utiliser soit directement (sécurisé avec un username et un password), soit avec une connection string en utilisant le kit de développement (SDK) d’Azure. Il gère aussi les certificats.

IOT hub possède un système de routing qui permet d’acheminer les données provenant des objets connectés (appelés devices) vers d’autres services du cloud comme l’Event hub ou le Service bus queue. Ce tri est paramétrable via des requêtes SQL sur les données reçues.

Azure functions

Les Azure fonctions sont des scripts, généralement assez court, qui peuvent être écrit en différent langages (TypeScript, C#, etc..). Elles sont indépendantes et peuvent donc être utilisées dans le cadre d’une architecture type microservices. Une Azure function est liée à un trigger (requête HTTP, Event hub ou Service bus, etc…) qui déclenche son exécution. Enfin c’est un service relativement économique car les Azure functions ne sont facturées qu’à leur exécution.

NodeJS

NodeJS est une plateforme logicielle qui permet exécuter du JavaScript côté serveur, ouvrant la possibilité de création d’applications web écrites entièrement en JavaScript (côté client ET côté serveur).

Tout comme le langage sur lequel il est basé, le JavaScript, NodeJS est asynchrone : il utilise des callbacks, qui sont des fonctions exécutées lorsque qu’une tâche est terminée. NodeJS permet de faire tourner un serveur web sans avoir besoins d’un logiciel externe, contrairement à PHP qui est tributaire de Apache pour fonctionner.

Il dispose d’un gestionnaire de paquet nommé NPM (Node Package Manager) permettant d’enrichir ses fonctionnalités. Le plus célèbre de ces packages est ExpressJS, qui est un micro-framework facilitant entre autre le routing. Il est possible d’utiliser plusieurs moteurs de template comme EJS ou Jade.

MeteorJS

MeteorJS est un framework open-source basé sur NodeJS, sa particularité est d’englober au sein d’un même projet la partie client ET serveur. Il permet de créer rapidement des applications full-stack en JavaScript (« un seul langage pour les gouverner tous »).

MeteorJS utilise par défaut Blaze comme moteur front-end, mais on peut aussi y brancher des frameworks connus comme AngularJS, Angular 2+ et ReactJS. Il est même possible d’utiliser Apache Cordova pour créer des applications mobiles hybriques, cette librairie permettant d’accéder aux composants natifs des smartphones tel que la caméra par exemple. Dans ces cas-là, MeteorJS fera office d’API pour servir les données au client.

Le framework utilise une base de donnée MongoDB. Elle est très réactive car elle est utilise la compensation de latence (latency compensation) : une autre base de données appelée mini-mongo est stockée chez le client, elle est donc disponible tout de suite, puis elle se met à jour une fois la connexion au serveur établie.

Encore peu connu du grand public des développeurs, ce framework dispose toutefois d’une communauté active. Meteor propose sa propre plateforme de gestion de package (Atmosphere) ainsi que son propre service d’hébergement (Galaxy).

Firebase

Firebase est un ensemble de services d’hébergement, mais plus encore : il propose une véritable partie back-office pour des applications front-end basés sur des frameworks comme Angular2+ ou Ionic 3.

Il gère l’authentification via une paire e-mail / mot de passe, ou par l’intermédiaire de réseaux sociaux comme Google, Facebook, Twitter ou encore Github. Il propose aussi une base de données NoSQL accessible en temps réel : c’est tellement vrai qu’il est possible de créer un chat, les conversations se mettant à jour quasi-instantanément. Firebase dispose d’un service de stockage de fichiers, qui n’est pas encore implémenté dans le package NPM angularfire2, mais qui peut s’installer manuellement. Enfin il est possible de faire du SSR avec des frameworks front-end tel que Angular2+.

L’intérêt immédiat de Firebase est de pouvoir sortir une MVP (Minimum Value Product) d’une application front-end rapidement, sans avoir à se préocuper du back-end, Firebase gère tout cela en toile de fond pour nous, le développeur n’aura qu’à utiliser les fonctions haut niveau fournies dans le package.

Firebase est utilisé par Shazam ou bien encore Skyscanner.

IBM Bluemix

IBM Bluemix est le cloud d’IBM, c’est une plateforme offrant une multitude de services web dont l’hébergement d’applications web, la reconnaissance vocale (Speech To Text, STT), la synthèse vocale (Text To Speech, TTS) ou encore le service conversation : ce service permet de créer et d’entraîner un chatbot en liant des questions et des réponses possibles. Plus le chatbot est utilisé, plus il apprend, et plus il devient précis dans ses réponses.

Ces services sont basés sur l’intelligence artificielle Waston, ce programme a acquis une notoriété mondiale en devenant en 2011 champion du jeu télévisé américain Jeopardy!.

Sur NPM un package nommé watson-developer-cloud permet d’utiliser les services IBM facilement, ils sont facturés à l’utilisation : il n’y a pas de frais fixes.