L’explosion des objets connectés dans notre quotidien oblige le modèle de l’intégration à s’adapter. Les problématiques ne sont plus les mêmes, on passe d’une intégration déclarative à prescriptive, capable d’observer des comportements selon différentes facettes. Quelles sont les réponses de Microsoft ?
2. Exemple d’objets connectés
• Portable sur soi, à la maison
• Infrastructure intelligente, domotique
• Sécurité et surveillance
• Santé
• Transport
• Agriculture
• …
Des objets qui n’étaient pas
connectés jusqu’à présent
Qui ne disposent souvent pas
d’un accès réseau spécifique
Qui envoient des données de
façon continue (stream)
4. Les services Microsoft Azure pour l’IoT
Acheter
Construire
Acheter une partie,
Construire le spécifique
• Si le développement logiciel n’est pas une
compétence primaire
• Focus sur la rapidité d’implémentation
• Le développement logiciel est une force
• Focus sur la flexibilité et le control, minimization
du coût
• La plateforme est vue comme un investissement
stratégique
• Expérimentation
• Analytics et traitement des données spécifiques
• Composer des services à haute valeur ajoutée
“Intelligent Systems
Service” (ISS)
Outils “Platform as a
Service” (PaaS)
Plateforme ISS +
Services
Caractéristiques de l’organisation Services AzureComment approcher l’IoT
6. Quel type d’infrastructure est nécessaire?
Supporte la varieté (> million d’apparails concurrents)
Supporte la rapidité (> million événements/s)
Supporte le volume (> 100s de TB)
Buffering (pour gérer la variabilité)
Durabilité
Latence basse
Sécurité
Et pas trop cher!
Grid
Renewables
Oil/Gas/Coal
Recovery and
Distribution
Points
of Sale
Restaurants
Hotels
Fuel
Stations
Patients
Clinics
Hospitals
Nursing
Homes
Mobile
Care
Safety
Security
Comfort
Lighting
Automation
Manufacturing
Integration and
Automation
Remote
Servicing
Predictive and
Reactive
Maintenance
Water
Waste
Pollution
Control
Fire
Emergency
Public
Safety
Law
Enforcement
Letters
Packages
Containers
Tanks Bulkware
Games
Events
Sports
Television
Streaming
Traffic Buses
Cars
Trucks
Trains
Vessels
Aircraft
Bikes
Smart
Energy
Smart
Retail
Smart
Mobility
Smart
Logistics
Smart
Factory
Smart
Cities
Smart
Entertain-
ment
Smart
Health-
care
Smart
Building
Home
7. Architecture de référence pour le traitement
d’événements
Présentation et
action
-
Search and query
Data analytics
Web/thick
client dashboards
Stockage long
terme
External
data sources
Azure Storage
Transformation
Real-time analytics
(Storm/Orleans,
NRT/ASA)
Batching/storage
adapters
Ingestion
(broker)
Scalable
Event Broker
Field Gateways
Collection
Cloud Gateways
(WebAPIs)
Applications
Producteurs
Devices
8.
9. Event Hub c’est un service d’ingestion en mode
publisher-subscriber (éditeur/abonné)
Variété: > million appareils with HTTP/AMQP/(MQTT)
Vitesse: > million lignes ingress/second
Volume: > GB/s ingress
Egress: Pub-sub: Consommateurs concurrents
Securité: SAS based, token unique par publisher
Buffer: Chaque consommateur possède son propre cursor/offset
Durable: Entre 1 and 30 jours de rétention
Latence: 50ms end-to-end en mode durable, pointes <10ms
Prix: Compétitif en mode PaaS, payer ce que vous consommer
10. Event Hub pour l’IoT: Ingestion Big Data
Sources Services Cloud
Stockage &
Analytics
Code spécifique
& Outils tiers
Web/Mobile
User Interfaces
Services
D’integration
Event Hub
- Hyper Scale -
- Mode Managé -
- Interopérable -
- Sécurisé -
12. Scénarios Event Hub
Présentation et
action
TransformationBroker Stockage long
terme
CollectionProducteurs
Devices
Appareils entrée
de gamme
(RTOS)
Appareils
compatibles IP
(Windows/Linux)
Field Gateway
(Raspberry PI/
Galileo)
(Embedded .Net/
ThreadX)
Event Hub
Legacy IoT
(Protocoles
spécifiques)
Cloud Gateway
spécifique
AMQP/HTTP
C, .NET, Java…
MQTT/COAP/Custom
Rétention des données dans
le temps,
Groupes de consommateurs,
Réception partitionnée,
Check-point,
…
Plus basse latence end-to-end
Intégration facile avec les
frameworks (SDK)
Custom code
(Storm/Orleans
)
Storage
adapters
App insights
Data Analytics
Statistiques
Dashboard
Service
Recherche
Distributed
tracing
-
Applications
AMQP/HTTP, C, .NET, Java… Scalabilité sur la bande
passante (GB/s)
et le nombre de producteurs
concurrents
Azure Dbs
Azure Storage
HDInsight
15. Event Hub : Consommation multiple
Partition 1
Partition 2
Partition “n”
Consumer Group C
Callback for prtn. 6
Callback for prtn. 2
Worker “n”
Callback for prtn. 1
Callback “n”
Worker 1Consumer Group B
Callback for prtn. 6
Callback for prtn. 2
Worker “n”
Callback for prtn. 1
Callback “n”
Worker 1Consumer Group A
Worker “n”
Callback for prtn. 6
Callback for prtn. 2
Callback for prtn. 1
Callback “n”
Worker 1
16.
17. 17
Données au repos
SELECT count(*) FROM ParkingLot
WHERE type = 'Auto'
AND color = 'Red'
Question
“Combien de voitures rouges dans le parking?”
Répondre avec une base de donnée relationnelle
Marcher jusqu’au parking
Compter les véhicules qui sont: Rouge, Voiture
18. 18
Données en Mouvement
La question est différente
“Combien de voitures rouges sont passées au marqueur 18A sur l’A-10 dans
la dernière heure?”
Répondre avec une base de donnée relationnelle
S’arrêter, faire se garer toutes les voitures qui arrivent pendant l’heure dans
un parking, les compter
Pas la meilleure des solutions…
19. 19
Développent et Management dans le portail Azure
Toutes les opérations de management exposées via des endpoints REST (API)
Aussi connu sous le nom « Complex Event Processing », « Traitement d’événements
complexes »
S’alimente des flux continus d’événements provenant d’IoT (Event Hub)…
Préparation des données (jointures, filtrage, agrégation, détection de patterns)
Permet le dashboarding en temps réel, les alertes, la maintenance préventive…
Azure Stream Analytics!
20. 20
Pourquoi le faire dans le cloud?
Event data is already
in the Cloud
Event data is
globally distributed
Coût d’opération
moindre
Scale Services managés, pas
d’infrastructure
Déplacer les traitements vers la
données, et pas l’inverse!
21. 21
Architecture complète
Data Source Collect Process Consume
Entrées
- Event Hubs
- Azure Storage
Blobs
Transformer
- Temporal joins
- Filter
- Aggregates
- Projections
- Windows
- etc.
Enrichir
- Join with reference
data
Préparer
- Output to storage
for further
processing
Sorties
- Azure SQL DB
- Azure Storage
Blobs
- Event Hubs
Azure
Storage
• Temporal Semantics
• Guaranteed delivery
• Guaranteed up time
Azure Stream Analytics
Données de
référence
- Azure Storage
Blobs
- …
22. 22
L’avantage définitif
SELECT count(*) FROM A-10
WHERE Type = ‘Voiture’ and Color = ‘Rouge’
GROUP BY TumblingWindow(hour, 1)
La question est différente
“Combien de voitures rouges sont passées au marqueur 18A sur l’A-10 dans
la dernière heure?”
25. Internet of Things avec Microsoft Azure
Présentation et
action
TransformationBroker Stockage long
terme
CollectionProducteur
Appareil
compatible IP
(Windows/Linux)
Event Hub
AMQP/HTTP
C, .NET, Java…
Azure Stream
Analytics
Azure SQL DB
Power BI
Langage Arduino (C/C++)
+
Azure : Python SDK
Pseudo SQL
28. Pour aller plus loin
• Arduino.cc : Starter Kit / Arduino Yun (Linux+Wifi)
• Arduino + Event Hub
Ola Loogman (Kloud) : The IoT with Arduino, Event Hubs and the Azure Python
SDK (blog)
• Event Hub et Stream Analytics
Dipanjan Banik – Stream Analytics Hands on Lab : TollApp (télécharger)
Visual Studio 2013 Community Edition (télécharger)
Azure 1 mois gratuit : 150€ (activer)
• Power BI : PowerBI.com (preview uniquement aux US, mais l’Europe
bientôt)
Hinweis der Redaktion
Fitbit, lampes, frigo…
Routes
Prise de sang pour les diabétiques (…)
Voiture connectée (…)
La vache connectée (…)
PartitionKey: spécifique à mon organisation, déployée sur le terrain
Partition : interne à EventHub, peut changer dans le temps en fonction du scaling
Couche d’abstraction
>> Et justement, poursuivons la chaîne, et détaillons un des meilleurs consommateurs pour Event Hub : ASA