Test: IoT, Serverless, Physical Web, IA et Chatbot FC …

Karim
7 min readOct 23, 2017

C’est un peu la conclusion de tout ce chapitre autour du chatbot dans le cloud avec ce petit test qui va utiliser localement une carte RPi3.

Je vais réutiliser la plateforme Resin.io pour gérer une potentielle flotte d’objets connectés avec une forme d’intégration et déploiement continus :

Je commence par installer Resin CLI pour dialoguer avec ResinOS :

qui contient un moteur Docker :

Je récupère l’image de ResinOS et je la flashe sur ma SDCard :

avec cette manip comme expliqué précedemment :

Avec les paramêtres réseau préconfigurés dans l’image, j’arrive à scanner ma carte localement :

Ma carte apparaît sur le dashboard de contrôle de Resin.io :

avec sa localisation :

Je commence par adapter le Dockerfile situé sur le dépôt git de la PWA du chatbot FC :

Et je pousse le tout vers le dépôt Git spécifique à mon compte dans la plateforme Resin.io :

Et je vois par les logs, la disponibilité de mon service via cette carte RPi3 :

Avec l’adresse IP de la carte, je peux déjà tester mon service :

et via l’endpoint en HTTPS fourni par la plateforme Resin.io, j’accède à ce service depuis Internet :

Via Resin CLI, je teste la connectivité vers ma carte :

Cet endpoint peut me servir à réaliser une appli Desktop multiplateforme via Nativefier et Electron :

J’en profite pour coupler ma carte RPi3 avec une carte ESP32 (beaucoup plus puissante que la carte ESP8266) qui peut me servir ici de relais avec un serveur local pour un utilisateur connecté à proximité par exemple :

Pour cela je vais utiliser MongooseOS comme plateforme :

Je paramêtre la section réseau pour permettre la connectivité sur mon réseau local de la carte ESP32 :

et je paramêtre un serveur web avec une page index.html en redirection vers le chatbot FC qui devient disponible :

Je peux également en profiter de manière alternative pour tester un de mes beacons qui va propager via le protocole Eddystone l’URL d’un endpoint pointant vers le chatbot FC (selon les principes du Physical Web) comme exposé lors de la conférence OGP :

Je pars donc d’un beacon Estimote :

que je paramêtre via la console cloud Estimote et une appli android locale :

Et j’y ajoute mon endpoint en short URL :

Je teste la présence de ce beacon avec ce signal du protocole Eddystone URL avec mon smartphone :

et j’ai bien la notification qui apparaît sur mon smartphone m’invitant à utiliser ce service du chatbot :

et je peux vérifier qu’il fonctionne bien sur mon smartphone :

De même, pour initier du serverless, je peux utiliser un webhook qui va lier ce chatbot au sein de ma carte RPi3 vers l’API cognitive QnA Maker en complément de Dialogflow (anciennement API.ai) :

On peut observer le score indiquant bien un processus d’apprentissage lié à du Machine Learning en backend avec cet API cognitive :

Je vais comme le dernière fois utiliser des fonctions Azure Proxies pour pointer vers cet API cognitive et ainsi recréer un nouveau webhook dans Dialogflow :

et je substitue la valeur de l’API :

Je teste avec mon client Postman que cela répond bien :

avec encore le score affiché pour la fiabilité de la réponse apportée :

avec cette fois-çi un monitoring détaillé autour de l’utilisation ce ces fonctions proxies :

et preuve que le terme Serverless peut être en réalité un faux-ami, il y a quand même de manière automatique un serveur utilisé pour émettre cette fonction et l’exécuter (mais qui est sensé se supprimer après usage ce celles-çi):

et les traces de l’exécution des fonctions à des fins de debugging :

Enfin pour terminer, dans le cadre de l’Open Container Initiative et des travaux de Docker autour de Moby :

je teste son intégration dans le monde de l’IoT avec le projet Balena :

et que l’on devrait retrouver par défaut dans ResinOS :

Je repars d’une carte ARM 32 Bits avec l’installation de Balena dans Ubuntu 16.04 préinstallé :

Au préalable, je crée l’image locale de mon container de chatbot FC toujours avec Balena :

et mon image est disponible localement (je peux aussi l’envoyer vers un Docker Registry) :

et avec Caddy encore une fois et la liaison HTTPS automatisée via Let’s Encrypt, je créé un endpoint d’accès qui me permettra de l’utiliser en PWA :

et cette PWA est consommable encore une fois (avec ce chatbot) :

C’est donc un test qui a permis de faire la liaison entre Cloud, IoT, Physical Web, Fonctions à la demande (Serverless) et l’IA via ce chatbot et les API cognitives …

Merci de m’avoir lu encore une fois !!!

Originally published at telegra.ph on October 23, 2017.

--

--