Upload
vincent-thavonekham
View
803
Download
3
Embed Size (px)
Citation preview
RETOUR D'EXPÉRIENCE "LARGE IOT PROJECTS". FOCUS SUR HAGERSERVICES
Cloud Practice Manager chez VISEO Vincent Thavonekham, MVP Azure
@vThavo, [email protected]
Senior architect BigData / Data Science chez VISEOPhilippe Guédez
v4
2
Vincent Thavonekham,
Philippe GuédezRetour d'expérience "Large IoT projects".
Focus sur HagerServices
2017
MS Cloud Summit Paris
24 – 25 janvier 2017@vThavo
MIEUX VOUS CONNAITRE• Qui connait l’ IoT d’Azure ?
• Qui connait l’architecture Lambda ?
• Qui fait du microservices ?
• Qui utilise AWS ? (le IaaS, le PaaS)
PAR OÙ COMMENCER EN IOT ? Approche scientifique !
Début de l’aventure IoT: « Naissance des idées »
« Une idée, cela peut changer le monde. Mais comment la trouver? » Cédric Villani
La documentationLa motivationL’environnementLes échangesLes contraintesLa chanceLa persévérance
• Selon Cédric Villani, Pr Maths, Médaille Fields
Retour d'expérience "large IoT projects", Focus sur HagerServices
Retour d'expérience "large IoT projects", Focus sur HagerServices
Par où commencer en IoT / BigData ?Genèse pour réussir ces projets
Votre perception de l’IoT/BigData
« C’est facile, on réfléchitet ça coûte tant !Et le ROI du projet
est x-k€ sur 2 ans »
Credits: starwars.wikia.comDroit d’auteur "Fair Use"
2010
7
• Croisement des informations sur trois axes Des méthodologies
et architectures éprouvées
Des projets mondiaux /
des challenges techniques
Autres sous NDA…
IoT and BigData : IoT Azure at scale - Featuring HagerServices and AgileIoT
Une équipe spécia
lisée en Io
T
Provenance de ces retours d’expériences IoT
RETOURS SUR UN PROJET AZURE IOT EN PARTICULIERHagerservices
HAGER SERVICESWHAT WAS THE NEED
Hager wanted to launch new services based on sensors connected to the SigFox network.They needed experts to help choosing the right architecture and technology to handle this new flow of data.
They turned to us to create the platform that will be able to gather numerous data in the coming years.
BESOIN HAGERSERVICES: Capteurs incendie « connectés »– Directeur du projet : Simon ANDRE – Equipe de 6 personnes– Architecture fortement inspirée des
architecture dites « Lambda » pour de l’IoT / BigData
Témoignage client : hagerservices
Retour d'expérience "large IoT projects", Focus sur HagerServices
•Exigence Sigfox– Taille des trames Sigfox : 12 octets– 140 messages / 24h / device– 20 minutes entre deux trames
•Exigence Hager– Permettre aux devices d’envoyer
des messages supérieurs à cette limite
Témoignage client : hagerservices
Retour d'expérience "large IoT projects", Focus sur HagerServices
•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 : hagerservices
Retour d'expérience "large IoT projects", Focus sur HagerServices
Simplifié :
• 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 : hagerservices
Event Hub
UtilisateursAssemblage Routage Traitement
et stockage
Retour d'expérience "large IoT projects", Focus sur HagerServices
15
Le problème du réassemblage des trames
Enterprise integration patterns• Slitter côté Device
Retour d'expérience "large IoT projects", Focus sur HagerServices
16
Le problème du réassemblage des trames
Retour d'expérience "large IoT projects", Focus sur HagerServices
Premier prototype avec StreamAnalytics
– Opérateur d’agrégation CollectTOP• Grouper par deviceId, hagerMessageId
– SlidingWindow• Gestion des timeout
– Trames SigFox pré-parsées par IoT Hub– Syntaxe SQL-like
Le problème du réassemblage des trames
Retour d'expérience "large IoT projects", Focus sur HagerServices
StreamAnalytics / Sliding Windows (glissant)
Le problème du réassemblage des trames
Retour d'expérience "large IoT projects", Focus sur HagerServices
1 5
0 5 2010 15 Time (secs)
258
8
51
9
51 9
1
ExemplePar topic, donne-moi le nombre de tweets qui ont été twittés plus de 10 fois dans les 10 dernières secondes
SELECT Topic, COUNT(*) FROM TwitterStream TIMESTAMP BY CreatedAtGROUP BY Topic, SlidingWindow(second, 10)HAVING COUNT(*) > 10
Retour d'expérience "large IoT projects", Focus sur HagerServices
Le problème du réassemblage des trames
POC StreamAnalytics non concluant– API limitée
• Absence d’opérateurs binaires pour analyser la « payload » Hager
• Absence d’opérateurs pour réassembler les trames
• Bien moins riche que SQL
– Besoin de traitements spécifiques
Le problème du réassemblage des trames
Retour d'expérience "large IoT projects", Focus sur HagerServices
Notre choix final s’est porté surReactive Extensions (Rx.NET) …
Le problème du réassemblage des trames
Retour d'expérience "large IoT projects", Focus sur HagerServices
22
“Rx done right”
“ReactiveX is a combination of the best ideasfrom the Observer pattern (Gang of Four),
the Iterator pattern, and functional programming”
http://reactivex.io/
Similaire à Linq mais streams asynchrones + opérateurs pour gérer le temps
Linq
Retour d'expérience "large IoT projects", Focus sur HagerServices
23
“Rx done right”« Un pattern Observateur
modifié »
Event Hub
Redis Cache ??
Retour d'expérience "large IoT projects", Focus sur HagerServices
24
Le problème du réassemblage des trames
Opérateur de transformation “GroupBy”: Observable set of Observables
http://reactivex.io/documentation/operators/groupby.html Retour d'expérience "large IoT projects", Focus sur HagerServices
Microsoft-referenced architecture: Stream Analytics rem-placé par Rx
Sources : https://azure.microsoft.com/en-us/documentation/articles/iot-suite-what-are-preconfigured-solutions/ Retour d'expérience "large IoT projects", Focus sur HagerServices
Architecture candidate
Event Hub
Storage
Web/Mobile App
IoT Hub Web Jobs
Devices
DocumentDB
SQL DatabaseRedisCache
Web Jobs
Back-end systems and processes
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 »
Retour d'expérience "large IoT projects", Focus sur HagerServices
Architecture candidateEvent Hub
Architecture micro-servicesTraitement différencié des trames en fonction
Du produitDe leur priorité (alarmes avant les trames de fil de l’eau)
Faciliter l’intégration de nouveauxproduits, de nouveaux services
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
Architecture candidateEvent Hub
Retour d'expérience "large IoT projects", Focus sur HagerServices
Architecture candidateEvent 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 don-nées
Event Hub
Retour d'expérience "large IoT projects", Focus sur HagerServices
Architecture candidateAzure SQL Server
– Sharding géré avec Elastic Database client library
– Un shard par produit
DocumentDB– Non retenu car choix fait il y a 1 an et demi– Solution aujourd’hui en prod chez nos clients
Simon ANDRE, IoT Cloud ManagerTémoignage client : hagerservices
« Timing très court … nous devions faire des choix
pragmatiques … »
« Nous sommes très satisfaits des performances »
« Jeunesse SigFoxAzure IoT : Quelques ajuste-
ments »
« ASP.Net Core 1.0 Web Apps = Globalement un bon choix »
Retour d'expérience "large IoT projects", Focus sur HagerServices
METHODOLOGIE AGILE IOT
The AgileIoT Funnel
1 Philosophy
4 Principles
5 Practices
2 Methodologies… for now!
AgileIoT Philosophy
The AgileIoT philosophy is the same as the renaissance workshop one, the cell where everything needed was made to realize a new handiwork: starting from the
design to the marketing, going through the learning and the production.
Team’s members are pushed to behave like renaissance craftsmen, with ability they use various materials, techniques and tools to satisfy the handiwork’s customer.
AgileIoT brings the customer’s need to the center, harmonizing competencies, ap-proaches and various technologies by defining a main-set of economically-sustain-
able tools to create an IoT solutions.
Retour d'expérience "large IoT projects", Focus sur HagerServices
AgileIoT Principles
It’s not software, hardware or service: it’s about jobs to be done!It’s not the completion of a software or hardware project but a smart solution,
based on both, to solve a need in an effective and efficient way.
Think less and do it!Reduce to the bare minimum the time dedicated to the analysis phase, in favor of a
quick startup of development’s activities related to the solution.
Simple is better!Simpler is the solution, more chance we have to evolve it according to stakeholders
needs.
If you can’t remember it, you can’t improve it!Using visual management system to monitoring the state of the solution
development.
Retour d'expérience "large IoT projects", Focus sur HagerServices
AgileIoT Practices
Fast PrototypingValidate the overall sustainability of the solution.
Make-Measure-LearnThis loop aims to fast experiment different hypotheses and assumptions:
FlashbackMatch the state of the project with a fast alignment, where the observer team will
check the work of another team directly.
Continuous Improvement Reduce to the minimum the changes to the hardware side, which is a long-term and
expensive task.
Continuous IntegrationIntegrate continuously (and as soon as possible) every change, in order
to identify problems and resolve them in a timely fashion. Retour d'expérience "large IoT projects", Focus sur HagerServices
AgileIoT Duttile Poster
Prototype Phase (timing: typically, 2-4 weeks), it’s the first phase of the process. There’s the Vision defini-tion, Fast Prototypization and Prod-uct Backlog definition using a spe-cific 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, fo-calized onto the Deployment, Sup-port and the Continuous Im-provement of the product.
Retour d'expérience "large IoT projects", Focus sur HagerServices
AgileIoT Duttile: Goal Driven Framework
Retour d'expérience "large IoT projects", Focus sur HagerServices
AgileIoT 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 the 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 devices.
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 af -fect the solution as well as the development.
Delivery Prototyping: focused on the deploy of the elements of the solution, 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 be-come a marketable product.
Retour d'expérience "large IoT projects", Focus sur HagerServices
CE QUE NOUS AVONS AP-PRIS
CE QUE NOUS AVONS APPRIS1. Bien respecter les « Best Practices » IoT pour éviter les échecs
Pensez 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 à termePrincipe de précaution de la Loi de Murphy :
« Tout ce qui est susceptible de mal tourner tournera nécessai-rement mal. ». Prévoir les « Single point of Failure » (SPOF)
3. Pilotage d’un projet IoT : pas uniquement les Dev et la R&DC’est un projet de transformation de l’entreprise : Implication Direction
4. Succès grâce à une avance technologiqueLire, s’ouvrir, travailler avec Microsoft Corp, …
Retour d'expérience "large IoT projects", Focus sur HagerServices
Q&A
Merci beaucoup à nos sponsors!
Thank you to all our spon-sors!
Join the conversation
#MSCloudSummit@MSCloudSummit
Merci Beaucoup! Thank you!
Join the conversation
#MSCloudSummit@MSCloudSummit