Suite à la réalisation de plusieurs projets Azure IoT, place aux retours d'expériences. Entre des migrations de M2M/IoT Amazon vers Azure, jusqu'à la création de projet nécessitant de « scaler » jusqu'à 1 million d'objets SigFox, en passant par des projets plus modestes, mais avec des problématiques de santé, nous verrons comme les patterns Cloud, l'ASP.Net Core, et les MicroServices, etc... mais aussi les Juristes, les méthodologies de gestion de projets Agile et IoT … sont devenus incontournables.
3. • Qui connait l’ IoT d’Azure ?
• Qui connait l’architecture Lambda ?
• Qui fait du microservices ?
• Qui utilise AWS ? (le IaaS, le PaaS)
MIEUX VOUS CONNAITRE
N° 3Retour d'expérience de projets Azure IoT "large scale", Vincent Thavonekham, MVP Azure @VISEO
4. Par où commencer en IoT ?
Approche scientifique !
Retour d'expérience de projets Azure IoT "large scale", Vincent Thavonekham, MVP Azure @VISEO
5. « 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 »Selon Cédric Villani, Pr Maths, Médaille Fields
N° 5Retour d'expérience de projets Azure IoT "large scale", Vincent Thavonekham, MVP Azure @VISEO
6. Retour d'expérience de projets Azure IoT "large scale", Vincent Thavonekham, MVP Azure @VISEO
Par où commencer en IoT ?
Genèse pour réussir les projets IoT / BigData
N° 6
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. Retour d'expérience de projets Azure IoT "large scale", Vincent Thavonekham, MVP Azure @VISEO
Platform Services
Infrastructure Services
Web Apps
Mobile
Apps
API
Management
API Apps
Logic Apps
Notification
Hubs
Content
Delivery
Network (CDN)
Media
Services
BizTalk
Services
Hybrid
Connections
Service Bus
Storage
Queues
Hybrid
Operations
Backup
StorSimple
Azure Site
Recovery
Import/Export
SQL
Database
DocumentDB
Redis
Cache
Azure
Search
Storage
Tables
Data
Warehouse Azure AD
Health Monitoring
AD Privileged
Identity
Management
Operational
Analytics
Cloud
Services
Batch
RemoteApp
Service
Fabric
Visual Studio
App
Insights
Azure
SDK
VS Online
Domain Services
HDInsight Machine
Learning
Stream
Analytics
Data
Factory
Event
Hubs
Mobile
Engagement
Data
Lake
IoT Hub
Data
Catalog
Security &
Management
Azure Active
Directory
Multi-Factor
Authentication
Automation
Portal
Key Vault
Store/
Marketplace
VM Image Gallery
& VM Depot
Azure AD
B2C
Scheduler
8. Provenance de ces retours d’expériences IoT
Croisement des informations sur trois axes
N° 8
Des méthodologies
et architectures éprouvées
Retour d'expérience de projets Azure IoT "large scale", Vincent Thavonekham, MVP Azure @VISEO
10. • Projet IoT = Projet informatique
+ Réseau/Cloud + Devices/hardware
• IoT Nombreuses problématiques nouvelles
• Cadrage projet obligatoire
– Vision ateliers Product Backlog
Retours sur les débuts d’un projet IoT
Phase « Prototyping » : Cadrage de projet
• Exemple : Une semaine d’atelier
– Idéation, architectures, PoCs, culs de sac…
– Chaque projet IoT est différent :
Possibilité d’aller vite, mais pas trop vite !
N° 10Retour d'expérience de projets Azure IoT "large scale", Vincent Thavonekham, MVP Azure @VISEO
11. Choix du langage : ne pas coder de suite !
• Choix pilotés par l’architecture :
– 100% Open Source (NodeJS, Java, …), IaaS, Docker, briques
PaaS à utiliser, … traitement « near-temps réel » ?
• Considérationdu TCO de la TMA : langage simple ? (Scala)
• PoC pour voir les limitations du SDK Java vs. SDK .Net Azure
– pas ISO 1:1. Popularité du SDK Java, tester la réactivité des
intégration des Pull Requests
• Support de TypeScript sur certaines briques Azure ? Pratique
à débugger / Usine Logicielle ?
Retours sur les débuts d’un projet IoT
Phase « Prototyping » : Projet Open Source ?
N° 11Retour d'expérience de projets Azure IoT "large scale", Vincent Thavonekham, MVP Azure @VISEO
12. Retours sur un projet Azure IoT :
Migration M2M AWS Azure IoT
Retour d'expérience de projets Azure IoT "large scale", Vincent Thavonekham, MVP Azure @VISEO
13. Plusieurs possibilités de migrations « Legacy rehost », selon les « 5 R » de Gartner
• Rehost “simple” copier-coller de la VM-AWS vers un VM-Azure
• Refactor réécriture ISO fonctionnelle/code vers le PaaS IoT d’Azure
• Revise réécriture & améliorations vers le PaaS IoT d’Azure
• Rebuild découpage et recompilation du code dans les différents services
PaaS d’Azure IoT
• Replace écriture “from scratch” d’une nouvelle application
Migration IoT AWS vers IoT Azure
Phase « Prototyping » : Cadrage de projet
N° 13Retour d'expérience de projets Azure IoT "large scale", Vincent Thavonekham, MVP Azure @VISEO
14. • Input : Code en Prod M2M (Linux-NodeJS). IaaS AWS + base MongoDB
• Output : Code IoT en NodeJS sur des services PaaS Azure + base MongoDB
• DIFFICULTES : Reprise du code existant; code de Prod évolue vite ≠ ISO
• SIMPLICITE : Découpage du IaaS en différents services PaaS Azure
Migration IoT AWS vers IoT Azure
Phase « Engineering »: Refactor
Du code, rien que du code !
N° 14
Azure API App
WebApp
Azure Function
Apps
Amazon : VM AWSAmazon : VM AWS
Storage account
VM
Docker + Swarm
Linux
IoT Hub / Azure IoTIoT Hub / Azure IoT
Retour d'expérience de projets Azure IoT "large scale", Vincent Thavonekham, MVP Azure @VISEO
15. VSTS = Build + Release
COMMENT ALLER VITE ? (plusieurs déploiements / jour)
• Tout automatiser à 100% en début de projet ?
– NON : Automatiser progressivement, en visant
comme itérationN°1 : Build automatique avec TU
+ Release manuelle (doc de 100 pages)
• Itération N°2 : Utiliser 100% des JSON-ARM ?
– NON : l’architecture IoT est vaste et tous les
services Azure ne sont pas encore exportables
– Utiliser en hack, Visual Studio « Publish »
• (4) étapes simples théoriques
Attention aux (5) petits astérisques en rouge !
Migration IoT AWS vers IoT Azure
Usine logicielle VSTS | Linux-Docker + NodeJS
N° 15
1
2
3
4
Retour d'expérience de projets Azure IoT "large scale", Vincent Thavonekham, MVP Azure @VISEO
16. Migration IoT AWS vers IoT Azure
N° 16
CONCLUSION: Aisée et rapide, mais …
???
Exemple : NodeJS TypeScript (fortement typée) = fausse bonne
idée ?
• Ne détecte pas tout à « Build Time » (crash durant runtime)
• A ce jour, peu supporté pour les Azure Function Apps
- Usine logicielle bien plus complexe
- La trajectoire de Microsoft est de simplifier cela
• Moins pertinent en Back-end Azure, qu’en Front-End
Danger des experts qui
ne connaissent que AWS
Pas les mêmes réflexes :
transposition parfois
contreproductif
Retour d'expérience de projets Azure IoT "large scale", Vincent Thavonekham, MVP Azure @VISEO
17. HagerServices
Retours sur un projet
Azure IoT en particulier
Retour d'expérience de projets Azure IoT "large scale", Vincent Thavonekham, MVP Azure @VISEO
18. • Equipe de 6 personnes
• Architecture fortement inspirée des Bonnes Pratiques Java et des architecture dites
« Lambda » pour de l’IoT / BigData
– ASP.Net Core 1.0 Web Apps
– Architecture asynchrone et event-base : micro-services avec Reactive Rx.Net
– Data Repository basé sur micro-ORM Dapper + SQL « Hard-codés » paramétrés
« Repository/services pattern » avec Plain Old CLR Object (POCO)
Considérations, erreurs ou cul de sac par rapport au besoin:
Cassandra, Azure Container Services, Entity Framework, AKKA.Net,
Azure IoT Suite, ASP.Net 4, Stream Analytics, Azure functions, …
Témoignage client : hagerservices
Architecture : forte volumétrie + traitements « near-temps réel »
N° 18Retour d'expérience de projets Azure IoT "large scale", Vincent Thavonekham, MVP Azure @VISEO
19. Microsoft referenced architecture, instanciée en 7 minutes
Témoignage client : hagerservices
Phase « Prototyping » : Choix d’architecture
Sources : https://azure.microsoft.com/en-us/documentation/articles/iot-suite-what-are-preconfigured-solutions/
N° 19Retour d'expérience de projets Azure IoT "large scale", Vincent Thavonekham, MVP Azure @VISEO
20. Retours : microservices Reactive Extensions Rx.Net Actor pattern
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 »
Témoignage client : hagerservices
Phase « Prototyping » : Choix d’architecture
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/
N° 20Retour d'expérience de projets Azure IoT "large scale", Vincent Thavonekham, MVP Azure @VISEO
21. Prise de risques pour être Leader: Choix d’ASP.Net CoreCLR
• Complexe pour comprendre l’offre
• « J’ai failli abandonner du fait
des bugs de jeunesse de la Beta »
Témoignage client : hagerservices
Phase « Prototyping » : Choix d’architecture
N° 21
Mai 2016. Simon ANDRE, IoT Cloud Manager
Core CLR
Retour d'expérience de projets Azure IoT "large scale", Vincent Thavonekham, MVP Azure @VISEO
22. • Erreur de votre application ?
d’Azure ? de SigFox ?
Support technique ?
• Comparer avec différents Cloud providers
(si la zone Dublin a des problèmes)
Témoignage client : hagerservices
Je ne vois plus mon capteur, que faire ??
N° 22Retour d'expérience de projets Azure IoT "large scale", Vincent Thavonekham, MVP Azure @VISEO
23. Témoignage client : hagerservices
Simon ANDRE, IoT Cloud Manager
N° 23
« Timing très court …
nous devions faire des
choix pragmatiques … »
« Nous sommes très
satisfaits des
performances »
« Jeunesse
SigFoxAzure IoT :
Quelques ajustements »
« ASP.Net Core 1.0 Web
Apps = Globalement un
bon choix »
Retour d'expérience de projets Azure IoT "large scale", Vincent Thavonekham, MVP Azure @VISEO
25. Ecosystème très riche, avec de nombreuses versions
• Il y a 5 ans : abaques de 3 mois pour monter la plateforme IaaS
+ 3 mois pour l’ajuster
• Azure IoT Suite, Remote Monitoring : 7 min en PaaS
• PoCs en 2 jours
Constatation : Hadoop toujours utilisé
…mais il n’a plus le monopole de l’IoT / BigData
N° 25Retour d'expérience de projets Azure IoT "large scale", Vincent Thavonekham, MVP Azure @VISEO
26. 1. Bien respecter les « Best Practices » IoT pour éviter les échecs
• Pensez idéation, valeur métier, … plutôt bien décrit dans « 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 pour être en avance technologique et être Leader
• Travail tripartites = Client + Partenaire expert MVP + Microsoft (France + Corp)
Quelques points d’attention
Lancez-vous… mais pas n’importe comment !
N° 26Retour d'expérience de projets Azure IoT "large scale", Vincent Thavonekham, MVP Azure @VISEO
29. Notez cette session
Et tentez de gagner un Surface Book
Doublez votre chance en répondant aussi
au questionnaire de satisfaction globale
* Le règlement est disponible sur demande au commissariat général de l’exposition. Image non-contractuelle
Retour d'expérience de projets Azure IoT "large scale", Vincent Thavonekham, MVP Azure @VISEO