SlideShare a Scribd company logo
Drew Moseley
Technical Solutions Architect
Mender.io
IOT Development from Prototype to Production
Session overview
● Define IOT and markets
● Selecting hardware.
● Selecting system software.
● Design considerations for IOT
development
About me
● Drew Moseley
○ 10 years in Embedded Linux/Yocto
development.
○ More than that in general Embedded
Software.
○ Project Lead and Solutions Architect.
○ drew.moseley@mender.io
○ https://twitter.com/drewmoseley
○ https://www.linkedin.com/in/drewmoseley/
○ https://twitter.com/mender_io
● Mender.io
○ Over-the-air updater for Embedded Linux
○ Open source (Apache License, v2)
○ Dual A/B rootfs layout (client)
○ Remote deployment management (server)
○ Under active development
● “A network of internet-connected objects able to collect and exchange data
using embedded sensors.”1
IOT Definition
1
http://www.businessinsider.com/what-is-the-internet-of-things-definition-2016-8
● A “network of physical devices, vehicles, home appliances and other items
embedded with electronics, software, sensors, actuators, and connectivity
which enables these objects to connect and exchange data.”3
● IEEE (86 page PDF)2
● Key characteristics:
⎻ Connected
⎻ Sensors
⎻ Actuators
⎻ Cloud Infrastructure
2
https://iot.ieee.org/definition.html
3
https://en.wikipedia.org/wiki/Internet_of_things
● Consumer1
⎻ Nest thermostat
⎻ Smart lighting
⎻ Home security
⎻ Connected automobiles
IOT Applications
1
Not an endorsement; I’ve not even used most of these examples
● Municipal
⎻ Infrastructure monitoring/management
⎻ Traffic control
⎻ Public Transit
● Industrial
⎻ Operations Centers
⎻ Factory/inventory management
● Enterprise
⎻ Supply chain management
⎻ Medical Device
Used for device control and data store.
May provide AI and big data services.
May provide device fleet management/dashboard.
Cloud Infrastructure
IOT Network Architecture
● Short Distance (inches):
⎻ NFC
⎻ Bluetooth
● Medium Distance (within a building):
⎻ Wi-Fi
⎻ Ethernet
● Long Distance (within a city, battery life measured in
years):
⎻ LoRa®/LoRaWAN™; governed by industry
alliance
⎻ Sigfox; governed by single commercial entity
● Wide Area (nationwide):
⎻ Cellular/LTE
IOT Connectivity Options
● HTTP/HTTPS REST APIs
● 6LoWPAN
⎻ IPv6 over LP-WAN protocols
● MQTT
⎻ Pub/Sub model
⎻ Lightweight in both code and bandwidth
⎻ OASIS Standard
● ZeroMQ
⎻ Pub/Sub, Push/Pull, Router/Dealer
⎻ Open source (LGPL with a Static Linking
Exception )
● Zigbee
⎻ Primarily for Home Automation
⎻ IEEE 802.15.4
● DDS (Data Distribution Service)
⎻ Global Data Space
⎻ Distributed with access controls
IOT Communication Protocols
● MCU vs SOC
⎻ MCU generally not Linux
● On-board peripherals
● Hobbyist vs Commercial Vendor
⎻ Lead times
⎻ Inventories
● Battery vs Hard-wired
● Price
● Form factor:
⎻ Board (Beaglebone Black,
Raspberry Pi 3)
⎻ Module (Toradex SOM, Raspberry
Pi Compute Module)
Hardware Criteria
● OS vs RTOS vs Bare Metal
● System Development Tools
⎻ Yocto
⎻ Buildroot
⎻ OpenWRT
⎻ Debian
● Deployment Strategies
⎻ Hypervisors/Containers
⎻ AMP
● Security/Safety
⎻ ISO 26262
⎻ SELinux
⎻ AppArmor
⎻ SMACK: Simplified Mandatory Access Control Kernel
System Software Criteria
● Application Development
Frameworks
⎻ NodeRED
⎻ NodeJS
⎻ Eclipse Kura
⎻ Qt
● Application Development
Environments
⎻ Eclipse
⎻ CLI
⎻ Commercial vs RYO/OSS
● Language Availability
⎻ C/C++/Python/Java/Javascript/
Golang
● 3rd party package availability
Application Software Criteria
● Bare Metal/Embedded Control Loop
● Embedded RTOS1
○ OSS: FreeRTOS, IncludeOS, Apache Mynewt, Zephyr
○ Commercial: Nucleus, vxWorks, QNX
● “Desktop” class OS
○ Windows IOT Core
System Software Options - Non-Linux
Not my
fault.
1
https://en.wikipedia.org/wiki/Comparison_of_real-time_operating_systems
System Software Options - Linux
● Embedded Linux Options
⎻ Desktop Class Distro
⎻ Embedded Distro Builder
■ Yocto
■ Buildroot
■ OpenWRT
⎻ Hybrid
■ ISAR
■ ELBE
● Embedded Linux Build Systems Talk from ELC Portland 2018
● Article about Yocto for IOT
I got this!!
“It’s not an embedded Linux distribution -- it creates a custom one for you”1
● Recipes, metadata, dependencies and configuration
● Primary output: package feed
● Secondary output: boot images
● Builds all components from source
● Mechanism, not policy
Products:
● Root filesystem image
● Kernel, Bootloader, Toolchain
● Package Feed
Yocto Project - Overview
1
See more at https://www.yoctoproject.org
“Buildroot is a simple, efficient and easy-to-use tool to generate embedded Linux
systems through cross-compilation.”1
● Primary output: boot images
● Does not support rpm-style package mgmt
● “Firmware Generator”
● Builds all components from source
● Focus on simplicity
Products:
● Root filesystem image
● Kernel, Bootloader, Toolchain
Buildroot - Overview
1
See more at https://buildroot.org/
OpenWRT - Overview
“OpenWrt provides a fully writable filesystem with package management.”1
Primary focus is networking
○ Replacement firmware for consumer devices
○ Primarily a binary distribution
○ On-device package management
Products:
○ Firmware image in device-specific format
○ Network available package repositories
1
See more at https://openwrt.org/
● Device lifetimes.
● Managed vs unmanaged fleet:
⎻ Will you have direct control of deployed devices?
● Operating Environment:
⎻ How hostile is it?
⎻ How reliable is power and connectivity?
● Can the user modify the software?
● Is there some kind of end-user interface?
● Bandwidth:
⎻ Network
⎻ Cloud compute
Deployment Considerations
What can
go wrong?
Securing IOT Devices
● “The ‘s’ in IOT stands for security” - @tkadlec
● 1-25 bugs per 1000 lines of code*
○ Assume that all software components have
vulnerabilities
● Use well-maintained software and keep it updated
● Review vendors for update policies
● General Security Practices
○ Principle of least privilege
○ Separation of privilege
○ Kerckhoff’s principle
■ “You can only design an encryption system
that someone dumber than you cannot
crack.”
*Source: Steve McConnell, Code Complete
Securing IOT Devices
● “The ‘s’ in IOT stands for security” - @tkadlec
● 1-25 bugs per 1000 lines of code*
○ Assume that all software components have
vulnerabilities
● Use well-maintained software and keep it updated
● Review vendors for update policies
● General Security Practices
○ Principle of least privilege
○ Separation of privilege
○ Kerckhoff’s principle
■ “You can only design an encryption system
that someone dumber than you cannot
crack.”
*Source: Steve McConnell, Code Complete
OTA updates are
a must have.
Security patching is done too late
60 days: >90% probability it is exploited
110 days: remediation time avg.
5-10 days: <10% probability it is exploited
Source: How the Rise in Non-Targeted Attacks Has Widened the Remediation Gap, Kenna Security
IOT Device Patching and Updates
● “33% of current recalls are for problems that could be fixed OTA” -
ABI Research
● “OTA updates will save carmakers $35B in 2022” - IHS Automotive
● Considerations:
○ Long expected lifetime
○ No/expensive physical access
○ Unreliable power
○ Unreliable network connectivity
○ Public and insecure networks
OTA Update Design Criteria
● Robust - no bricked devices
● Secure - TLS and image signing
● Atomic - installed completely or not at all
● Consistent - test environment == production
environment
● Automatic Rollback - safety
● Plugin architecture - expandability
Resources:
● https://bit.ly/2GlKlUQ - My ELC Talk on Embedded Linux build systems
● https://ubm.io/2Iazdfn - My article on the Yocto build system
● https://bit.ly/2KYFLzz - Script to build Yocto for Raspberry Pi with Mender.
@drewmoseley
drew.moseley@mender.io
Q&A - Thank you!

More Related Content

What's hot

Tinker cad intro
Tinker cad introTinker cad intro
Tinker cad intro
Archita Singh
 
Report
ReportReport
IRJET- Home Automation System using IoT
IRJET- Home Automation System using IoTIRJET- Home Automation System using IoT
IRJET- Home Automation System using IoT
IRJET Journal
 
Internet Of Things
Internet Of ThingsInternet Of Things
Internet Of Things
PiTechnologies
 
Design connected thermometer
Design connected thermometerDesign connected thermometer
Design connected thermometer
S Martial Anicet KIEMDE
 
Brain controlled robot
Brain controlled robotBrain controlled robot
Brain controlled robot
Pantech ProLabs India Pvt Ltd
 
IT Solution through IoT Development
IT Solution through IoT DevelopmentIT Solution through IoT Development
IT Solution through IoT Development
Andri Yadi
 
Android and processors
Android and processorsAndroid and processors
Android and processors
Adarsh Gowda
 
M2M and IoT Design Methodologies
M2M and IoT Design MethodologiesM2M and IoT Design Methodologies
M2M and IoT Design Methodologies
Selvaraj Seerangan
 
Bluetooth Home Automation System
Bluetooth Home Automation SystemBluetooth Home Automation System
Bluetooth Home Automation System
AI Publications
 
The Rise of Maker Movement in Indonesia
The Rise of Maker Movement in IndonesiaThe Rise of Maker Movement in Indonesia
The Rise of Maker Movement in Indonesia
Andri Yadi
 
IRJET- Rescue of Psycological Infirmity People using Wirless Network
IRJET- Rescue of Psycological Infirmity People using Wirless NetworkIRJET- Rescue of Psycological Infirmity People using Wirless Network
IRJET- Rescue of Psycological Infirmity People using Wirless Network
IRJET Journal
 
Java ring
Java ringJava ring
Java ring
Etty94
 
Taller IoT en la Actualidad
Taller IoT en la ActualidadTaller IoT en la Actualidad
Taller IoT en la Actualidad
Laurence HR
 
Road to Republic of IoT - IoT Technologies & Machine Learning
Road to Republic of IoT - IoT Technologies & Machine LearningRoad to Republic of IoT - IoT Technologies & Machine Learning
Road to Republic of IoT - IoT Technologies & Machine Learning
Andri Yadi
 
Intro to the Arduino Entrepreneurial System
Intro to the Arduino Entrepreneurial SystemIntro to the Arduino Entrepreneurial System
Intro to the Arduino Entrepreneurial System
todbotdotcom
 
IRJET- Smart Drive
IRJET-  	  Smart DriveIRJET-  	  Smart Drive
IRJET- Smart Drive
IRJET Journal
 
IRJET- Multi Plug Control using Internet of Things
IRJET- Multi Plug Control using Internet of ThingsIRJET- Multi Plug Control using Internet of Things
IRJET- Multi Plug Control using Internet of Things
IRJET Journal
 

What's hot (20)

Tinker cad intro
Tinker cad introTinker cad intro
Tinker cad intro
 
Report
ReportReport
Report
 
IRJET- Home Automation System using IoT
IRJET- Home Automation System using IoTIRJET- Home Automation System using IoT
IRJET- Home Automation System using IoT
 
Internet Of Things
Internet Of ThingsInternet Of Things
Internet Of Things
 
Design connected thermometer
Design connected thermometerDesign connected thermometer
Design connected thermometer
 
Brain controlled robot
Brain controlled robotBrain controlled robot
Brain controlled robot
 
IT Solution through IoT Development
IT Solution through IoT DevelopmentIT Solution through IoT Development
IT Solution through IoT Development
 
Android and processors
Android and processorsAndroid and processors
Android and processors
 
M2M and IoT Design Methodologies
M2M and IoT Design MethodologiesM2M and IoT Design Methodologies
M2M and IoT Design Methodologies
 
Bluetooth Home Automation System
Bluetooth Home Automation SystemBluetooth Home Automation System
Bluetooth Home Automation System
 
The Rise of Maker Movement in Indonesia
The Rise of Maker Movement in IndonesiaThe Rise of Maker Movement in Indonesia
The Rise of Maker Movement in Indonesia
 
IRJET- Rescue of Psycological Infirmity People using Wirless Network
IRJET- Rescue of Psycological Infirmity People using Wirless NetworkIRJET- Rescue of Psycological Infirmity People using Wirless Network
IRJET- Rescue of Psycological Infirmity People using Wirless Network
 
Java ring
Java ringJava ring
Java ring
 
Java ring Engg SEMINAR
Java ring Engg SEMINARJava ring Engg SEMINAR
Java ring Engg SEMINAR
 
Taller IoT en la Actualidad
Taller IoT en la ActualidadTaller IoT en la Actualidad
Taller IoT en la Actualidad
 
Road to Republic of IoT - IoT Technologies & Machine Learning
Road to Republic of IoT - IoT Technologies & Machine LearningRoad to Republic of IoT - IoT Technologies & Machine Learning
Road to Republic of IoT - IoT Technologies & Machine Learning
 
Intro to the Arduino Entrepreneurial System
Intro to the Arduino Entrepreneurial SystemIntro to the Arduino Entrepreneurial System
Intro to the Arduino Entrepreneurial System
 
Ubiquitous home
Ubiquitous homeUbiquitous home
Ubiquitous home
 
IRJET- Smart Drive
IRJET-  	  Smart DriveIRJET-  	  Smart Drive
IRJET- Smart Drive
 
IRJET- Multi Plug Control using Internet of Things
IRJET- Multi Plug Control using Internet of ThingsIRJET- Multi Plug Control using Internet of Things
IRJET- Multi Plug Control using Internet of Things
 

Similar to Iot development from prototype to production

IoT Development from Prototype to Production
IoT Development from Prototype to ProductionIoT Development from Prototype to Production
IoT Development from Prototype to Production
Mender.io
 
IoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSesIoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSes
Mender.io
 
Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018
Mender.io
 
The ultimate guide to software updates on embedded linux devices
The ultimate guide to software updates on embedded linux devicesThe ultimate guide to software updates on embedded linux devices
The ultimate guide to software updates on embedded linux devices
Mender.io
 
IOT Exploitation
IOT Exploitation	IOT Exploitation
LAS16 100 K1 - Keynote George Grey
LAS16 100 K1 - Keynote George GreyLAS16 100 K1 - Keynote George Grey
LAS16 100 K1 - Keynote George Grey
96Boards
 
LAS16-100K1: Welcome Keynote
LAS16-100K1: Welcome KeynoteLAS16-100K1: Welcome Keynote
LAS16-100K1: Welcome Keynote
Linaro
 
BKK16-500K2 CTO talk - The End to End Story
BKK16-500K2 CTO talk - The End to End StoryBKK16-500K2 CTO talk - The End to End Story
BKK16-500K2 CTO talk - The End to End Story
Linaro
 
The Considerations for Internet of Things @ 2017
The Considerations for Internet of Things @ 2017The Considerations for Internet of Things @ 2017
The Considerations for Internet of Things @ 2017
Jian-Hong Pan
 
George Grey Welcome Keynote - BUD17-100K1
George Grey Welcome Keynote - BUD17-100K1George Grey Welcome Keynote - BUD17-100K1
George Grey Welcome Keynote - BUD17-100K1
Linaro
 
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
MediaTek Labs
 
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
mCloud
 
Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018
Mender.io
 
Integrate IoT cloud analytics and over the-air (ota) updates with google and ...
Integrate IoT cloud analytics and over the-air (ota) updates with google and ...Integrate IoT cloud analytics and over the-air (ota) updates with google and ...
Integrate IoT cloud analytics and over the-air (ota) updates with google and ...
Mender.io
 
Fluent Bit
Fluent BitFluent Bit
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Stéphanie Roger
 
libreCMC : The Libre Embedded GNU/Linux Distro
libreCMC : The Libre Embedded GNU/Linux DistrolibreCMC : The Libre Embedded GNU/Linux Distro
libreCMC : The Libre Embedded GNU/Linux Distro
All Things Open
 
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0Igor Stoppa
 
Is Android the New Embedded Linux? at AnDevCon V
Is Android the New Embedded Linux? at AnDevCon VIs Android the New Embedded Linux? at AnDevCon V
Is Android the New Embedded Linux? at AnDevCon VOpersys inc.
 
Is Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VIIs Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VIOpersys inc.
 

Similar to Iot development from prototype to production (20)

IoT Development from Prototype to Production
IoT Development from Prototype to ProductionIoT Development from Prototype to Production
IoT Development from Prototype to Production
 
IoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSesIoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSes
 
Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018Why the yocto project for my io t project elc_edinburgh_2018
Why the yocto project for my io t project elc_edinburgh_2018
 
The ultimate guide to software updates on embedded linux devices
The ultimate guide to software updates on embedded linux devicesThe ultimate guide to software updates on embedded linux devices
The ultimate guide to software updates on embedded linux devices
 
IOT Exploitation
IOT Exploitation	IOT Exploitation
IOT Exploitation
 
LAS16 100 K1 - Keynote George Grey
LAS16 100 K1 - Keynote George GreyLAS16 100 K1 - Keynote George Grey
LAS16 100 K1 - Keynote George Grey
 
LAS16-100K1: Welcome Keynote
LAS16-100K1: Welcome KeynoteLAS16-100K1: Welcome Keynote
LAS16-100K1: Welcome Keynote
 
BKK16-500K2 CTO talk - The End to End Story
BKK16-500K2 CTO talk - The End to End StoryBKK16-500K2 CTO talk - The End to End Story
BKK16-500K2 CTO talk - The End to End Story
 
The Considerations for Internet of Things @ 2017
The Considerations for Internet of Things @ 2017The Considerations for Internet of Things @ 2017
The Considerations for Internet of Things @ 2017
 
George Grey Welcome Keynote - BUD17-100K1
George Grey Welcome Keynote - BUD17-100K1George Grey Welcome Keynote - BUD17-100K1
George Grey Welcome Keynote - BUD17-100K1
 
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
 
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
 
Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018
 
Integrate IoT cloud analytics and over the-air (ota) updates with google and ...
Integrate IoT cloud analytics and over the-air (ota) updates with google and ...Integrate IoT cloud analytics and over the-air (ota) updates with google and ...
Integrate IoT cloud analytics and over the-air (ota) updates with google and ...
 
Fluent Bit
Fluent BitFluent Bit
Fluent Bit
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
 
libreCMC : The Libre Embedded GNU/Linux Distro
libreCMC : The Libre Embedded GNU/Linux DistrolibreCMC : The Libre Embedded GNU/Linux Distro
libreCMC : The Libre Embedded GNU/Linux Distro
 
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0
 
Is Android the New Embedded Linux? at AnDevCon V
Is Android the New Embedded Linux? at AnDevCon VIs Android the New Embedded Linux? at AnDevCon V
Is Android the New Embedded Linux? at AnDevCon V
 
Is Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VIIs Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VI
 

More from Mender.io

Mender: The open-source software update solution
Mender: The open-source software update solutionMender: The open-source software update solution
Mender: The open-source software update solution
Mender.io
 
A million ways to provision embedded linux devices
A million ways to provision embedded linux devicesA million ways to provision embedded linux devices
A million ways to provision embedded linux devices
Mender.io
 
Embedded linux build systems
Embedded linux build systems  Embedded linux build systems
Embedded linux build systems
Mender.io
 
Configuring wifi in open embedded builds
Configuring wifi in open embedded buildsConfiguring wifi in open embedded builds
Configuring wifi in open embedded builds
Mender.io
 
Mender; the open-source software update solution
Mender; the open-source software update solutionMender; the open-source software update solution
Mender; the open-source software update solution
Mender.io
 
IoT Prototyping using BBB and Debian
IoT Prototyping using BBB and DebianIoT Prototyping using BBB and Debian
IoT Prototyping using BBB and Debian
Mender.io
 
Strategies for developing and deploying your embedded applications and images
Strategies for developing and deploying your embedded applications and imagesStrategies for developing and deploying your embedded applications and images
Strategies for developing and deploying your embedded applications and images
Mender.io
 
Software Updates for Connected Devices - OSCON 2018
Software Updates for Connected Devices - OSCON 2018Software Updates for Connected Devices - OSCON 2018
Software Updates for Connected Devices - OSCON 2018
Mender.io
 
Linux IOT Botnet Wars and the Lack of Basic Security Hardening - OSCON 2018
Linux IOT Botnet Wars and the Lack of Basic Security Hardening - OSCON 2018Linux IOT Botnet Wars and the Lack of Basic Security Hardening - OSCON 2018
Linux IOT Botnet Wars and the Lack of Basic Security Hardening - OSCON 2018
Mender.io
 
Linux IoT Botnet Wars - ESC Boston 2018
Linux IoT Botnet Wars - ESC Boston 2018Linux IoT Botnet Wars - ESC Boston 2018
Linux IoT Botnet Wars - ESC Boston 2018
Mender.io
 
Securing the Connected Car - SCaLE 2018
Securing the Connected Car - SCaLE 2018Securing the Connected Car - SCaLE 2018
Securing the Connected Car - SCaLE 2018
Mender.io
 
Mender.io | Securing the Connected Car
Mender.io | Securing the Connected CarMender.io | Securing the Connected Car
Mender.io | Securing the Connected Car
Mender.io
 
Linux IoT Botnet Wars and the lack of basic security hardening
Linux IoT Botnet Wars and the lack of basic security hardeningLinux IoT Botnet Wars and the lack of basic security hardening
Linux IoT Botnet Wars and the lack of basic security hardening
Mender.io
 
Mender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io | Develop embedded applications faster | Comparing C and GolangMender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io
 

More from Mender.io (14)

Mender: The open-source software update solution
Mender: The open-source software update solutionMender: The open-source software update solution
Mender: The open-source software update solution
 
A million ways to provision embedded linux devices
A million ways to provision embedded linux devicesA million ways to provision embedded linux devices
A million ways to provision embedded linux devices
 
Embedded linux build systems
Embedded linux build systems  Embedded linux build systems
Embedded linux build systems
 
Configuring wifi in open embedded builds
Configuring wifi in open embedded buildsConfiguring wifi in open embedded builds
Configuring wifi in open embedded builds
 
Mender; the open-source software update solution
Mender; the open-source software update solutionMender; the open-source software update solution
Mender; the open-source software update solution
 
IoT Prototyping using BBB and Debian
IoT Prototyping using BBB and DebianIoT Prototyping using BBB and Debian
IoT Prototyping using BBB and Debian
 
Strategies for developing and deploying your embedded applications and images
Strategies for developing and deploying your embedded applications and imagesStrategies for developing and deploying your embedded applications and images
Strategies for developing and deploying your embedded applications and images
 
Software Updates for Connected Devices - OSCON 2018
Software Updates for Connected Devices - OSCON 2018Software Updates for Connected Devices - OSCON 2018
Software Updates for Connected Devices - OSCON 2018
 
Linux IOT Botnet Wars and the Lack of Basic Security Hardening - OSCON 2018
Linux IOT Botnet Wars and the Lack of Basic Security Hardening - OSCON 2018Linux IOT Botnet Wars and the Lack of Basic Security Hardening - OSCON 2018
Linux IOT Botnet Wars and the Lack of Basic Security Hardening - OSCON 2018
 
Linux IoT Botnet Wars - ESC Boston 2018
Linux IoT Botnet Wars - ESC Boston 2018Linux IoT Botnet Wars - ESC Boston 2018
Linux IoT Botnet Wars - ESC Boston 2018
 
Securing the Connected Car - SCaLE 2018
Securing the Connected Car - SCaLE 2018Securing the Connected Car - SCaLE 2018
Securing the Connected Car - SCaLE 2018
 
Mender.io | Securing the Connected Car
Mender.io | Securing the Connected CarMender.io | Securing the Connected Car
Mender.io | Securing the Connected Car
 
Linux IoT Botnet Wars and the lack of basic security hardening
Linux IoT Botnet Wars and the lack of basic security hardeningLinux IoT Botnet Wars and the lack of basic security hardening
Linux IoT Botnet Wars and the lack of basic security hardening
 
Mender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io | Develop embedded applications faster | Comparing C and GolangMender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io | Develop embedded applications faster | Comparing C and Golang
 

Recently uploaded

Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 

Recently uploaded (20)

Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 

Iot development from prototype to production

  • 1. Drew Moseley Technical Solutions Architect Mender.io IOT Development from Prototype to Production
  • 2. Session overview ● Define IOT and markets ● Selecting hardware. ● Selecting system software. ● Design considerations for IOT development
  • 3. About me ● Drew Moseley ○ 10 years in Embedded Linux/Yocto development. ○ More than that in general Embedded Software. ○ Project Lead and Solutions Architect. ○ drew.moseley@mender.io ○ https://twitter.com/drewmoseley ○ https://www.linkedin.com/in/drewmoseley/ ○ https://twitter.com/mender_io ● Mender.io ○ Over-the-air updater for Embedded Linux ○ Open source (Apache License, v2) ○ Dual A/B rootfs layout (client) ○ Remote deployment management (server) ○ Under active development
  • 4. ● “A network of internet-connected objects able to collect and exchange data using embedded sensors.”1 IOT Definition 1 http://www.businessinsider.com/what-is-the-internet-of-things-definition-2016-8 ● A “network of physical devices, vehicles, home appliances and other items embedded with electronics, software, sensors, actuators, and connectivity which enables these objects to connect and exchange data.”3 ● IEEE (86 page PDF)2 ● Key characteristics: ⎻ Connected ⎻ Sensors ⎻ Actuators ⎻ Cloud Infrastructure 2 https://iot.ieee.org/definition.html 3 https://en.wikipedia.org/wiki/Internet_of_things
  • 5. ● Consumer1 ⎻ Nest thermostat ⎻ Smart lighting ⎻ Home security ⎻ Connected automobiles IOT Applications 1 Not an endorsement; I’ve not even used most of these examples ● Municipal ⎻ Infrastructure monitoring/management ⎻ Traffic control ⎻ Public Transit ● Industrial ⎻ Operations Centers ⎻ Factory/inventory management ● Enterprise ⎻ Supply chain management ⎻ Medical Device
  • 6. Used for device control and data store. May provide AI and big data services. May provide device fleet management/dashboard. Cloud Infrastructure
  • 8. ● Short Distance (inches): ⎻ NFC ⎻ Bluetooth ● Medium Distance (within a building): ⎻ Wi-Fi ⎻ Ethernet ● Long Distance (within a city, battery life measured in years): ⎻ LoRa®/LoRaWAN™; governed by industry alliance ⎻ Sigfox; governed by single commercial entity ● Wide Area (nationwide): ⎻ Cellular/LTE IOT Connectivity Options
  • 9. ● HTTP/HTTPS REST APIs ● 6LoWPAN ⎻ IPv6 over LP-WAN protocols ● MQTT ⎻ Pub/Sub model ⎻ Lightweight in both code and bandwidth ⎻ OASIS Standard ● ZeroMQ ⎻ Pub/Sub, Push/Pull, Router/Dealer ⎻ Open source (LGPL with a Static Linking Exception ) ● Zigbee ⎻ Primarily for Home Automation ⎻ IEEE 802.15.4 ● DDS (Data Distribution Service) ⎻ Global Data Space ⎻ Distributed with access controls IOT Communication Protocols
  • 10. ● MCU vs SOC ⎻ MCU generally not Linux ● On-board peripherals ● Hobbyist vs Commercial Vendor ⎻ Lead times ⎻ Inventories ● Battery vs Hard-wired ● Price ● Form factor: ⎻ Board (Beaglebone Black, Raspberry Pi 3) ⎻ Module (Toradex SOM, Raspberry Pi Compute Module) Hardware Criteria
  • 11. ● OS vs RTOS vs Bare Metal ● System Development Tools ⎻ Yocto ⎻ Buildroot ⎻ OpenWRT ⎻ Debian ● Deployment Strategies ⎻ Hypervisors/Containers ⎻ AMP ● Security/Safety ⎻ ISO 26262 ⎻ SELinux ⎻ AppArmor ⎻ SMACK: Simplified Mandatory Access Control Kernel System Software Criteria
  • 12. ● Application Development Frameworks ⎻ NodeRED ⎻ NodeJS ⎻ Eclipse Kura ⎻ Qt ● Application Development Environments ⎻ Eclipse ⎻ CLI ⎻ Commercial vs RYO/OSS ● Language Availability ⎻ C/C++/Python/Java/Javascript/ Golang ● 3rd party package availability Application Software Criteria
  • 13. ● Bare Metal/Embedded Control Loop ● Embedded RTOS1 ○ OSS: FreeRTOS, IncludeOS, Apache Mynewt, Zephyr ○ Commercial: Nucleus, vxWorks, QNX ● “Desktop” class OS ○ Windows IOT Core System Software Options - Non-Linux Not my fault. 1 https://en.wikipedia.org/wiki/Comparison_of_real-time_operating_systems
  • 14. System Software Options - Linux ● Embedded Linux Options ⎻ Desktop Class Distro ⎻ Embedded Distro Builder ■ Yocto ■ Buildroot ■ OpenWRT ⎻ Hybrid ■ ISAR ■ ELBE ● Embedded Linux Build Systems Talk from ELC Portland 2018 ● Article about Yocto for IOT I got this!!
  • 15. “It’s not an embedded Linux distribution -- it creates a custom one for you”1 ● Recipes, metadata, dependencies and configuration ● Primary output: package feed ● Secondary output: boot images ● Builds all components from source ● Mechanism, not policy Products: ● Root filesystem image ● Kernel, Bootloader, Toolchain ● Package Feed Yocto Project - Overview 1 See more at https://www.yoctoproject.org
  • 16. “Buildroot is a simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation.”1 ● Primary output: boot images ● Does not support rpm-style package mgmt ● “Firmware Generator” ● Builds all components from source ● Focus on simplicity Products: ● Root filesystem image ● Kernel, Bootloader, Toolchain Buildroot - Overview 1 See more at https://buildroot.org/
  • 17. OpenWRT - Overview “OpenWrt provides a fully writable filesystem with package management.”1 Primary focus is networking ○ Replacement firmware for consumer devices ○ Primarily a binary distribution ○ On-device package management Products: ○ Firmware image in device-specific format ○ Network available package repositories 1 See more at https://openwrt.org/
  • 18. ● Device lifetimes. ● Managed vs unmanaged fleet: ⎻ Will you have direct control of deployed devices? ● Operating Environment: ⎻ How hostile is it? ⎻ How reliable is power and connectivity? ● Can the user modify the software? ● Is there some kind of end-user interface? ● Bandwidth: ⎻ Network ⎻ Cloud compute Deployment Considerations What can go wrong?
  • 19. Securing IOT Devices ● “The ‘s’ in IOT stands for security” - @tkadlec ● 1-25 bugs per 1000 lines of code* ○ Assume that all software components have vulnerabilities ● Use well-maintained software and keep it updated ● Review vendors for update policies ● General Security Practices ○ Principle of least privilege ○ Separation of privilege ○ Kerckhoff’s principle ■ “You can only design an encryption system that someone dumber than you cannot crack.” *Source: Steve McConnell, Code Complete
  • 20. Securing IOT Devices ● “The ‘s’ in IOT stands for security” - @tkadlec ● 1-25 bugs per 1000 lines of code* ○ Assume that all software components have vulnerabilities ● Use well-maintained software and keep it updated ● Review vendors for update policies ● General Security Practices ○ Principle of least privilege ○ Separation of privilege ○ Kerckhoff’s principle ■ “You can only design an encryption system that someone dumber than you cannot crack.” *Source: Steve McConnell, Code Complete OTA updates are a must have.
  • 21. Security patching is done too late 60 days: >90% probability it is exploited 110 days: remediation time avg. 5-10 days: <10% probability it is exploited Source: How the Rise in Non-Targeted Attacks Has Widened the Remediation Gap, Kenna Security
  • 22. IOT Device Patching and Updates ● “33% of current recalls are for problems that could be fixed OTA” - ABI Research ● “OTA updates will save carmakers $35B in 2022” - IHS Automotive ● Considerations: ○ Long expected lifetime ○ No/expensive physical access ○ Unreliable power ○ Unreliable network connectivity ○ Public and insecure networks
  • 23. OTA Update Design Criteria ● Robust - no bricked devices ● Secure - TLS and image signing ● Atomic - installed completely or not at all ● Consistent - test environment == production environment ● Automatic Rollback - safety ● Plugin architecture - expandability
  • 24. Resources: ● https://bit.ly/2GlKlUQ - My ELC Talk on Embedded Linux build systems ● https://ubm.io/2Iazdfn - My article on the Yocto build system ● https://bit.ly/2KYFLzz - Script to build Yocto for Raspberry Pi with Mender. @drewmoseley drew.moseley@mender.io Q&A - Thank you!