Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Retour d'expérience Large IoT project / BigData : détail du cas réel de HagerServices

1,367 views

Published on

Vincent Thavonekham et Philippe Guédez de VISEO,
Reactive Extension Rx.Net architecture to overcome the SigFox limits and absorb the heavy IoT load with BigData (using ASP.Net Core Microservices). ALL TECHNICAL DETAILS unveailed.

Published in: Internet
  • Login to see the comments

Retour d'expérience Large IoT project / BigData : détail du cas réel de HagerServices

  1. 1. RETOUR D'EXPÉRIENCE "LARGE IOT PROJECTS". FOCUS SUR HAGERSERVICES Cloud Practice Manager chez VISEO Vincent Thavonekham, MVP Azure @vThavo, vincent.thavonekham@viseo.com Senior architect BigData / Data Science chez VISEO Philippe Guédez v4
  2. 2. Vincent Thavonekham, Philippe Guédez Retour d'expérience "Large IoT projects". Focus sur HagerServices 2017 MS Cloud Summit Paris 24 – 25 janvier 2017@vThavo 2
  3. 3. 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)
  4. 4. PAR OÙ COMMENCER EN IOT ? Approche scientifique !
  5. 5. 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 documentation • La motivation • L’environnement • Les échanges • Les contraintes • La chance • La persévérance • Selon Cédric Villani, Pr Maths, Médaille Fields Retour d'expérience "large IoT projects", Focus sur HagerServices
  6. 6. 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échit et ça coûte tant ! Et le ROI du projet est x-k€ sur 2 ans » Credits: starwars.wikia.com Droit d’auteur "Fair Use" 2010
  7. 7. 7
  8. 8. • Croisement des informations sur trois axes Des méthodologies et architectures éprouvées IoT and BigData : IoT Azure at scale - Featuring HagerServices and AgileIoT Provenance de ces retours d’expériences IoT
  9. 9. RETOURS SUR UN PROJET AZURE IOT EN PARTICULIER Hagerservices
  10. 10. HAGER SERVICES WHAT 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.
  11. 11. 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
  12. 12. • 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
  13. 13. • 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
  14. 14. 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 Utilisateurs Assemblage Routage Traitement et stockage Retour d'expérience "large IoT projects", Focus sur HagerServices
  15. 15. Le problème du réassemblage des trames 15 Enterprise integration patterns • Slitter côté Device Retour d'expérience "large IoT projects", Focus sur HagerServices
  16. 16. Le problème du réassemblage des trames 16 Retour d'expérience "large IoT projects", Focus sur HagerServices
  17. 17. 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
  18. 18. StreamAnalytics / Sliding Windows (glissant) Le problème du réassemblage des trames Retour d'expérience "large IoT projects", Focus sur HagerServices 1 5 8 8 51 9 51 9 1 Exemple Par 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 CreatedAt GROUP BY Topic, SlidingWindow(second, 10) HAVING COUNT(*) > 10
  19. 19. Retour d'expérience "large IoT projects", Focus sur HagerServices Le problème du réassemblage des trames
  20. 20. 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
  21. 21. Notre choix final s’est porté sur Reactive Extensions (Rx.NET) … Le problème du réassemblage des trames Retour d'expérience "large IoT projects", Focus sur HagerServices
  22. 22. “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/22 Similaire à Linq mais streams asynchrones + opérateurs pour gérer le temps Linq Retour d'expérience "large IoT projects", Focus sur HagerServices
  23. 23. “Rx done right” 23 « Un pattern Observateur modifié » Event Hub Redis Cache ?? Retour d'expérience "large IoT projects", Focus sur HagerServices
  24. 24. Le problème du réassemblage des trames Opérateur de transformation “GroupBy”: Observable  set of Observables http://reactivex.io/documentation/operators/groupby.html24 Retour d'expérience "large IoT projects", Focus sur HagerServices
  25. 25. Microsoft-referenced architecture: Stream Analytics remplacé 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 Database Redis Cache Web Jobs Back-end systems and processes
  26. 26. • 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 candidate Event Hub
  27. 27. • 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 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 candidate Event Hub
  28. 28. 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
  29. 29. Retour d'expérience "large IoT projects", Focus sur HagerServices Architecture candidate Azure 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
  30. 30. Simon ANDRE, IoT Cloud Manager Témoignage client : hagerservices « Timing très court … nous devions faire des choix pra gmatiques … » « Nous sommes très satisfaits des performances » « Jeunesse SigFoxAzure 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
  31. 31. METHODOLOGIE AGILE IOT
  32. 32. The AgileIoT Funnel 1 Philosophy 4 Principles 5 Practices 2 Methodologies… for now!
  33. 33. AgileIoT Philosophy The AgileIoT philosophy is the same as the renaissance workshop one, the cell wher e 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, appro aches and various technologies by defining a main-set of economically-sustainable t ools to create an IoT solutions. Retour d'expérience "large IoT projects", Focus sur HagerServices
  34. 34. 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, base d 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
  35. 35. AgileIoT Practices Fast Prototyping Validate the overall sustainability of the solution. Make-Measure-Learn This loop aims to fast experiment different hypotheses and assumptions: Flashback Match 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 Integration Integrate 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
  36. 36. AgileIoT Duttile Poster Prototype Phase (timing: typically, 2 -4 weeks), it’s the first phase of the p rocess. There’s the Vision definition, Fast Prototypization and Product Bac klog definition using a specific planni ng phase; Engineering Phase (timing: time needed for reaching the Value). In this step, the solution is engineerized a nd developed. It’s, as one could deduct, the most imp ortant and complex phase of the whole process; Workout Phase (timing: Typically, 1-2 weeks). It’s the last phase, focal ized onto the Deployment, Support and the Continuous Improvement of the product. Retour d'expérience "large IoT projects", Focus sur HagerServices
  37. 37. AgileIoT Duttile: Goal Driven Framework Retour d'expérience "large IoT projects", Focus sur HagerServices
  38. 38. AgileIoT Fast Prototyping Energy: focused on the energetic-based aspects as a function o f the needs of the operational continuity of smart devices; Hardware : focused on the validation of the hardware through o ne 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, clea ning-up and managing of the Raw Data that comes from the devi ces. Cloud: focused on the Cloud aspects of the solution, as a data/e vent management platform. Security: focused on the verification of the security aspects, which a ffect 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 o nes. Legal: focused on the analysis of the law and regulations, national a nd international, which the solution must consider in order to becom e a marketable product. Retour d'expérience "large IoT projects", Focus sur HagerServices
  39. 39. CE QUE NOUS AVONS APPRIS
  40. 40. CE QUE NOUS AVONS APPRIS 1. 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 à 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. Succès grâce à une avance technologique – Lire, s’ouvrir, travailler avec Microsoft Corp, … Retour d'expérience "large IoT projects", Focus sur HagerServices
  41. 41. Q&A
  42. 42. Merci beaucoup à nos sponsors! Thank you to all our sponsors! Join the conversation #MSCloudSummit @MSCloudSummit
  43. 43. Merci Beaucoup! Thank you! Join the conversation #MSCloudSummit @MSCloudSummit

×