40
Global Azure Bootcamp #GlobalAzure @AZUGFR PARIS - FRANCE 1 IoT et Azure, Aymeric Weinbach

Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

  • Upload
    azug-fr

  • View
    162

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

Global Azure Bootcamp #GlobalAzure @AZUGFR

PARIS - FRANCE1

IoT et Azure,

Aymeric Weinbach

Page 2: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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

Page 3: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

Global Azure Bootcamp #GlobalAzure @AZUGFR

PARIS - FRANCE

L’IOT mais qu’est ce que c’est ?

Page 4: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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…

Page 5: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

Global Azure Bootcamp #GlobalAzure @AZUGFR

PARIS - FRANCE

Les choix à faire

Page 6: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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

Page 7: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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

Page 8: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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?

Page 9: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

Global Azure Bootcamp #GlobalAzure @AZUGFR

PARIS - FRANCE

Messaging and Connectivity

Page 10: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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/

Page 11: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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

Page 12: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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

Page 13: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

Global Azure Bootcamp #GlobalAzure @AZUGFR

PARIS - FRANCE

Prototypez vos objets connectés

Page 14: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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

Page 15: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

Global Azure Bootcamp #GlobalAzure @AZUGFR

PARIS - FRANCE

Choisir une plateforme de prototypage• Gadgeteer• Arduino• Netduino• Galileo• Kit Grove• Raspberry Pi• Phidget

Page 16: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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

Page 17: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

Global Azure Bootcamp #GlobalAzure @AZUGFR

PARIS - FRANCE

imprimante 3D

Page 18: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

Global Azure Bootcamp #GlobalAzure @AZUGFR

PARIS - FRANCE

Azure

Page 19: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

Global Azure Bootcamp #GlobalAzure @AZUGFR

PARIS - FRANCE

Microsoft Cloud offer for IoT

Predictivemaintena

nce

Asset managementAzure IoT SuiteAzure services (IoT and others)

Page 20: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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…

Page 21: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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

Page 22: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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

Page 23: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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#)

Page 24: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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

Page 25: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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

Page 26: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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

Page 27: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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

Page 28: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

Global Azure Bootcamp #GlobalAzure @AZUGFR

PARIS - FRANCE

Les nouveautés de la build

Page 29: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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

Page 30: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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

Page 31: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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

Page 32: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

Global Azure Bootcamp #GlobalAzure @AZUGFR

PARIS - FRANCE

Azure IoT Hub – Device Topology SupportGroup & Manage Devices Based On Your Scenario

Example: Building Management

Page 33: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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

Page 34: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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

Page 35: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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

Page 36: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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

Page 37: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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

Page 38: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

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

Page 39: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

Global Azure Bootcamp #GlobalAzure @AZUGFR

PARIS - FRANCE

Page 40: Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris

Global Azure Bootcamp #GlobalAzure @AZUGFR

PARIS - FRANCE

ORGANISATION GAB 2016

MERCI !

SPONSORS LOCAUX

40