43
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 VISEO Philippe Guédez v4

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

Embed Size (px)

Citation preview

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

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

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

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

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

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)

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

PAR OÙ COMMENCER EN IOT ? Approche scientifique !

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

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

Page 6: Retour d'expérience Large IoT project / BigData : détail du cas réel de 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

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

7

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

• 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

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

RETOURS SUR UN PROJET AZURE IOT EN PARTICULIERHagerservices

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

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.

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

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

Page 12: Retour d'expérience Large IoT project / BigData : détail du cas réel de 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

Page 13: Retour d'expérience Large IoT project / BigData : détail du cas réel de 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

Page 14: Retour d'expérience Large IoT project / BigData : détail du cas réel de 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

Page 15: Retour d'expérience Large IoT project / BigData : détail du cas réel de 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

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

16

Le problème du réassemblage des trames

Retour d'expérience "large IoT projects", Focus sur HagerServices

Page 17: Retour d'expérience Large IoT project / BigData : détail du cas réel de 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

Page 18: Retour d'expérience Large IoT project / BigData : détail du cas réel de 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

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

Retour d'expérience "large IoT projects", Focus sur HagerServices

Le problème du réassemblage des trames

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

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

Page 21: Retour d'expérience Large IoT project / BigData : détail du cas réel de 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

Page 22: Retour d'expérience Large IoT project / BigData : détail du cas réel de 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

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

23

“Rx done right”« Un pattern Observateur 

modifié »

Event Hub

Redis Cache ??

Retour d'expérience "large IoT projects", Focus sur HagerServices

Page 24: Retour d'expérience Large IoT project / BigData : détail du cas réel de 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

Page 25: Retour d'expérience Large IoT project / BigData : détail du cas réel de 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

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

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

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

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

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

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

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

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

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

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

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

METHODOLOGIE AGILE IOT

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

The AgileIoT Funnel

1 Philosophy

4 Principles

5 Practices

2 Methodologies… for now!

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

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

Page 34: Retour d'expérience Large IoT project / BigData : détail du cas réel de 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

Page 35: Retour d'expérience Large IoT project / BigData : détail du cas réel de 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

Page 36: Retour d'expérience Large IoT project / BigData : détail du cas réel de 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

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

AgileIoT Duttile: Goal Driven Framework

Retour d'expérience "large IoT projects", Focus sur HagerServices

Page 38: Retour d'expérience Large IoT project / BigData : détail du cas réel de 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

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

CE QUE NOUS AVONS AP-PRIS

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

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

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

Q&A

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

Merci beaucoup à nos sponsors!

Thank you to all our spon-sors!

Join the conversation

#MSCloudSummit@MSCloudSummit

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

Merci Beaucoup! Thank you!

Join the conversation

#MSCloudSummit@MSCloudSummit