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

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 :

Image for post
Image for post
Image for post
Image for post

Je commence par installer Resin CLI pour dialoguer avec ResinOS :

Image for post
Image for post

qui contient un moteur Docker :

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

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

Image for post
Image for post

avec cette manip comme expliqué précedemment :

Image for post
Image for post
Image for post
Image for post

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

Image for post
Image for post

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

Image for post
Image for post

avec sa localisation :

Image for post
Image for post

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

Image for post
Image for post

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

Image for post
Image for post
Image for post
Image for post
Image for post
Image for post

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

Image for post
Image for post
Image for post
Image for post

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

Image for post
Image for post

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

Image for post
Image for post

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

Image for post
Image for post
Image for post
Image for post

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

Image for post
Image for post
Image for post
Image for post

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 :

Image for post
Image for post

Pour cela je vais utiliser MongooseOS comme plateforme :

Image for post
Image for post
Image for post
Image for post

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

Image for post
Image for post

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

Image for post
Image for post
Image for post
Image for post

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 :

Image for post
Image for post
Image for post
Image for post

Je pars donc d’un beacon Estimote :

Image for post
Image for post

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

Image for post
Image for post

Et j’y ajoute mon endpoint en short URL :

Image for post
Image for post
Image for post
Image for post

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

Image for post
Image for post

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

Image for post
Image for post
Image for post
Image for post

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

Image for post
Image for post
Image for post
Image for post

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) :

Image for post
Image for post

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

Image for post
Image for post

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 :

Image for post
Image for post

et je substitue la valeur de l’API :

Image for post
Image for post

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

Image for post
Image for post

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

Image for post
Image for post

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

Image for post
Image for post
Image for post
Image for post

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):

Image for post
Image for post

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

Image for post
Image for post

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

Image for post
Image for post
Image for post
Image for post

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

Image for post
Image for post

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

Image for post
Image for post

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

Image for post
Image for post

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

Image for post
Image for post
Image for post
Image for post

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

Image for post
Image for post

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 :

Image for post
Image for post

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

Image for post
Image for post

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 !!!

Image for post
Image for post

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

Above the clouds, the sky is always blue ...

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store