Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris
-
Upload
azug-fr -
Category
Presentations & Public Speaking
-
view
168 -
download
3
Transcript of Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE1
IoT et Azure,
Aymeric Weinbach
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
■L’IoT ?■Les choix à faire pour vos objets■Prototypez vos objets connectés ■Les services Azure IoT■Les nouveautés de la build
Agenda
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
L’IOT mais qu’est ce que c’est ?
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Harnessing the IoT Revolution
What if I could tell when it’s the best time for my things to _______ ?
What if my things could tell me when they go someplace they shouldn’t?
What if I simply knew where my things were?
What if I knew when my things were going to break before they did?
What if I could use device telemetry to improve next generation devices?
What insights could I find from all of my devices?
It all starts with a great idea…
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Les choix à faire
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Choices – What powers the device?Option Upside Downside Common examplesBattery (primary) Device can operate in a
mobile environment for extended periods of time.
Device now has a current / wattage budget (CPU cycles are not free).
Efficient and safe battery charging requires sophisticated circuitry (you won’t do it in firmware).
Mobile brains phones
Battery (secondary)
Device can sustain function through transient power interrupts
Efficient and safe battery charging requires sophisticated circuitry (you won’t do it in firmware).
May have to add additional circuitry to run while charging
Laptops
Main power (primary)
Device can leverage all available computing power (barring thermal constraints)
Device functionality susceptible to interruption during power supply events
3D printer
Main power + backup
Device can leverage all available computing power (barring thermal constraints), and operate at reduced capacity during power events.
Additional power management circuitry. Need to reduce current load during loss of main power.
NEST thermostat
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Choices – What connects the device to cloud services?Option Upside Downside Common examplesEthernet Cheap, easy to install. No
hard bandwidth or framing limitations.
Requires hard wired connection provided by end-user. May require additional configuration or security enhancements to route through firewalls, etc.
Industrial PLC (programmable logic controllers)
WiFi Readily available on more sophisticated microcontrollers and embedded devices.
Requires ambient WiFi network, and method of managing security keys and access (including rotation).
May require additional configuration or security enhancements to route through firewalls (commercial).
NEST thermostat.
Cellular Self-contained; plug and go.
Communication heavily metered – cost of operations (CoGS) borne by service operator.
3rd party car data logger
Local (Bluetooth, Zigbee, etc)
Minimal cost and power requirements.
Short ranged, require field gateway or other “smart” edge device to proxy connections.
iBeacon
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
With the ubiquity of firewalls and NAT (network address translators), cloud services connecting inbound to devices is typically impractical. If two local devices want to talk to each other, two options:
Device A connects directly to device B, or vice-versaThe devices communicate through a secured cloud endpoint (service assisted communication)
Whom connects to whom?
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Messaging and Connectivity
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
■LiFX lightbulbs create a mesh network between each other■One lightbulb elects as master, and proxies to WiFi router■Devices shipped from factory with a single GLOBAL PRE-
SHARED KEY.■Break one device – break them all.■Remediation Options:
■ Global firmware update. How do the devices “call home” to get firmware updates? At scale there will always be devices behind the update curve.
■ Don’t make any mistakes in the bootloader for in-field firmware updates. A single RMA (return material authorization) can wipe out the profit from dozens of devices.
■ Move to provisioned key-per-device. Need to build and manage key infrastructure. Also need to incorporate key rotation (don’t make a mistake here of the device will “bricked”).
■ Is there an out-of-band update mechanism (USB?). Is the end-user community amenable to handling firmware updates (industrial, technical vs. mass consumer)
Peer to peer sounds cool!
http://contextis.com/resources/blog/hacking-internet-connected-light-bulbs/
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Choices – Let’s connect!Option Upside DownsideUDP • Simple; datagrams require no
framing. • Efficient on bandwidth metered links.
• Impractical to secure channel. • Need faith or out of band acknowledgement
mechanism for reliable transfer. • Cannot reliably support ordered data streams.• Challenging to implement return-channel (cloud
to device) for commandsTCP/IP • Simple; minimal code footprint for
RTOS class devices.• Can use TLS to secure channel• Bi-directional channel for notifications
and commands
• Need to handle framing on both sides of connection (or hard code avoidance of MTU limits from end to end)
• Firewall traversal is challenging
HTTP/S • Straightforward firewall traversal, use of SSL for channel encryption and signing
• Built in framing, can leverage semantic conventions (REST) to publish data
• Inefficient for Signal-to-Noise ratio of bytes on wire
• Heavy device stack footprint to implement general purpose HTTP client stack
AMQP, MQTT • Bi-directional channel for notifications and commands
• Efficient use of bandwidth (batching, efficient framing, etc)
• Firewall traversal is challenging• Client stack may not fit on smaller devices• Evolving standards and implementation levels
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Choices – Let’s encode!Option Upside DownsideXML • You have more money than you know
what to do with. Enjoy another mojito on your yacht.
• Extremely inefficient for both serialization/deserialization time and wire encoding.
JSON • Self-describing (“tagged”) format requiring no type identifiers. Readable by convention.
• Need to handle framing on both sides of connection (or hard code avoidance of MTU limits from end to end)
• Firewall traversal is challengingTagged / Untagged “standard” Binary (Protobuf, Thrift, etc)
• Highly efficient wire protocol with broad range of encoder bindings for various languages
• Can use common IDL (definition) to generate device and cloud code
• Built in support for protocol versioning
• Implementation may not be compatible with RTOS class device BSP (board support packages)
• Until you’ve lived through the mistake, you probably won’t use the versioning features.
Custom Binary (roll your own)
• You can put “wrote yet another custom protocol” on your resume
• High degree of control over bit packing, ordering, etc.
• Can support any device.. Since you wrote it for that device
• Very few implementations use code generation from a common definition (result -> divergent implementations with subtle differences)
• Rarely incorporate version management, self-describing type and version fields, rich variable support (arrays, maps, etc)
• Take on a life of their own, generating support burdens with inertia
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Prototypez vos objets connectés
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
■Cout d’un oubli ou d’un bug coté cloud : corriger le bug , commit, push, build, deploy ( cout : 3 clics et un café)
■Cout d’un oubli ou d’un bug coté device : Hardware : refaire tous les devices Software : Mise à jour de firmware (est ce que c’est prévu) Dans les 2 cas trés cher $$$
La nécessité de prototyper
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Choisir une plateforme de prototypage• Gadgeteer• Arduino• Netduino• Galileo• Kit Grove• Raspberry Pi• Phidget
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Azure IoT Starter KitsGet started quickly
Raspberry Pi 2 KitWindows 10 and RaspbianSamples in C and C#
Feather M0 Wi-Fi KitRTOSSamples in Arduino IDE and C
Feather Huzzah ESP8266 KitRTOSSamples in Arduino IDE and C
ThingDev KitRTOSSamples in Arduino and C
Intel Edison KitLinux YoctoSamples in JavaScript (Node.js)
Start today: http://azure.com/iotstarterkits
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
imprimante 3D
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Azure
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Microsoft Cloud offer for IoT
Predictivemaintena
nce
Asset managementAzure IoT SuiteAzure services (IoT and others)
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Azure Services for IoTAzure IoT HubConnect, secure, communicate, monitor and manage billions of devices
Azure Stream AnalyticsReal time stream processing for billions of IoT devices
Azure StorageBlob, SQL, DocumentDB, Data Lake. Storage to meet every need at the scale of IoTAzure App ServiceWeb and mobile apps for any platform on any device
Power BIDashboards and data connectors to visualize any data
And More…
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Platform Services
Infrastructure ServicesOS/Server Compute Storage
Datacenter Infrastructure (30 Regions, 22 Online)
Web and Mobile
Web Apps
MobileApps
APIManagement
API Apps
Logic Apps
Notification Hubs
Media & CDNContent DeliveryNetwork (CDN)
Media Services
IntegrationBizTalkServices
HybridConnections
Service Bus
StorageQueues
HybridOperations
Backup
StorSimple
Azure SiteRecovery
Import/Export
Networking
Data
SQL Database
DocumentDB
RedisCache Azure
SearchStorageTables
DataWarehouse Azure AD
Health Monitoring
Virtual Network
ExpressRouteBLOB
StorageAzureFiles
PremiumStorage
Virtual Machines
AD PrivilegedIdentity Management
Traffic Manager
AppGateway
OperationalAnalytics
Services ComputeCloud Services
Batch RemoteApp
ServiceFabric
Developer Services
Visual Studio
AppInsights
Azure SDK
VS Online
ContainerService
DNS VPN Gateway
Load Balancer
Domain Services
Analytics & IoT
HDInsight MachineLearning
StreamAnalytics
Data Factory
EventHubs
MobileEngagement
Data Lake
IoT Hub
Data Catalog
Security & Manageme
nt
Azure ActiveDirectory
Multi-FactorAuthentication
Automation
Portal
Key Vault
Store/Marketplace
VM Image Gallery& VM Depot
Azure ADB2C
Scheduler
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Azure IoT SuiteGet started in minutes & customize to meet your needsRemote Monitoring Service Architecture
Business Process
ERP/CRM
Event Hub
Storage Blobs DocumentDB
Web App
Stream Analytics Logic Apps
Azure Active Directory
IoT Hub Web Jobs
DevicesAzure IoT SDK (OSS)
Linux, RTOS, mBed, Windows, Android, iOS
Power BI
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Azure IoT HubDesigned for IoTConnectivity, Security & Management for billions of devices
Service Assisted CommunicationsDevices are not serversUse IoT Hub to enable secure bi-directional communications
Cloud Scale MessagingDevice-to-cloud and Cloud-to-deviceDurable message inbox/outbox per device
Monitor DevicesDelivery receipts, expired messagesDevice communication errors
Per-Device AuthenticationIndividual device identities and credentials
Connection MultiplexingSingle device-cloud connection for all communications (device-to-cloud, cloud-to-device)
Multi-ProtocolNatively supports AMQPS, HTTPS, MQTTExtensible protocol support for custom protocol needs
Multi-PlatformDevice SDKs available for multiple platforms RTOS, Linux, Windows, iOS, AndroidService SDK supports multiple languages (Node, Java, C#)
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Stream Analytics
Data Source Collect Process ConsumeDeliver
Event Inputs- Event Hub- Azure Blob
Transform- Temporal joins- Filter- Aggregates- Projections- Windows- Etc.
Enrich
Correlate
Outputs- SQL Azure- Azure Blobs- Event Hub
☁
BI Dashboards
Predictive Analytics
AzureStorage
• Temporal Semantics
• Guaranteed delivery
• Guaranteed up time
Azure Stream Analytics
Reference Data- Azure Blob
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
• Start with one of the Azure IoT Starter kits– aka.ms/iotstarterkits
• Start from a sample– Simple Hello World samples: Readme.md of the
SDKs repo– E2E samples : aka.ms/azureiotsamples– Get started on a specific platform: aka.ms/
azureiotgetstartedguides• Start from scratch– portal.azure.com– ARM templates– github.com/azure/azure-iot-sdks
DIY
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Azure IoT Device SDKOpen SourceEverything is on GitHub, open source under MIT license
Cross-Platform SupportRTOS, Linux, Windows, iOS, Android
Multi-Language SupportC, Node.js, Java, C#, Python
Xamarin CompatibleIncludes Xamarin compatible libraries
Easy To Get StartedSamples, walkthroughs to get you started quickly
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Azure Certified for IoTCertified to Work Great with Azure IoTOperating systems & devices
Over 50 Partners & Growing
Azure IoT Device SDK Supports Even More!Azure IoT Device SDK supports more than Azure Certified for IoT and is easy to adapt to new devices and operating systems
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Les nouveautés de la build
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
New Offering AnnouncementsAzure IoT Hub Device ManagementUpdate firmware, software, configuration on any device running any operating systemOrganize and update devices based on hierarchical topologies
Azure IoT Gateway SDKCross platform middleware for field gatewaysConnect, manage and monitor multiple devicesProtocol translation & data normalization
Azure IoT Starter Kits5 new kits to get started quickly
New Region Availability
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Azure IoT Hub Device ManagementUpdate Software, Firmware, ConfigurationGoing beyond simple ‘Create, Remove, Update and Delete’ for devicesFully extensile - works on any device running any operating system or firmware
Standards BasedBased on OMA LWM2M
Manage Devices The Way You WantGroup devices into custom topologiesUpdate devices based on sub-sections of that topologyRole based access control
Enables IT/OT CoordinationOT is responsible for keeping things running, IT is responsible for keeping things secureIoT requires IT/OT coordination
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Azure IoT Hub Device ManagementEnroll DevicesEnroll devices and determine properties and available operations
Organize DevicesGroup & manage based on your scenarioRole based access to sub-groups
Maintain DevicesUpdate software, firmware, configuration using “device jobs”Operators can monitor device health and signal when it is safe to update devicesIT can update and rollback during maintenance windows
Decommission DevicesDecommission and replace devices after service lifetime
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Azure IoT Hub – Device Topology SupportGroup & Manage Devices Based On Your Scenario
Example: Building Management
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Azure IoT Hub – Device Topology SupportGroup & Manage Devices Based On Your Scenario
Building: 1
Room: 1
Room: 4
Room: 2
Room: 5
Room: 3
Room: 6
Floor: 1
Room: 1
Room: 4
Room: 2
Room: 5
Room: 3
Room: 6
Floor: 2
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Building: 1
Update Devices Based on Sub-Topologies
Room: 1
Room: 4
Room: 2
Room: 5
Room: 3
Room: 6
Floor: 1
Room: 1
Room: 4
Room: 2
Room: 5
Room: 3
Room: 6
Floor: 2
Update Floor 1
Azure IoT Hub – Device Topology Support
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Building: 1
Azure IoT Hub – Device Topology SupportCreate Permissions Groups Based on Device
Topology
Room: 1
Room: 4
Room: 2
Room: 5
Room: 3
Room: 6
Floor: 1
Room: 1
Room: 4
Room: 2
Room: 5
Room: 3
Room: 6
Floor: 2
Permissions: Group 1 Permissions: Group 2
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Device Job - Firmware Update ExampleA Device Job is a multi-step device orchestration
on a set of devices managed by Azure IoT HubAzure IoT HubDevice
Your codeon the device
IoT Hub DM client library
Step 1
Step 2
Step 3
Device Job
Write Firmware Package URI,Trigger Client
DownloadPackage URI
Download Package URI
Download CompletedDownload the
firmware
Apply the Update
Apply Update
Reconnect after restart
Monitor State Changes and Apply Update
Azure IoT Suite
Your codein the cloud
Step 1: Start Firmware
Update Job providing the Package URI
On Job Completed:
Receive callback in cloud
Anytime during job execution:
Check the status of the Job
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Azure IoT Gateway SDKOpen source IoT gateway middleware that enables:• Cloud connectivity for devices that don't speak TCP/IP• Security Isolation for devices can't be updated/secured• Protocol translation for existing and new protocols• Data transformation compression, annotation, filtering• Local intelligence local processing for low latency needs
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Global AvailabilityNew RegionsAustralia (East, Southeast)Japan (East, West)Germany (Central, Northeast) – Preview
RoadmapUS Europe APAC Japan Australi
aLATAM China German
yIndia UK
IoT Hub
Available
Available
Available
Available
Available
2016 Q2
2016 Q2
Available
2016 Q3
2016 Q4
IoT Suite
Available
Available
Available
2016 Q2
2016 Q2
2016 Q3
2016 Q2
2016 Q2
2016 Q4
2017 H1
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
Global Azure Bootcamp #GlobalAzure @AZUGFR
PARIS - FRANCE
ORGANISATION GAB 2016
MERCI !
SPONSORS LOCAUX
40