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
⎻ Business Operations
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 Standard1
● 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
1
https://www.oasis-open.org/news/announcements/mqtt-version-3-1-1-becomes-an-oasis-standard
● 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
■ Direct Install
■ Packaging scripts
⎻ Embedded Distro Builder
■ Yocto
■ Buildroot
■ OpenWRT
⎻ Hybrid
■ ISAR
■ ELBE
I got this!!
1
https://en.wikipedia.org/wiki/Linux_on_embedded_systems
“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 - Previous ELC Talk comparing Embedded Linux build
systems
● https://ubm.io/2Iazdfn - Deeper dive into the Yocto project
● https://hub.mender.io/t/raspberry-pi-3-model-b-b/57 - Building Yocto for
Raspberry Pi with Mender.
@drewmoseley
drew.moseley@mender.io
Q&A - Thank you!

More Related Content

PDF
Présentation du système d'exploitation RIOT-OS
PDF
Tizen Connected with IoTivity
PDF
Developing IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SAC
PPTX
Introduction to the new MediaTek LinkIt™ Development Platform for RTOS
PDF
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
PDF
End to end IoT Solution using Mongoose OS.
PDF
Intoduction Internet of Things
PDF
MediaTek Labs Webinar: Getting Started with LinkIt ONE
Présentation du système d'exploitation RIOT-OS
Tizen Connected with IoTivity
Developing IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SAC
Introduction to the new MediaTek LinkIt™ Development Platform for RTOS
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
End to end IoT Solution using Mongoose OS.
Intoduction Internet of Things
MediaTek Labs Webinar: Getting Started with LinkIt ONE

What's hot (10)

PDF
IoTivity on Tizen: How to
PDF
LinkIt Smart 7688 - a more connected world
PDF
Geek Pic-Nic Master Class
PDF
IoT Meets Security
PPTX
PPTX
Io t part 2
PPT
2nd ARM Developer Day - mbed Workshop - ARM
PDF
Cotopaxi - IoT testing toolkit (3rd release - Black Hat Europe 2019 Arsenal)
PDF
Resin.io overview (2016 July)
PDF
Next Generation Skills for IoT
IoTivity on Tizen: How to
LinkIt Smart 7688 - a more connected world
Geek Pic-Nic Master Class
IoT Meets Security
Io t part 2
2nd ARM Developer Day - mbed Workshop - ARM
Cotopaxi - IoT testing toolkit (3rd release - Black Hat Europe 2019 Arsenal)
Resin.io overview (2016 July)
Next Generation Skills for IoT
Ad

Similar to IoT Development from Prototype to Production (20)

PDF
Iot development from prototype to production
PDF
Survey of Operating Systems for the IoT Environment
PDF
IoT: Contrasting Yocto/Buildroot to binary OSes
PDF
Integrate IoT cloud analytics and over the-air (ota) updates with google and ...
PDF
IoT Prototyping using BBB and Debian
PDF
Secure IOT Gateway
PDF
IoT and Its Application
PDF
Internet of Things 101 - For software engineers
PPT
PDF
Software Updates for Connected Devices - OSCON 2018
PPTX
Internet of Things Architecture / Topology
PDF
Platform for a Connected World
PDF
Everything about Internet of Things
PPTX
Activity lot new.pptx for internet of things
PPTX
Null mumbai-iot-workshop
PDF
Software update for IoT: the current state of play
PPTX
PDF
Internet of Things - Technological Perspective
PDF
Lecture 7 - Security
PDF
Successful Industrial IoT Patterns
Iot development from prototype to production
Survey of Operating Systems for the IoT Environment
IoT: Contrasting Yocto/Buildroot to binary OSes
Integrate IoT cloud analytics and over the-air (ota) updates with google and ...
IoT Prototyping using BBB and Debian
Secure IOT Gateway
IoT and Its Application
Internet of Things 101 - For software engineers
Software Updates for Connected Devices - OSCON 2018
Internet of Things Architecture / Topology
Platform for a Connected World
Everything about Internet of Things
Activity lot new.pptx for internet of things
Null mumbai-iot-workshop
Software update for IoT: the current state of play
Internet of Things - Technological Perspective
Lecture 7 - Security
Successful Industrial IoT Patterns
Ad

More from Mender.io (15)

PDF
Mender: The open-source software update solution
PDF
The ultimate guide to software updates on embedded linux devices
PDF
A million ways to provision embedded linux devices
PDF
Embedded linux build systems
PDF
Configuring wifi in open embedded builds
PDF
Mender; the open-source software update solution
PDF
Why the yocto project for my io t project elc_edinburgh_2018
PDF
Strategies for developing and deploying your embedded applications and images
PDF
Linux IOT Botnet Wars and the Lack of Basic Security Hardening - OSCON 2018
PDF
Embedded Linux Build Systems - Texas Linux Fest 2018
PDF
Linux IoT Botnet Wars - ESC Boston 2018
PDF
Securing the Connected Car - SCaLE 2018
PDF
Mender.io | Securing the Connected Car
PDF
Linux IoT Botnet Wars and the lack of basic security hardening
PDF
Mender.io | Develop embedded applications faster | Comparing C and Golang
Mender: The open-source software update solution
The ultimate guide to software updates on embedded linux devices
A million ways to provision embedded linux devices
Embedded linux build systems
Configuring wifi in open embedded builds
Mender; the open-source software update solution
Why the yocto project for my io t project elc_edinburgh_2018
Strategies for developing and deploying your embedded applications and images
Linux IOT Botnet Wars and the Lack of Basic Security Hardening - OSCON 2018
Embedded Linux Build Systems - Texas Linux Fest 2018
Linux IoT Botnet Wars - ESC Boston 2018
Securing the Connected Car - SCaLE 2018
Mender.io | Securing the Connected Car
Linux IoT Botnet Wars and the lack of basic security hardening
Mender.io | Develop embedded applications faster | Comparing C and Golang

Recently uploaded (20)

PDF
Chapter -24-By Dr Sajid Ali Ansari 2021.pdf
PPTX
Fundamentals of Computer.pptx Computer BSC
PPT
Lines and angles cbse class 9 math chemistry
PPTX
DEATH AUDIT MAY 2025.pptxurjrjejektjtjyjjy
PDF
How NGOs Save Costs with Affordable IT Rentals
PPTX
Lecture-3-Computer-programming for BS InfoTech
PPTX
code of ethics.pptxdvhwbssssSAssscasascc
PPTX
title _yeOPC_Poisoning_Presentation.pptx
PPTX
1.pptxsadafqefeqfeqfeffeqfqeqfeqefqfeqfqeffqe
PPT
Hypersensitivity Namisha1111111111-WPS.ppt
PPTX
Presentacion compuuuuuuuuuuuuuuuuuuuuuuu
PPTX
02fdgfhfhfhghghhhhhhhhhhhhhhhhhhhhh.pptx
DOCX
A PROPOSAL ON IoT climate sensor 2.docx
PPTX
ATL_Arduino_Complete_Presentation_AI_Visuals.pptx
PPTX
PROGRAMMING-QUARTER-2-PYTHON.pptxnsnsndn
PPTX
5. MEASURE OF INTERIOR AND EXTERIOR- MATATAG CURRICULUM.pptx
PPTX
material for studying about lift elevators escalation
PDF
Core Components of IoT, The elements need for IOT
PPTX
KVL KCL ppt electrical electronics eee tiet
PPTX
Embedded for Artificial Intelligence 1.pptx
Chapter -24-By Dr Sajid Ali Ansari 2021.pdf
Fundamentals of Computer.pptx Computer BSC
Lines and angles cbse class 9 math chemistry
DEATH AUDIT MAY 2025.pptxurjrjejektjtjyjjy
How NGOs Save Costs with Affordable IT Rentals
Lecture-3-Computer-programming for BS InfoTech
code of ethics.pptxdvhwbssssSAssscasascc
title _yeOPC_Poisoning_Presentation.pptx
1.pptxsadafqefeqfeqfeffeqfqeqfeqefqfeqfqeffqe
Hypersensitivity Namisha1111111111-WPS.ppt
Presentacion compuuuuuuuuuuuuuuuuuuuuuuu
02fdgfhfhfhghghhhhhhhhhhhhhhhhhhhhh.pptx
A PROPOSAL ON IoT climate sensor 2.docx
ATL_Arduino_Complete_Presentation_AI_Visuals.pptx
PROGRAMMING-QUARTER-2-PYTHON.pptxnsnsndn
5. MEASURE OF INTERIOR AND EXTERIOR- MATATAG CURRICULUM.pptx
material for studying about lift elevators escalation
Core Components of IoT, The elements need for IOT
KVL KCL ppt electrical electronics eee tiet
Embedded for Artificial Intelligence 1.pptx

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 ⎻ Business Operations
  • 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 Standard1 ● 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 1 https://www.oasis-open.org/news/announcements/mqtt-version-3-1-1-becomes-an-oasis-standard
  • 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 ■ Direct Install ■ Packaging scripts ⎻ Embedded Distro Builder ■ Yocto ■ Buildroot ■ OpenWRT ⎻ Hybrid ■ ISAR ■ ELBE I got this!! 1 https://en.wikipedia.org/wiki/Linux_on_embedded_systems
  • 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 - Previous ELC Talk comparing Embedded Linux build systems ● https://ubm.io/2Iazdfn - Deeper dive into the Yocto project ● https://hub.mender.io/t/raspberry-pi-3-model-b-b/57 - Building Yocto for Raspberry Pi with Mender. @drewmoseley drew.moseley@mender.io Q&A - Thank you!