HagerServices: Comment créer une plateforme générique mondiale avec le Cloud Azure pour traiter des flux temps réels de capteur hétérogènes (SigFox...) ?
Retour d'expérience : IoT, Sigfox, projets très forte volumétrie, DeltaMetric, microservices, framework AKKA et Rx.Net, pattern observable
Objet direct 2013-05-11 Microsoft ALM 2013 Software Factory
Sido 2017 : Vincent Thavonekham, MVP azure et Regional Director, VISEO, Retour Expérience Hager Sigfox
1. Responsable Stratégie Cloud chez VISEO
Vincent Thavonekham,
MVP Azure et Microsoft Regional Director
@vThavo
Deux talks au village Microsoft
RETOUR D'EXPÉRIENCE
"LARGE IOT PROJECTS"
FOCUS PROJET IoT :
HAGER SERVICES et SIGFOX
2. Responsable Stratégie Cloud chez VISEO
Vincent Thavonekham,
MVP Azure et Microsoft Regional Director
@vThavo
RETOUR D'EXPÉRIENCE "LARGE IOT PROJECTS"
FOCUS SUR LE PROJET IoT : HAGER SERVICES + SIGFOX
05 et 06 avril 2017
SALON DU SIDO 2017, Village Microsoft
3. Hager souhaitait réaliser une plateforme
générique IoT sur Azure pour tous les
besoins actuels et futurs.
L’existant ne pouvant plus traiter
ni la masse de données, ni les traitements
« near-temps réels ».
Le premier projet s’est basé sur des
capteurs connectés au réseau Sigfox.
Simon ANDRE, IoT Cloud Manager
Besoin et problématique
4. Simon ANDRE, IoT Cloud Manager
Solution en Production sur Azure IoT
« Timing très court … nous
devions faire des choix
pragmatiques … »
« Nous sommes très satisfaits
des performances »
« 2015: Connecteur
SigfoxAzure IoT :
Quelques ajustements »
« ASP.Net Core 1.0 Web Apps
= Globalement un bon choix »
Focus IoT sur Hager Services + Sigfox
5. 1. Bien respecter les « Best Practices » IoT pour éviter les échecs
– Penser idéation, valeur métier, … (cf « Agile IoT »)
2. Le projet ne s’arrête pas à la fin des développements !
– Ne pas se concentrer uniquement sur le projet « informatique »
– Budget Qualité / Prod : PRA, ITIL v3, « vrai » DevOps à terme
– Principe de précaution de la Loi de Murphy :
« Tout ce qui est susceptible de mal tourner tournera nécessairement mal. ». Prévoir les « Single point of Failure »
(SPOF)
3. Pilotage d’un projet IoT : pas uniquement les Dev et la R&D
– C’est un projet de transformation de l’entreprise : Implication Direction
4. ROI : Succès grâce à une avance et une « extensibilité » technologique
– Lire, s’ouvrir, travailler avec Microsoft Corp, …
IoT and BigData : IoT Azure at scale - Featuring Hager Services and AgileIoT
CE QUE NOUS AVONS APPRIS
6. Selon Cédric Villani, Pr Maths, Médaille Fields
« Une idée, cela peut changer le monde.
Mais comment la trouver? » Cédric Villani
• La documentation
• La motivation
• L’environnement
• Les échanges
• Les contraintes
• La chance
• La persévérance
Début de l’aventure IoT: « Naissance des idées »
Focus IoT sur Hager Services + Sigfox
8. • Croisement des informations sur trois axes
Des méthodologies
et architectures éprouvées
IoT and BigData : IoT Azure at scale - Featuring Hager Services and Agile IoT
Provenance de ces retours d’expériences IoT
10. The Agile IoT Funnel
1 Philosophy
4 Principles
5 Practices
2 Methodologies… for now!
11. Agile IoT Duttile Poster
Prototype Phase (timing: typically, 2
-4 weeks), it’s the first phase of the
process. There’s the Vision definition
, Fast Prototypization and Product
Backlog definition using a specific
planning phase;
Engineering Phase (timing: time needed for reaching
the Value). In this step, the solution is engineerized
and developed. It’s, as one could deduct, the most
important and complex phase of the whole process;
Workout Phase (timing: Typically,
1-2 weeks). It’s the last phase,
focalized onto the Deployment,
Support and the Continuous
Improvement of the product.
12. Agile IoT Fast Prototyping
Energy: focused on the energetic-based aspects as a function
of the needs of the operational continuity of smart devices;
Hardware : focused on the validation of the hardware through
one or more Evaluation Kits (EVK).
Code: focused on the prototyping of the firmware of the devices and t
he services made for acquiring the main data/events.
Data Flow: focused on the aspects related to the gathering,
cleaning-up and managing of the Raw Data that comes from the devic
es.
Cloud: focused on the Cloud aspects of the solution, as a
data/event management platform.
Security: focused on the verification of the security aspects, which
affect the solution as well as the development.
Delivery Prototyping: focused on the deploy of the elements of the s
olution, speaking about both hardware items and services
ones.
Legal: focused on the analysis of the law and regulations, national
and international, which the solution must consider in order to
become a marketable product.
13. Retours sur un projet
Azure IoT en particulier
Capteurs connectés
14. BESOIN HAGER SERVICES: Capteurs incendie
« connectés »
– Directeur du projet : Simon ANDRE
– Equipe de 6 personnes
– Architecture fortement inspirée des architectures
dites « Lambda » pour de l’IoT / Big Data
Témoignage client : Hager Services
Focus IoT sur Hager Services + Sigfox
15. • Exigence Sigfox
– Taille des trames Sigfox : 12 octets
– 140 messages / 24h / device
– 10 minutes entre deux trames
• Par sécurité: nous attendions 20 min entre 2 trames
Témoignage client : Hager Services
Focus IoT sur Hager Services + Sigfox
16. • Exigence Hager
– Plate-forme IoT « générique »
• Démarrage avec les détecteurs d’incendie
• Mais plateforme ouverte permettant d’intégrer de
nouveaux produits, nouveaux services
Témoignage client : Hager Services
Retour d'expérience "large IoT projects", Focus sur HagerServices
17. PLATFORM COMPLEXITY
VISEO HELPS EASE THE PAIN TO CREATE THE COLLECTING INFRASTRUCTURE
Ready to use infrastructure levering our knowledges
Azure IoT Suite
Platform in less than 10 minutes
Easy set up for PoC & Prototypes
Azure
Pick and choose what we need for
the perfect solution for our client
19. Simplifiée :
• Azure WebJob + WebApp basés sur ASP.Net Core 1.0
• Architecture micro-services asynchrone et event-based
• DAL basée sur micro-ORM Dapper
Architecture : forte volumétrie + traitements « near-temps réel »
Témoignage client : Hager Services
Focus IoT sur Hager Services + Sigfox
Event Hub
Utilisateurs
Assemblage Routage Traitement
et stockage
20. Le problème de découpage côté « Device »
20
Enterprise integration patterns
• Slitter côté Device Hager
Message Hager
volumineux
Message Hager découpé pour
transport via Sigfox (140 packets 12 bytes)
22. Le choix final s’est porté sur
Reactive Extensions.
Sur les 18 langages, choix de C#
Donc « Rx.NET »
Le problème du réassemblage des trames
Focus IoT sur Hager Services + Sigfox
23. “Rx done right”
“ReactiveX is a combination of the best ideas
from the Observer pattern (Gang of Four),
the Iterator pattern, and functional programming”
http://reactivex.io/23
Similaire à Linq mais streams asynchrones + opérateurs pour gérer le temps
Linq
24. Rx : filter, select, transform, combine, and
compose Observables, soit 453
opérateurs = combinaisons infinies
http://reactivex.io/documentation/operators.html24
I want to evaluate the entire sequence of items emitted by an Observable
and emit a single boolean indicating if all of the items pass some test: All
and emit a single boolean indicating if the Observable emitted any item (that passes some test):
Contains and emit a single boolean indicating if the Observable emitted no items: IsEmpty
and emit a single boolean indicating if the sequence is identical
to one emitted by a second Observable: SequenceEqual
and emit the average of all of their values : Average
and emit the sum of all of their values : Sum
and emit a number indicating how many items were in the sequence: Count
and emit the item with the maximum value : Max
and emit the item with the minimum value : Min
by applying an aggregation function to each item in turn and emitting the result: Scan
25. Le problème du réassemblage des trames
Rx : Autres possibilités de transformations
http://reactivex.io/documentation/operators/groupby.html25
28. Le problème du réassemblage des trames
Opérateur de transformation “GroupBy”: Observable set of Observables
http://reactivex.io/documentation/operators/groupby.html28
29. • Comment s’y retrouver avec toutes ces données ?
• Fouille de données, notamment avant de pouvoir réaliser des
algorithmes de Machine Learning
Que faire avec toutes ces données ?
Retour d'expérience "large IoT projects", Focus sur HagerServices
30. Analyse exploratoire
des données
Fournir & améliorer la performance
opérationnelle grâce à l’exploitation fine
des informations délivrées quotidiennement
BigTime Series : Exemple “eaux de Paris”
31. Microsoft-referenced architecture: Stream Analytics remplacé par Rx
Architecture candidate
Sources : https://azure.microsoft.com/en-us/documentation/articles/iot-suite-what-are-preconfigured-solutions/
Event Hub
Storage
Web/Mobile App
IoT Hub Web Jobs
Devices DocumentDB
SQL
Database
Redis
Cache
Web Jobs
Back-end
systems
and
processes
32. • Reactive Extensions (Rx.Net)
Témoignage Simon ANDRE, IoT Cloud Manager :
- « Traitement lourds ‘temps réels’ devenus possibles ;
trier/réassembler Trames »
- « Usage intensif des custom middleware côté API »
- « Pour les Tests Unitaires, on est à 100% de couverture »
Architecture candidate
Retour d'expérience "large IoT projects", Focus sur HagerServices
Event Hub
33. Retour d'expérience "large IoT projects", Focus sur HagerServices
Architecture candidate
Event Hub
– Approche microservices : une partition par usage
• Alarmes
• Appairage
• Télémétrie
– Partitions consommées par des WebJobs
– Les WebJobs prennent en charge le traitement des
messages et leur stockage en base de données
Event Hub
34. • Architecture micro-services
– Traitement différencié des trames en fonction
• Du produit
• De leur priorité (alarmes avant les trames de fil de l’eau)
– Faciliter l’intégration de nouveaux
produits, de nouveaux services
Architecture candidate
Sources : https://github.com/Azure-Samples/service-fabric-dotnet-iot
https://azure.microsoft.com/en-us/documentation/articles/service-fabric-overview-microservices
https://azure.microsoft.com/fr-fr/documentation/samples/service-fabric-dotnet-iot/
Retour d'expérience "large IoT projects", Focus sur HagerServices
Event Hub
35. Retour d'expérience "large IoT projects", Focus sur HagerServices
Architecture candidate
PaaS: Azure SQL Database
– Sharding géré avec Elastic Database client library
– Un « shard » par produit
Azure DocumentDB
– Non retenu car choix fait il y a 1 an et demi
– Solution aujourd’hui en production chez nos clients
36. Responsable Stratégie Cloud chez VISEO
Vincent Thavonekham,
MVP Azure et Microsoft Regional Director
@vThavo
RETOUR D'EXPÉRIENCE "LARGE IOT PROJECTS"
FOCUS SUR LE PROJET IoT : HAGER SERVICES + SIGFOX
05 et 06 avril 2017
SALON DU SIDO 2017
v1