SlideShare a Scribd company logo
Drew Moseley
Embedded Solutions Architect
Mender.io
1. Challenges and motivations
2. Requirements
a. Non-functional
b. Installer strategies
3. Mender
a. Demo and explanations
b. Device integration
c. Testing
d. Community overview
Session overview
About me
Drew Moseley
○ 10 years in Embedded Linux/Yocto
development.
○ Longer 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 update manager for
embedded Linux
○ Open source (Apache License, v2)
○ Dual A/B rootfs layout (client)
○ Remote deployment management (server)
○ Under active development
We are hiring!
Backend Software Engineer Cloud Architect
DevOps Engineer Full Stack Software Engineer
Embedded/Client Software
Engineer
Senior QA Engineer
Motivating OTA capability
Bricked Smart Locks1
Automobiles head units in reboot loop2
Botnets:
● Mirai: Peaked at 600,000 infections
○ DDoS of major sites in late 2016
○ Intent: Profit
● BrickerBot: “author” claims 10,000,000 infections
○ Abandoned by author in November 2016
○ Intent: Internet chemotherapy
● Newer ones becoming more sophisticated
1
https://www.extremetech.com/computing/254177-internet-things-smart-locks-bricked-bad-firmware-update
2
https://www.theverge.com/2016/6/7/11879860/lexus-navigation-broken-software-update-bug
Connected devices must be remotely updatable
● There will be bugs and vulnerabilities
○ 1-25 per 1000 lines of code*
● … and new features
● … after device is deployed to the field
*Source: Steve McConnell, Code Complete
Critical- and high-severity security bugs in Linux
Source: Ars Technica
The embedded environment
● Remote
○ Expensive to reach physically
● Power
○ Battery
○ Unclean shutdown
● Hostile deployment environment
● Product lifetime
○ Some markets 5 - 10 years
● Network
○ Intermittent connectivity
○ Low bandwidth
○ Insecure
Requirements
1. Robust and secure
a. Rollback
b. Signed/trusted images
c. Integrity/compatibility checks
2. Atomic updates
3. Support kernel, apps, libraries, DTBs
4. Integrates with existing environments
a. Easy to get started
5. Bandwidth consumption
6. Downtime during update
Installer strategies
1. In-place
2. Maintenance mode
3. Dual A/B
4. Proxy
Bootloader
Kernel, initramfs
User space
Updater
Installer strategies
1. In-place
2. Maintenance mode
3. Dual A/B
4. Proxy
Bootloader
Kernel, initramfs
User space
Updater
Installer strategies
1. In-place
2. Maintenance mode
3. Dual A/B
4. Proxy
Bootloader
Kernel,
initramfs A
User space A
Updater A
User space B
Kernel,
initramfs B
Updater B
1. In-place
2. Maintenance mode
3. Dual A/B
4. Proxy
Installer strategies
Gateway
Remote device
(sensor, ECU, etc.)
Updater
Why did Mender choose image-based updates
● Increased fleet robustness
● Greatly reduced testing matrix
● Ease of rollback
● Atomic updates
● Reproducible deployments
Challenges with package-based updates
Managing individual packages quickly
becomes a logistical nightmare
○ Testing of many combinations of
installed packages
○ Installation order not strictly
enforced.
○ Partially-installed packages can
block installs of new fixed
packages
Re-use open source tools for remote update management
Most companies write their own homegrown updater from scratch (!)
Existing free and open source tools can help you
Save time and avoid stress (where you can)
○ Initial development
■ It looks so easy! Is it easy?
○ Ongoing maintenance
■ 5 years? 10? 20?
■ 1 product? 5? 10?
Generic embedded update workflow
Detect update
(secure channel)
Download
(secure channel)
Integrity
(e.g. checksum)
Authenticate
(e.g. signature)
DecryptExtract
Install Failure recovery
(e.g. roll back)
Compatibility
check
Sanity checks
Post-install
actions
Pre-install
actions
Must-have
Environment-specific
(Re)Start*
*E.g. reboot, restart service, start container
Mender
Mender is an end-to-end open source software
update manager for connected devices
● Written in Golang
● Licensed under Apache 2.0
○ Sources available in github
● End-to-end open-source
○ Backend
○ Management front end
○ Client, tooling, QA
● https://docs.mender.io/
Atomic A/B image update
TLS communication between client/server
Update streamed directly to inactive partition
Deployment management
Cryptographic signing and verification of updates
Customizable to device use cases
Artifact tool for creation and management
Mender
Bootloader
Image A
(active)
U-boot
Grub x86 (BIOS/UEFI)
Grub ARM Image B
(inactive)
Data
Root file-system
Mender client
Linux + DTB
Automatic rollback with A/B image update
Automatic rollback with A/B image update
Bootloader
Image A
(inactive)
U-boot
Grub x86 (BIOS/UEFI)
Grub ARM Image B
(active)
Data
Root file-system
Mender client
Linux + DTB
Mender Devices
Users
API Gateway
TCP 443
DeviceAdm
DeviceAuth
UserAdm
Inventory
Deployments
GUI
Conductor
Storage
Proxy
TCP 9000
Minio
MongoDB
ElasticSearch
Redis
Filesystem
external clients stateless application layer persistent storage
● Microservices
● Only port 443 and 9000
● RESTful API
○ Device API
○ Management API
/api/management/v1/deployments
/api/management/v1/admission
/api/management/v1/devauth/
….
https://docs.mender.io/apis/overview
Mender Server Architecture
Demo environment
○ Quick way to spin up a test server on laptop
○ Demo images
■ qemu
■ Raspberry Pi
■ Beaglebone Black
○ qemux86-64 device
○ Not secure!
Production environment
○ Migration instructions on each release
https://docs.mender.io/getting-started/create-a-test-environment
https://docs.mender.io/administration/production-installation
Mender Server
Partitions:
○ Boot (optional), Rootfs A, Rootfs B, Data
Bootloader integration
○ Control boot process, A or B
○ U-boot, Grub (BIOS/UEFI)
○ U-boot auto-patch feature (fall-back to manual patching)
Linux runtime integration
○ Supports eMMC/SD & UBI volumes
○ Mender client application
Target OSes supported:
○ Yocto/OpenEmbedded (OOB)
○ Buildroot (somewhat)
○ OpenWRT (somewhat)
○ Debian/Ubuntu/Raspbian (using mender-convert utility)
https://docs.mender.io/devices
Mender | Device Integration
Coming soon
Update modules - Spring 2019
● Updates for microcontrollers, sensors, and
other small devices
● In-place updates
● Configuration/calibration updates
● Containers
● Differential updates
● and more...
$ git clone -b 1.7.0 
https://github.com/mendersoftware/integration.git
$ cd integration
$ ./up
https://docs.mender.io/getting-started/create-a-test-environment
Mender | setup demo environment
Demo time
Google Group / Mailing list
○ https://groups.google.com/a/lists.mender.io/forum/#!forum/mender
Mender Hub/Forums/Tutorials/Integrations
○ https://hub.mender.io/
#mender @ freenode
https://mender.io/developers/developer-portal
Mender | Community & Resources
Questions?
Thank you!
@drewmoseley
https://mender.io
drew.moseley@mender.io
Ad

Recommended

Project ACRN hypervisor introduction
Project ACRN hypervisor introduction
Project ACRN
 
Containers 101
Containers 101
Black Duck by Synopsys
 
Delivering Docker & K3s worloads to IoT Edge devices
Delivering Docker & K3s worloads to IoT Edge devices
Ajeet Singh Raina
 
Linux
Linux
Kevin James
 
Microsoft Windows Server 2022 Overview
Microsoft Windows Server 2022 Overview
David J Rosenthal
 
Kali Linux
Kali Linux
Chanchal Dabriya
 
Linux
Linux
International Islamic University
 
what is LINUX ? presentation.
what is LINUX ? presentation.
saad_khan1122
 
A 64-Bit RISC Processor Design and Implementation Using VHDL
A 64-Bit RISC Processor Design and Implementation Using VHDL
Andrew Yoila
 
Android 10
Android 10
kpraveen_slideshare
 
Fuchsia
Fuchsia
kasyamgurulakshmi
 
Embedded linux
Embedded linux
Wingston
 
Linux
Linux
salamassh
 
Embedded Android : System Development - Part IV (Android System Services)
Embedded Android : System Development - Part IV (Android System Services)
Emertxe Information Technologies Pvt Ltd
 
Getting Started with Buildroot
Getting Started with Buildroot
Trevor Woerner
 
Flutter Introduction and Architecture
Flutter Introduction and Architecture
Jenish MS
 
Linux
Linux
dwarfyray
 
Managed disk-Azure Storage Evolution
Managed disk-Azure Storage Evolution
Siraj Mohammad
 
Linux command ppt
Linux command ppt
kalyanineve
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to Yocto
Sherif Mousa
 
Unix++: Plan 9 from Bell Labs
Unix++: Plan 9 from Bell Labs
Anant Narayanan
 
Yocto Project introduction
Yocto Project introduction
Yi-Hsiu Hsu
 
presentation on Docker
presentation on Docker
Virendra Ruhela
 
Zephyr-Overview-20230124.pdf
Zephyr-Overview-20230124.pdf
ibramax
 
Secure Embedded Systems
Secure Embedded Systems
Informatik-Forum Stuttgart e.V.
 
Kali presentation
Kali presentation
Zain Ul abadin
 
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Edureka!
 
Introduction to Linux
Introduction to Linux
Harish R
 
Mender: The open-source software update solution
Mender: The open-source software update solution
Mender.io
 
Software Updates for Connected Devices - OSCON 2018
Software Updates for Connected Devices - OSCON 2018
Mender.io
 

More Related Content

What's hot (20)

A 64-Bit RISC Processor Design and Implementation Using VHDL
A 64-Bit RISC Processor Design and Implementation Using VHDL
Andrew Yoila
 
Android 10
Android 10
kpraveen_slideshare
 
Fuchsia
Fuchsia
kasyamgurulakshmi
 
Embedded linux
Embedded linux
Wingston
 
Linux
Linux
salamassh
 
Embedded Android : System Development - Part IV (Android System Services)
Embedded Android : System Development - Part IV (Android System Services)
Emertxe Information Technologies Pvt Ltd
 
Getting Started with Buildroot
Getting Started with Buildroot
Trevor Woerner
 
Flutter Introduction and Architecture
Flutter Introduction and Architecture
Jenish MS
 
Linux
Linux
dwarfyray
 
Managed disk-Azure Storage Evolution
Managed disk-Azure Storage Evolution
Siraj Mohammad
 
Linux command ppt
Linux command ppt
kalyanineve
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to Yocto
Sherif Mousa
 
Unix++: Plan 9 from Bell Labs
Unix++: Plan 9 from Bell Labs
Anant Narayanan
 
Yocto Project introduction
Yocto Project introduction
Yi-Hsiu Hsu
 
presentation on Docker
presentation on Docker
Virendra Ruhela
 
Zephyr-Overview-20230124.pdf
Zephyr-Overview-20230124.pdf
ibramax
 
Secure Embedded Systems
Secure Embedded Systems
Informatik-Forum Stuttgart e.V.
 
Kali presentation
Kali presentation
Zain Ul abadin
 
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Edureka!
 
Introduction to Linux
Introduction to Linux
Harish R
 
A 64-Bit RISC Processor Design and Implementation Using VHDL
A 64-Bit RISC Processor Design and Implementation Using VHDL
Andrew Yoila
 
Embedded linux
Embedded linux
Wingston
 
Getting Started with Buildroot
Getting Started with Buildroot
Trevor Woerner
 
Flutter Introduction and Architecture
Flutter Introduction and Architecture
Jenish MS
 
Managed disk-Azure Storage Evolution
Managed disk-Azure Storage Evolution
Siraj Mohammad
 
Linux command ppt
Linux command ppt
kalyanineve
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to Yocto
Sherif Mousa
 
Unix++: Plan 9 from Bell Labs
Unix++: Plan 9 from Bell Labs
Anant Narayanan
 
Yocto Project introduction
Yocto Project introduction
Yi-Hsiu Hsu
 
Zephyr-Overview-20230124.pdf
Zephyr-Overview-20230124.pdf
ibramax
 
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Edureka!
 
Introduction to Linux
Introduction to Linux
Harish R
 

Similar to Mender; the open-source software update solution (20)

Mender: The open-source software update solution
Mender: The open-source software update solution
Mender.io
 
Software Updates for Connected Devices - OSCON 2018
Software Updates for Connected Devices - OSCON 2018
Mender.io
 
Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10
MagaliDavidCruz
 
On-Demand Image Resizing Extended - External Meet-up
On-Demand Image Resizing Extended - External Meet-up
Jonathan Lee
 
Why 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
 
Software update for embedded systems
Software update for embedded systems
SZ Lin
 
Software update for IoT: the current state of play
Software update for IoT: the current state of play
Chris Simmonds
 
TDC2017 - Embedded Linux - Deploy Software Update for Linux Devices
TDC2017 - Embedded Linux - Deploy Software Update for Linux Devices
Caio Pereira
 
Software update for IoT Embedded World 2017
Software update for IoT Embedded World 2017
Chris Simmonds
 
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Odinot Stanislas
 
Docker Roadshow 2016
Docker Roadshow 2016
Docker, Inc.
 
Multi-site Architecture Considerations
Multi-site Architecture Considerations
Platform CF
 
Twelve-Factor App: Software Application Architecture
Twelve-Factor App: Software Application Architecture
Sigfred Balatan Jr.
 
The ultimate guide to software updates on embedded linux devices
The ultimate guide to software updates on embedded linux devices
Mender.io
 
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
ICS
 
software Documentation Certificate in department of computer
software Documentation Certificate in department of computer
shriyanshrauthan833
 
Containers: DevOp Enablers of Technical Solutions
Containers: DevOp Enablers of Technical Solutions
Jules Pierre-Louis
 
What's New in Docker - February 2017
What's New in Docker - February 2017
Patrick Chanezon
 
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
ZNetLive
 
Open source Android 10 on Orange Pi: Meth or Reality?
Open source Android 10 on Orange Pi: Meth or Reality?
GlobalLogic Ukraine
 
Mender: The open-source software update solution
Mender: The open-source software update solution
Mender.io
 
Software Updates for Connected Devices - OSCON 2018
Software Updates for Connected Devices - OSCON 2018
Mender.io
 
Meetup Openshift Geneva 03/10
Meetup Openshift Geneva 03/10
MagaliDavidCruz
 
On-Demand Image Resizing Extended - External Meet-up
On-Demand Image Resizing Extended - External Meet-up
Jonathan Lee
 
Why 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
 
Software update for embedded systems
Software update for embedded systems
SZ Lin
 
Software update for IoT: the current state of play
Software update for IoT: the current state of play
Chris Simmonds
 
TDC2017 - Embedded Linux - Deploy Software Update for Linux Devices
TDC2017 - Embedded Linux - Deploy Software Update for Linux Devices
Caio Pereira
 
Software update for IoT Embedded World 2017
Software update for IoT Embedded World 2017
Chris Simmonds
 
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Odinot Stanislas
 
Docker Roadshow 2016
Docker Roadshow 2016
Docker, Inc.
 
Multi-site Architecture Considerations
Multi-site Architecture Considerations
Platform CF
 
Twelve-Factor App: Software Application Architecture
Twelve-Factor App: Software Application Architecture
Sigfred Balatan Jr.
 
The ultimate guide to software updates on embedded linux devices
The ultimate guide to software updates on embedded linux devices
Mender.io
 
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
ICS
 
software Documentation Certificate in department of computer
software Documentation Certificate in department of computer
shriyanshrauthan833
 
Containers: DevOp Enablers of Technical Solutions
Containers: DevOp Enablers of Technical Solutions
Jules Pierre-Louis
 
What's New in Docker - February 2017
What's New in Docker - February 2017
Patrick Chanezon
 
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
ZNetLive
 
Open source Android 10 on Orange Pi: Meth or Reality?
Open source Android 10 on Orange Pi: Meth or Reality?
GlobalLogic Ukraine
 
Ad

More from Mender.io (16)

IoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSes
Mender.io
 
A 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
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 ...
Mender.io
 
Configuring wifi in open embedded builds
Configuring wifi in open embedded builds
Mender.io
 
IoT 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 images
Mender.io
 
IoT Development from Prototype to Production
IoT Development from Prototype to Production
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 2018
Mender.io
 
Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018
Mender.io
 
Iot development from prototype to production
Iot development from prototype to production
Mender.io
 
Linux 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 2018
Mender.io
 
Mender.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 hardening
Mender.io
 
Mender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io
 
IoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSes
Mender.io
 
A 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
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 ...
Mender.io
 
Configuring wifi in open embedded builds
Configuring wifi in open embedded builds
Mender.io
 
IoT 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 images
Mender.io
 
IoT Development from Prototype to Production
IoT Development from Prototype to Production
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 2018
Mender.io
 
Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018
Mender.io
 
Iot development from prototype to production
Iot development from prototype to production
Mender.io
 
Linux 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 2018
Mender.io
 
Mender.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 hardening
Mender.io
 
Mender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io
 
Ad

Recently uploaded (20)

Streamlining CI/CD with FME Flow: A Practical Guide
Streamlining CI/CD with FME Flow: A Practical Guide
Safe Software
 
Canva Pro Crack Free Download 2025-FREE LATEST
Canva Pro Crack Free Download 2025-FREE LATEST
grete1122g
 
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
2nd Sight Lab
 
Complete WordPress Programming Guidance Book
Complete WordPress Programming Guidance Book
Shabista Imam
 
Zoneranker’s Digital marketing solutions
Zoneranker’s Digital marketing solutions
reenashriee
 
From Data Preparation to Inference: How Alluxio Speeds Up AI
From Data Preparation to Inference: How Alluxio Speeds Up AI
Alluxio, Inc.
 
HYBRIDIZATION OF ALKANES AND ALKENES ...
HYBRIDIZATION OF ALKANES AND ALKENES ...
karishmaduhijod1
 
A Guide to Telemedicine Software Development.pdf
A Guide to Telemedicine Software Development.pdf
Olivero Bozzelli
 
OpenChain Webinar - AboutCode - Practical Compliance in One Stack – Licensing...
OpenChain Webinar - AboutCode - Practical Compliance in One Stack – Licensing...
Shane Coughlan
 
Building Geospatial Data Warehouse for GIS by GIS with FME
Building Geospatial Data Warehouse for GIS by GIS with FME
Safe Software
 
Zoho Creator Solution for EI by Elsner Technologies.docx
Zoho Creator Solution for EI by Elsner Technologies.docx
Elsner Technologies Pvt. Ltd.
 
Microsoft-365-Administrator-s-Guide1.pdf
Microsoft-365-Administrator-s-Guide1.pdf
mazharatknl
 
arctitecture application system design os dsa
arctitecture application system design os dsa
za241967
 
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
arabelatso
 
Best Practice for LLM Serving in the Cloud
Best Practice for LLM Serving in the Cloud
Alluxio, Inc.
 
Azure AI Foundry: The AI app and agent factory
Azure AI Foundry: The AI app and agent factory
Maxim Salnikov
 
On-Device AI: Is It Time to Go All-In, or Do We Still Need the Cloud?
On-Device AI: Is It Time to Go All-In, or Do We Still Need the Cloud?
Hassan Abid
 
Sysinfo OST to PST Converter Infographic
Sysinfo OST to PST Converter Infographic
SysInfo Tools
 
Simplify Task, Team, and Project Management with Orangescrum Work
Simplify Task, Team, and Project Management with Orangescrum Work
Orangescrum
 
Best MLM Compensation Plans for Network Marketing Success in 2025
Best MLM Compensation Plans for Network Marketing Success in 2025
LETSCMS Pvt. Ltd.
 
Streamlining CI/CD with FME Flow: A Practical Guide
Streamlining CI/CD with FME Flow: A Practical Guide
Safe Software
 
Canva Pro Crack Free Download 2025-FREE LATEST
Canva Pro Crack Free Download 2025-FREE LATEST
grete1122g
 
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
2nd Sight Lab
 
Complete WordPress Programming Guidance Book
Complete WordPress Programming Guidance Book
Shabista Imam
 
Zoneranker’s Digital marketing solutions
Zoneranker’s Digital marketing solutions
reenashriee
 
From Data Preparation to Inference: How Alluxio Speeds Up AI
From Data Preparation to Inference: How Alluxio Speeds Up AI
Alluxio, Inc.
 
HYBRIDIZATION OF ALKANES AND ALKENES ...
HYBRIDIZATION OF ALKANES AND ALKENES ...
karishmaduhijod1
 
A Guide to Telemedicine Software Development.pdf
A Guide to Telemedicine Software Development.pdf
Olivero Bozzelli
 
OpenChain Webinar - AboutCode - Practical Compliance in One Stack – Licensing...
OpenChain Webinar - AboutCode - Practical Compliance in One Stack – Licensing...
Shane Coughlan
 
Building Geospatial Data Warehouse for GIS by GIS with FME
Building Geospatial Data Warehouse for GIS by GIS with FME
Safe Software
 
Zoho Creator Solution for EI by Elsner Technologies.docx
Zoho Creator Solution for EI by Elsner Technologies.docx
Elsner Technologies Pvt. Ltd.
 
Microsoft-365-Administrator-s-Guide1.pdf
Microsoft-365-Administrator-s-Guide1.pdf
mazharatknl
 
arctitecture application system design os dsa
arctitecture application system design os dsa
za241967
 
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
arabelatso
 
Best Practice for LLM Serving in the Cloud
Best Practice for LLM Serving in the Cloud
Alluxio, Inc.
 
Azure AI Foundry: The AI app and agent factory
Azure AI Foundry: The AI app and agent factory
Maxim Salnikov
 
On-Device AI: Is It Time to Go All-In, or Do We Still Need the Cloud?
On-Device AI: Is It Time to Go All-In, or Do We Still Need the Cloud?
Hassan Abid
 
Sysinfo OST to PST Converter Infographic
Sysinfo OST to PST Converter Infographic
SysInfo Tools
 
Simplify Task, Team, and Project Management with Orangescrum Work
Simplify Task, Team, and Project Management with Orangescrum Work
Orangescrum
 
Best MLM Compensation Plans for Network Marketing Success in 2025
Best MLM Compensation Plans for Network Marketing Success in 2025
LETSCMS Pvt. Ltd.
 

Mender; the open-source software update solution

  • 1. Drew Moseley Embedded Solutions Architect Mender.io
  • 2. 1. Challenges and motivations 2. Requirements a. Non-functional b. Installer strategies 3. Mender a. Demo and explanations b. Device integration c. Testing d. Community overview Session overview
  • 3. About me Drew Moseley ○ 10 years in Embedded Linux/Yocto development. ○ Longer than that in general Embedded Software. ○ Project Lead and Solutions Architect. [email protected] https://twitter.com/drewmoseley https://www.linkedin.com/in/drewmoseley/ https://twitter.com/mender_io Mender.io ○ Over-the-air update manager for embedded Linux ○ Open source (Apache License, v2) ○ Dual A/B rootfs layout (client) ○ Remote deployment management (server) ○ Under active development
  • 4. We are hiring! Backend Software Engineer Cloud Architect DevOps Engineer Full Stack Software Engineer Embedded/Client Software Engineer Senior QA Engineer
  • 5. Motivating OTA capability Bricked Smart Locks1 Automobiles head units in reboot loop2 Botnets: ● Mirai: Peaked at 600,000 infections ○ DDoS of major sites in late 2016 ○ Intent: Profit ● BrickerBot: “author” claims 10,000,000 infections ○ Abandoned by author in November 2016 ○ Intent: Internet chemotherapy ● Newer ones becoming more sophisticated 1 https://www.extremetech.com/computing/254177-internet-things-smart-locks-bricked-bad-firmware-update 2 https://www.theverge.com/2016/6/7/11879860/lexus-navigation-broken-software-update-bug
  • 6. Connected devices must be remotely updatable ● There will be bugs and vulnerabilities ○ 1-25 per 1000 lines of code* ● … and new features ● … after device is deployed to the field *Source: Steve McConnell, Code Complete Critical- and high-severity security bugs in Linux Source: Ars Technica
  • 7. The embedded environment ● Remote ○ Expensive to reach physically ● Power ○ Battery ○ Unclean shutdown ● Hostile deployment environment ● Product lifetime ○ Some markets 5 - 10 years ● Network ○ Intermittent connectivity ○ Low bandwidth ○ Insecure
  • 8. Requirements 1. Robust and secure a. Rollback b. Signed/trusted images c. Integrity/compatibility checks 2. Atomic updates 3. Support kernel, apps, libraries, DTBs 4. Integrates with existing environments a. Easy to get started 5. Bandwidth consumption 6. Downtime during update
  • 9. Installer strategies 1. In-place 2. Maintenance mode 3. Dual A/B 4. Proxy Bootloader Kernel, initramfs User space Updater
  • 10. Installer strategies 1. In-place 2. Maintenance mode 3. Dual A/B 4. Proxy Bootloader Kernel, initramfs User space Updater
  • 11. Installer strategies 1. In-place 2. Maintenance mode 3. Dual A/B 4. Proxy Bootloader Kernel, initramfs A User space A Updater A User space B Kernel, initramfs B Updater B
  • 12. 1. In-place 2. Maintenance mode 3. Dual A/B 4. Proxy Installer strategies Gateway Remote device (sensor, ECU, etc.) Updater
  • 13. Why did Mender choose image-based updates ● Increased fleet robustness ● Greatly reduced testing matrix ● Ease of rollback ● Atomic updates ● Reproducible deployments
  • 14. Challenges with package-based updates Managing individual packages quickly becomes a logistical nightmare ○ Testing of many combinations of installed packages ○ Installation order not strictly enforced. ○ Partially-installed packages can block installs of new fixed packages
  • 15. Re-use open source tools for remote update management Most companies write their own homegrown updater from scratch (!) Existing free and open source tools can help you Save time and avoid stress (where you can) ○ Initial development ■ It looks so easy! Is it easy? ○ Ongoing maintenance ■ 5 years? 10? 20? ■ 1 product? 5? 10?
  • 16. Generic embedded update workflow Detect update (secure channel) Download (secure channel) Integrity (e.g. checksum) Authenticate (e.g. signature) DecryptExtract Install Failure recovery (e.g. roll back) Compatibility check Sanity checks Post-install actions Pre-install actions Must-have Environment-specific (Re)Start* *E.g. reboot, restart service, start container
  • 17. Mender Mender is an end-to-end open source software update manager for connected devices ● Written in Golang ● Licensed under Apache 2.0 ○ Sources available in github ● End-to-end open-source ○ Backend ○ Management front end ○ Client, tooling, QA ● https://docs.mender.io/
  • 18. Atomic A/B image update TLS communication between client/server Update streamed directly to inactive partition Deployment management Cryptographic signing and verification of updates Customizable to device use cases Artifact tool for creation and management Mender
  • 19. Bootloader Image A (active) U-boot Grub x86 (BIOS/UEFI) Grub ARM Image B (inactive) Data Root file-system Mender client Linux + DTB Automatic rollback with A/B image update
  • 20. Automatic rollback with A/B image update Bootloader Image A (inactive) U-boot Grub x86 (BIOS/UEFI) Grub ARM Image B (active) Data Root file-system Mender client Linux + DTB
  • 21. Mender Devices Users API Gateway TCP 443 DeviceAdm DeviceAuth UserAdm Inventory Deployments GUI Conductor Storage Proxy TCP 9000 Minio MongoDB ElasticSearch Redis Filesystem external clients stateless application layer persistent storage ● Microservices ● Only port 443 and 9000 ● RESTful API ○ Device API ○ Management API /api/management/v1/deployments /api/management/v1/admission /api/management/v1/devauth/ …. https://docs.mender.io/apis/overview Mender Server Architecture
  • 22. Demo environment ○ Quick way to spin up a test server on laptop ○ Demo images ■ qemu ■ Raspberry Pi ■ Beaglebone Black ○ qemux86-64 device ○ Not secure! Production environment ○ Migration instructions on each release https://docs.mender.io/getting-started/create-a-test-environment https://docs.mender.io/administration/production-installation Mender Server
  • 23. Partitions: ○ Boot (optional), Rootfs A, Rootfs B, Data Bootloader integration ○ Control boot process, A or B ○ U-boot, Grub (BIOS/UEFI) ○ U-boot auto-patch feature (fall-back to manual patching) Linux runtime integration ○ Supports eMMC/SD & UBI volumes ○ Mender client application Target OSes supported: ○ Yocto/OpenEmbedded (OOB) ○ Buildroot (somewhat) ○ OpenWRT (somewhat) ○ Debian/Ubuntu/Raspbian (using mender-convert utility) https://docs.mender.io/devices Mender | Device Integration
  • 24. Coming soon Update modules - Spring 2019 ● Updates for microcontrollers, sensors, and other small devices ● In-place updates ● Configuration/calibration updates ● Containers ● Differential updates ● and more...
  • 25. $ git clone -b 1.7.0 https://github.com/mendersoftware/integration.git $ cd integration $ ./up https://docs.mender.io/getting-started/create-a-test-environment Mender | setup demo environment
  • 27. Google Group / Mailing list ○ https://groups.google.com/a/lists.mender.io/forum/#!forum/mender Mender Hub/Forums/Tutorials/Integrations ○ https://hub.mender.io/ #mender @ freenode https://mender.io/developers/developer-portal Mender | Community & Resources