SlideShare a Scribd company logo
1 of 35
Download to read offline
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)
○ System updates with dual A/B rootfs layout
(client)
○ Application updates (docker, deb, files, etc.)
○ Remote deployment management (server)
The Challenge without OTA updates
The update process was:
● Insecure: No authenticity checks
● Manually-intensive: No remote updates
Vehicles had to be updated by one of two ways:
● Bringing the car into the dealership
● Customers mailed a USB drive
A secure and robust OTA update manager for
the entire fleet can automate this
The Challenge with OTA updates
The endless reboot issue affected cars equipped
with the 2017 and 2018 versions of UConnect
Customers lost access to:
● Audio controls
● Heat and A/C
● Heated seats
● Rear-view cameras
Customers reported car batteries were drained
due to the endless reboot
No rollback option or sanity checking to ensure
the successful installation of an update
The Challenge with OTA updates
An open source community with more eyes
reduces the number of vulnerabilities
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
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
Installer strategies
1. In-place
2. Maintenance mode
3. Dual A/B
4. Proxy
Gateway
Remote device
(sensor, ECU, etc.)
Updater
Installer strategies
What is Mender?
Robust and secure end-to-end
over-the-air (OTA) software
update manager for embedded IoT devices
Mender Customers
Company and Team
● Company behind Mender.io (Northern.tech) was founded in 2008
● Extensive experience ensuring security of embedded systems at scale
● Dedicated to bringing a secure best-in-class OTA manager to world’s connected devices
● Highly technical team dedicated in solving customers’ problems in the IoT space
● Relationships with the world’s largest brands
● Offices in San Francisco, USA and Oslo, Norway
Who we are
Mender Partners
Mender is Open Source
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?
Key Features and Benefits - System Updates
Atomic rollback support with a dual A/B partitioning layout
Allows recovery and keeping device operational when updates fail for any reason
Consistent full image atomic updates  
Avoids inconsistencies from partial updates caused by interrupted package installations
Secure TLS client-server communication with code signing
Ensures security with end-to-end signing and verification of artifacts for
authenticity and integrity
Increased fleet robustness
Reproducible deployments means your fleet is running identical code to your test
systems. Reduced testing matrix due to package combinatorics.
Key Features and Benefits - Application Updates
IoT Device
type = deb
file = web1.2.deb
Management Server
Software
Operating System
Update Manager
Update Module: deb
Mender Client
Match package type to
correct Update Module
Application
Install
Application updates
Mender supports “all” kinds of updates
● Packages
● Containers
● Files and directories
● Proxy device deployment
● Full control and customizability
It is very easy to install application-based updates on Debian, Ubuntu
and Raspbian OSes with Mender
Challenges with Applications 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
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
Why Mender
Mender is the only end-to-end open source OTA manager with
both management server and client
○ No vendor lock-in
○ Permissive Apache 2.0 license
○ A healthy peer review mechanism with more eyes on the code to
increase its security
Less reliance on tribal knowledge; less expensive than a
homegrown system
○ Homegrown systems have unpredictable scope, which leads to more
cost and time
○ Reliance on tribal knowledge: if a key person leaves, could cause
serious issues
Mender Hub is the only online community dedicated to enable
OTA on any device and OS
○ Future-proof your product roadmap
Mender Devices
Users
API Gateway
TCP 443
DeviceAuth
UserAdm
Inventory
Deployments
GUI
Workflows
Storage
Proxy
TCP 9000
Minio (optional)
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/v2/devauth
/api/management/v1/inventory
/api/management/v1/deployments
….
https://docs.mender.io/apis/overview
Mender Server Architecture
Managed mode vs standalone mode
Update types:
○ Full image, and delta of full image
○ Incremental (package, file, tarball, container)
○ Proxy
○ others
Partitions: Boot (optional), Rootfs A, Rootfs B, Data, others
Bootloader integration:
○ Controls boot process, A or B
○ Grub (BIOS/UEFI)
○ U-boot w/ auto patching
○ U-boot w/ manual patching
Linux runtime integration:
○ Supports eMMC/SD/block device & UBI volumes
○ Mender client application (as daemon for managed mode)
Target OSes supported:
○ Yocto/OpenEmbedded (OOB)
○ Debian, Raspbian, Ubuntu and other binary distros
○ Buildroot (somewhat)
○ OpenWRT (somewhat)
https://docs.mender.io/devices
Mender | System Integration Requirements
Automatic Rollback With A/B Image Update
Bootloader
Kernel
Persistent data
Application
Device
OS A (active) OS B (inactive)
Kernel
Application
Mender Architecture With Update Modules
● Any type of update
● Update actions implemented in
modules
Mender
Artifact
Mender
Client
2.x
File system
Image
File(s)
Containers
Update
Module
Proxy
firmware
OS A/B
image
● Popular application update types
supported out-of-the-box
Mender - State Scripts
Mender - State Scripts
Mender - State Scripts
Mender - State Scripts
Demo time
Mender is built to scale
Designed for low
infrastructure load
default: update check
every 30 min per device
exponential backoff
separate storage service
for transferring updates
Microservices architecture
for horizontal scaling
application and storage layer
separation
scale individual services
native support for docker and
Kubernetes
Tested with more than
120,000 devices
3 machines, 2 CPUs, 8 GB RAM
demo available online
Open source and commercial offering
● Mender will always support the open source edition
● Follows the “open core” business model
● Basic features relating to adoption and basic usage will always be open source
○ E.g. Board support, OS support, end-to-end update process, client customizability
● Scalability, risk management and security features are commercial offerings
○ E.g. Phased rollout, schedule deployment, permissions, user account management
Mender Plans
Professional Services
Mender-specific
- Integrating the Mender client with your device
- Design of device partition layouts
- Guidance on a scalable Mender backend setup
- Integrate Mender with CI/CD pipeline
- Develop custom use-case specific update scripts
Embedded Linux/Yocto project consulting
- Embedded Linux system design architecture
- Yocto build customizations
- Yocto platform layer development
- Yocto recipe development
- Custom automated build setup
Learn More
Get started now:
https://docs.mender.io/2.0/getting-started
Join the Mender Hub community:
https://hub.mender.io
Mender on Github:
https://github.com/mendersoftware/
contact@mender.io @mender_io /company/mender.iohttps://mender.io/
Questions?
Thank you!
@drewmoseley
https://mender.io
drew.moseley@mender.io

More Related Content

What's hot

Segment routing tutorial
Segment routing tutorialSegment routing tutorial
Segment routing tutorialYi-Sung Chiu
 
IEEE MACSec and NSA ESS: How to Protect Your WAN, LAN and Cloud
IEEE MACSec and NSA ESS: How to  Protect Your WAN, LAN and CloudIEEE MACSec and NSA ESS: How to  Protect Your WAN, LAN and Cloud
IEEE MACSec and NSA ESS: How to Protect Your WAN, LAN and CloudPriyanka Aash
 
IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...
IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...
IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...Kai Wähner
 
OpenFlow tutorial
OpenFlow tutorialOpenFlow tutorial
OpenFlow tutorialopenflow
 
Developing SDN apps in Ryu
Developing SDN apps in RyuDeveloping SDN apps in Ryu
Developing SDN apps in RyuChe Wei Lin
 
VMware NSX and Arista L2 Hardware VTEP Gateway Integration
VMware NSX and Arista L2 Hardware VTEP Gateway IntegrationVMware NSX and Arista L2 Hardware VTEP Gateway Integration
VMware NSX and Arista L2 Hardware VTEP Gateway IntegrationBayu Wibowo
 
ASA Multiple Context Training
ASA Multiple Context TrainingASA Multiple Context Training
ASA Multiple Context TrainingTariq Bader
 
netfilter and iptables
netfilter and iptablesnetfilter and iptables
netfilter and iptablesKernel TLV
 
DevConf 2014 Kernel Networking Walkthrough
DevConf 2014   Kernel Networking WalkthroughDevConf 2014   Kernel Networking Walkthrough
DevConf 2014 Kernel Networking WalkthroughThomas Graf
 
Palo alto networks NAT flow logic
Palo alto networks NAT flow logicPalo alto networks NAT flow logic
Palo alto networks NAT flow logicAlberto Rivai
 
ライブストリーミングの基礎知識
ライブストリーミングの基礎知識ライブストリーミングの基礎知識
ライブストリーミングの基礎知識kumaryu
 
Pentesting layer 2 protocols
Pentesting layer 2 protocolsPentesting layer 2 protocols
Pentesting layer 2 protocolsAbdessamad TEMMAR
 
Introduction to Python Asyncio
Introduction to Python AsyncioIntroduction to Python Asyncio
Introduction to Python AsyncioNathan Van Gheem
 
Kafka used at scale to deliver real-time notifications
Kafka used at scale to deliver real-time notificationsKafka used at scale to deliver real-time notifications
Kafka used at scale to deliver real-time notificationsSérgio Nunes
 
IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向Yuya Rin
 

What's hot (20)

Vpc notes
Vpc notesVpc notes
Vpc notes
 
Segment routing tutorial
Segment routing tutorialSegment routing tutorial
Segment routing tutorial
 
Bgp tutorial for ISP
Bgp tutorial for ISPBgp tutorial for ISP
Bgp tutorial for ISP
 
IEEE MACSec and NSA ESS: How to Protect Your WAN, LAN and Cloud
IEEE MACSec and NSA ESS: How to  Protect Your WAN, LAN and CloudIEEE MACSec and NSA ESS: How to  Protect Your WAN, LAN and Cloud
IEEE MACSec and NSA ESS: How to Protect Your WAN, LAN and Cloud
 
自宅インフラの育て方 第2回
自宅インフラの育て方 第2回自宅インフラの育て方 第2回
自宅インフラの育て方 第2回
 
IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...
IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...
IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...
 
OpenFlow tutorial
OpenFlow tutorialOpenFlow tutorial
OpenFlow tutorial
 
Developing SDN apps in Ryu
Developing SDN apps in RyuDeveloping SDN apps in Ryu
Developing SDN apps in Ryu
 
VMware NSX and Arista L2 Hardware VTEP Gateway Integration
VMware NSX and Arista L2 Hardware VTEP Gateway IntegrationVMware NSX and Arista L2 Hardware VTEP Gateway Integration
VMware NSX and Arista L2 Hardware VTEP Gateway Integration
 
ASA Multiple Context Training
ASA Multiple Context TrainingASA Multiple Context Training
ASA Multiple Context Training
 
netfilter and iptables
netfilter and iptablesnetfilter and iptables
netfilter and iptables
 
DevConf 2014 Kernel Networking Walkthrough
DevConf 2014   Kernel Networking WalkthroughDevConf 2014   Kernel Networking Walkthrough
DevConf 2014 Kernel Networking Walkthrough
 
Ssh tunnel
Ssh tunnelSsh tunnel
Ssh tunnel
 
Default routing
Default routingDefault routing
Default routing
 
Palo alto networks NAT flow logic
Palo alto networks NAT flow logicPalo alto networks NAT flow logic
Palo alto networks NAT flow logic
 
ライブストリーミングの基礎知識
ライブストリーミングの基礎知識ライブストリーミングの基礎知識
ライブストリーミングの基礎知識
 
Pentesting layer 2 protocols
Pentesting layer 2 protocolsPentesting layer 2 protocols
Pentesting layer 2 protocols
 
Introduction to Python Asyncio
Introduction to Python AsyncioIntroduction to Python Asyncio
Introduction to Python Asyncio
 
Kafka used at scale to deliver real-time notifications
Kafka used at scale to deliver real-time notificationsKafka used at scale to deliver real-time notifications
Kafka used at scale to deliver real-time notifications
 
IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向
 

Similar to Mender: The open-source software update solution

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 solutionMender.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 devicesMender.io
 
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...ICS
 
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 2018Mender.io
 
TDC2017 - Embedded Linux - Deploy Software Update for Linux Devices
TDC2017 - Embedded Linux - Deploy Software Update for Linux DevicesTDC2017 - Embedded Linux - Deploy Software Update for Linux Devices
TDC2017 - Embedded Linux - Deploy Software Update for Linux DevicesCaio Pereira
 
Software update for IoT Embedded World 2017
Software update for IoT Embedded World 2017Software update for IoT Embedded World 2017
Software update for IoT Embedded World 2017Chris Simmonds
 
Software update for IoT: the current state of play
Software update for IoT: the current state of playSoftware update for IoT: the current state of play
Software update for IoT: the current state of playChris Simmonds
 
Containers: DevOp Enablers of Technical Solutions
Containers: DevOp Enablers of Technical SolutionsContainers: DevOp Enablers of Technical Solutions
Containers: DevOp Enablers of Technical SolutionsJules Pierre-Louis
 
Demystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data ScientistsDemystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data ScientistsDr Ganesh Iyer
 
Twelve-Factor App: Software Application Architecture
Twelve-Factor App: Software Application ArchitectureTwelve-Factor App: Software Application Architecture
Twelve-Factor App: Software Application ArchitectureSigfred Balatan Jr.
 
Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Simon Storm
 
Adopting agile in an embedded platform Suryakiran Kasturi & Akhil Kumar
Adopting agile in an embedded platform  Suryakiran Kasturi & Akhil KumarAdopting agile in an embedded platform  Suryakiran Kasturi & Akhil Kumar
Adopting agile in an embedded platform Suryakiran Kasturi & Akhil KumarXP Conference India
 
Migrating to Windows 7 or 8 with Lenovo's Deployment Optimization Solutions
Migrating to Windows 7 or 8 with Lenovo's Deployment Optimization SolutionsMigrating to Windows 7 or 8 with Lenovo's Deployment Optimization Solutions
Migrating to Windows 7 or 8 with Lenovo's Deployment Optimization SolutionsLenovo Business
 
Slide DevSecOps Microservices
Slide DevSecOps Microservices Slide DevSecOps Microservices
Slide DevSecOps Microservices Hendri Karisma
 
Exam Microsoft 70-696 Managing Enterprise Devices and Apps Exam
Exam Microsoft 70-696 Managing Enterprise Devices and Apps ExamExam Microsoft 70-696 Managing Enterprise Devices and Apps Exam
Exam Microsoft 70-696 Managing Enterprise Devices and Apps Examlaura beckman
 
Using Docker EE in a CI/CD Workflow
Using Docker EE in a CI/CD WorkflowUsing Docker EE in a CI/CD Workflow
Using Docker EE in a CI/CD WorkflowAshnikbiz
 
Application cloudification with liberty and urban code deploy - UCD
Application cloudification with liberty and urban code deploy - UCDApplication cloudification with liberty and urban code deploy - UCD
Application cloudification with liberty and urban code deploy - UCDDavide Veronese
 
DCSF19 How Docker Simplifies Kubernetes for the Masses
DCSF19 How Docker Simplifies Kubernetes for the Masses  DCSF19 How Docker Simplifies Kubernetes for the Masses
DCSF19 How Docker Simplifies Kubernetes for the Masses Docker, Inc.
 
Net Pipeline on Windows Kubernetes
Net Pipeline on Windows KubernetesNet Pipeline on Windows Kubernetes
Net Pipeline on Windows KubernetesCodefresh
 
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShiftKubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShiftDevOps.com
 

Similar to Mender: The open-source software update solution (20)

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
 
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
 
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...
 
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
 
TDC2017 - Embedded Linux - Deploy Software Update for Linux Devices
TDC2017 - Embedded Linux - Deploy Software Update for Linux DevicesTDC2017 - Embedded Linux - Deploy Software Update for Linux Devices
TDC2017 - Embedded Linux - Deploy Software Update for Linux Devices
 
Software update for IoT Embedded World 2017
Software update for IoT Embedded World 2017Software update for IoT Embedded World 2017
Software update for IoT Embedded World 2017
 
Software update for IoT: the current state of play
Software update for IoT: the current state of playSoftware update for IoT: the current state of play
Software update for IoT: the current state of play
 
Containers: DevOp Enablers of Technical Solutions
Containers: DevOp Enablers of Technical SolutionsContainers: DevOp Enablers of Technical Solutions
Containers: DevOp Enablers of Technical Solutions
 
Demystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data ScientistsDemystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data Scientists
 
Twelve-Factor App: Software Application Architecture
Twelve-Factor App: Software Application ArchitectureTwelve-Factor App: Software Application Architecture
Twelve-Factor App: Software Application Architecture
 
Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14
 
Adopting agile in an embedded platform Suryakiran Kasturi & Akhil Kumar
Adopting agile in an embedded platform  Suryakiran Kasturi & Akhil KumarAdopting agile in an embedded platform  Suryakiran Kasturi & Akhil Kumar
Adopting agile in an embedded platform Suryakiran Kasturi & Akhil Kumar
 
Migrating to Windows 7 or 8 with Lenovo's Deployment Optimization Solutions
Migrating to Windows 7 or 8 with Lenovo's Deployment Optimization SolutionsMigrating to Windows 7 or 8 with Lenovo's Deployment Optimization Solutions
Migrating to Windows 7 or 8 with Lenovo's Deployment Optimization Solutions
 
Slide DevSecOps Microservices
Slide DevSecOps Microservices Slide DevSecOps Microservices
Slide DevSecOps Microservices
 
Exam Microsoft 70-696 Managing Enterprise Devices and Apps Exam
Exam Microsoft 70-696 Managing Enterprise Devices and Apps ExamExam Microsoft 70-696 Managing Enterprise Devices and Apps Exam
Exam Microsoft 70-696 Managing Enterprise Devices and Apps Exam
 
Using Docker EE in a CI/CD Workflow
Using Docker EE in a CI/CD WorkflowUsing Docker EE in a CI/CD Workflow
Using Docker EE in a CI/CD Workflow
 
Application cloudification with liberty and urban code deploy - UCD
Application cloudification with liberty and urban code deploy - UCDApplication cloudification with liberty and urban code deploy - UCD
Application cloudification with liberty and urban code deploy - UCD
 
DCSF19 How Docker Simplifies Kubernetes for the Masses
DCSF19 How Docker Simplifies Kubernetes for the Masses  DCSF19 How Docker Simplifies Kubernetes for the Masses
DCSF19 How Docker Simplifies Kubernetes for the Masses
 
Net Pipeline on Windows Kubernetes
Net Pipeline on Windows KubernetesNet Pipeline on Windows Kubernetes
Net Pipeline on Windows Kubernetes
 
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShiftKubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
 

More from 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 OSesMender.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 devicesMender.io
 
Embedded linux build systems
Embedded linux build systems  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 ...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 buildsConfiguring wifi in open embedded builds
Configuring wifi in open embedded buildsMender.io
 
IoT Prototyping using BBB and Debian
IoT Prototyping using BBB and DebianIoT Prototyping using BBB and Debian
IoT Prototyping using BBB and DebianMender.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_2018Mender.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 imagesMender.io
 
IoT Development from Prototype to Production
IoT Development from Prototype to ProductionIoT Development from Prototype to Production
IoT Development from Prototype to ProductionMender.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 2018Mender.io
 
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 2018Mender.io
 
Iot development from prototype to production
Iot development from prototype to productionIot development from prototype to production
Iot development from prototype to productionMender.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 2018Mender.io
 
Securing the Connected Car - SCaLE 2018
Securing the Connected Car - SCaLE 2018Securing the Connected Car - SCaLE 2018
Securing the Connected Car - SCaLE 2018Mender.io
 
Mender.io | Securing the Connected Car
Mender.io | Securing the Connected CarMender.io | Securing the Connected Car
Mender.io | Securing the Connected CarMender.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 hardeningMender.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 GolangMender.io
 

More from Mender.io (17)

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
 
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
 
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 ...
 
Configuring wifi in open embedded builds
Configuring wifi in open embedded buildsConfiguring wifi in open embedded builds
Configuring wifi in open embedded builds
 
IoT Prototyping using BBB and Debian
IoT Prototyping using BBB and DebianIoT Prototyping using BBB and Debian
IoT Prototyping using BBB and Debian
 
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
 
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
 
IoT Development from Prototype to Production
IoT Development from Prototype to ProductionIoT Development from Prototype to Production
IoT Development from Prototype to Production
 
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
 
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
 
Iot development from prototype to production
Iot development from prototype to productionIot development from prototype to production
Iot development from prototype to production
 
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

Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 

Recently uploaded (20)

Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 

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. 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) ○ System updates with dual A/B rootfs layout (client) ○ Application updates (docker, deb, files, etc.) ○ Remote deployment management (server)
  • 4. The Challenge without OTA updates The update process was: ● Insecure: No authenticity checks ● Manually-intensive: No remote updates Vehicles had to be updated by one of two ways: ● Bringing the car into the dealership ● Customers mailed a USB drive A secure and robust OTA update manager for the entire fleet can automate this
  • 5. The Challenge with OTA updates The endless reboot issue affected cars equipped with the 2017 and 2018 versions of UConnect Customers lost access to: ● Audio controls ● Heat and A/C ● Heated seats ● Rear-view cameras Customers reported car batteries were drained due to the endless reboot No rollback option or sanity checking to ensure the successful installation of an update
  • 6. The Challenge with OTA updates An open source community with more eyes reduces the number of vulnerabilities
  • 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. 1. In-place 2. Maintenance mode 3. Dual A/B 4. Proxy Bootloader Kernel, initramfs User space Updater Installer strategies
  • 11. 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 Installer strategies
  • 12. 1. In-place 2. Maintenance mode 3. Dual A/B 4. Proxy Gateway Remote device (sensor, ECU, etc.) Updater Installer strategies
  • 13. What is Mender? Robust and secure end-to-end over-the-air (OTA) software update manager for embedded IoT devices
  • 14. Mender Customers Company and Team ● Company behind Mender.io (Northern.tech) was founded in 2008 ● Extensive experience ensuring security of embedded systems at scale ● Dedicated to bringing a secure best-in-class OTA manager to world’s connected devices ● Highly technical team dedicated in solving customers’ problems in the IoT space ● Relationships with the world’s largest brands ● Offices in San Francisco, USA and Oslo, Norway Who we are Mender Partners
  • 15. Mender is Open Source 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. Key Features and Benefits - System Updates Atomic rollback support with a dual A/B partitioning layout Allows recovery and keeping device operational when updates fail for any reason Consistent full image atomic updates   Avoids inconsistencies from partial updates caused by interrupted package installations Secure TLS client-server communication with code signing Ensures security with end-to-end signing and verification of artifacts for authenticity and integrity Increased fleet robustness Reproducible deployments means your fleet is running identical code to your test systems. Reduced testing matrix due to package combinatorics.
  • 17. Key Features and Benefits - Application Updates IoT Device type = deb file = web1.2.deb Management Server Software Operating System Update Manager Update Module: deb Mender Client Match package type to correct Update Module Application Install Application updates Mender supports “all” kinds of updates ● Packages ● Containers ● Files and directories ● Proxy device deployment ● Full control and customizability It is very easy to install application-based updates on Debian, Ubuntu and Raspbian OSes with Mender
  • 18. Challenges with Applications 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
  • 19. 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
  • 20. Why Mender Mender is the only end-to-end open source OTA manager with both management server and client ○ No vendor lock-in ○ Permissive Apache 2.0 license ○ A healthy peer review mechanism with more eyes on the code to increase its security Less reliance on tribal knowledge; less expensive than a homegrown system ○ Homegrown systems have unpredictable scope, which leads to more cost and time ○ Reliance on tribal knowledge: if a key person leaves, could cause serious issues Mender Hub is the only online community dedicated to enable OTA on any device and OS ○ Future-proof your product roadmap
  • 21. Mender Devices Users API Gateway TCP 443 DeviceAuth UserAdm Inventory Deployments GUI Workflows Storage Proxy TCP 9000 Minio (optional) 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/v2/devauth /api/management/v1/inventory /api/management/v1/deployments …. https://docs.mender.io/apis/overview Mender Server Architecture
  • 22. Managed mode vs standalone mode Update types: ○ Full image, and delta of full image ○ Incremental (package, file, tarball, container) ○ Proxy ○ others Partitions: Boot (optional), Rootfs A, Rootfs B, Data, others Bootloader integration: ○ Controls boot process, A or B ○ Grub (BIOS/UEFI) ○ U-boot w/ auto patching ○ U-boot w/ manual patching Linux runtime integration: ○ Supports eMMC/SD/block device & UBI volumes ○ Mender client application (as daemon for managed mode) Target OSes supported: ○ Yocto/OpenEmbedded (OOB) ○ Debian, Raspbian, Ubuntu and other binary distros ○ Buildroot (somewhat) ○ OpenWRT (somewhat) https://docs.mender.io/devices Mender | System Integration Requirements
  • 23. Automatic Rollback With A/B Image Update Bootloader Kernel Persistent data Application Device OS A (active) OS B (inactive) Kernel Application
  • 24. Mender Architecture With Update Modules ● Any type of update ● Update actions implemented in modules Mender Artifact Mender Client 2.x File system Image File(s) Containers Update Module Proxy firmware OS A/B image ● Popular application update types supported out-of-the-box
  • 25. Mender - State Scripts
  • 26. Mender - State Scripts
  • 27. Mender - State Scripts
  • 28. Mender - State Scripts
  • 30. Mender is built to scale Designed for low infrastructure load default: update check every 30 min per device exponential backoff separate storage service for transferring updates Microservices architecture for horizontal scaling application and storage layer separation scale individual services native support for docker and Kubernetes Tested with more than 120,000 devices 3 machines, 2 CPUs, 8 GB RAM demo available online
  • 31. Open source and commercial offering ● Mender will always support the open source edition ● Follows the “open core” business model ● Basic features relating to adoption and basic usage will always be open source ○ E.g. Board support, OS support, end-to-end update process, client customizability ● Scalability, risk management and security features are commercial offerings ○ E.g. Phased rollout, schedule deployment, permissions, user account management
  • 33. Professional Services Mender-specific - Integrating the Mender client with your device - Design of device partition layouts - Guidance on a scalable Mender backend setup - Integrate Mender with CI/CD pipeline - Develop custom use-case specific update scripts Embedded Linux/Yocto project consulting - Embedded Linux system design architecture - Yocto build customizations - Yocto platform layer development - Yocto recipe development - Custom automated build setup
  • 34. Learn More Get started now: https://docs.mender.io/2.0/getting-started Join the Mender Hub community: https://hub.mender.io Mender on Github: https://github.com/mendersoftware/ contact@mender.io @mender_io /company/mender.iohttps://mender.io/