SlideShare a Scribd company logo
@meekrosoft
Continuous Delivery of
Embedded Systems
Mike Long
@meekrosoft
@meekrosoft
But first...
http://ndcoslo.com/page/embedded-c-cpp-and-d
plus...Community Tuesday
Who is Mike Long?
● Doer: Embedded software, CoDe & DevOps
● Trainer: git, jenkins, docker, TDD
● Speaker: coming to a conference near you!
● Manager: Co-owner Praqma, CEO Praqma Norway
@meekrosoft
Agenda:
- What is Continuous Delivery?
- What are the challenges in Embedded?
- What techniques can we take advantage
of?
- How can we test embedded software?
- Who has done this already?
@meekrosofthttps://www.flickr.com/photos/philia17/15601597778/
@meekrosoft
Professional software development
1. Take a copy of the codebase for existing product
2. Carefully document its current algorithms
3. Add changes surrounded by ifdefs
4. Test for months
5. Commit the code as a new project that will “hopefully”
get merged to the in the future
6. Compile on my laptop
7. Ship!
@meekrosoft
What is Continuous
Delivery?
@meekrosoft
Agile Manifesto
● Four doctrines, twelve Principles
# 1
# 7
@meekrosoft
Continuous Integration
@meekrosoft
The ideal Embedded process
1. Fetch the latest source (which is up to date with
release)
2. Branch, implement feature, test
3. Push
4. CI
5. CD
6. Canary deployment
7. Real-time production feedback
@meekrosoft
Release trains
@meekrosoft
Release trains
@meekrosoft
Challenges
@meekrosofthttp://www.lego.com/en-us/minifigures/characters/computer-programmer-0c248844ec9d4245a5c17479a208e45b
Solo work
@meekrosoft
Fire and forget codebases?
@meekrosoft
@meekrosoft
Production-like
environment???
@meekrosoft
@meekrosoft
Versioning
@meekrosoft
The red thread of traceability
We want to know: what it is
compatible with, what it
depends on, where it was
built, what its test results
were, its source version, and
the task that spawned the
change
@meekrosoft
http://semver.org
@meekrosoft
Examples
myapplication-1.0.0-alpha+001.sha.5114f85
Artifact Name
@meekrosoft
Examples
myapplication-1.0.0-alpha+001.sha.5114f85
Major.minor.patch
@meekrosoft
Examples
myapplication-1.0.0-alpha+001.sha.5114f85
Prerelease version
@meekrosoft
Examples
myapplication-1.0.0-alpha+001.sha.5114f85
Build number
@meekrosoft
Examples
myapplication-1.0.0-alpha+001.sha.5114f85
git short SHA
@meekrosoft
Examples
myapplication-1.0.0-SNAPSHOT+001.sha.
5114f85
SNAPSHOT
@meekrosoft
@meekrosoft
@meekrosoft
Build
@meekrosoft
http://blog.codinghorror.com/the-f5-key-is-not-a-build-process/
If your "build process" is
the F5 key, you have a
problem…..Get your build
process out of the IDE and
into a build script.
@meekrosoft
What’s missing?
Traceability: Can I find out exactly the
environment for this build?
Reproducibility: Can I build something from
last year with the same results?
@meekrosoft
@meekrosoft
@meekrosoft
@meekrosoft
A Traceability ecosystem
@meekrosoft
Configuration as code
Linux
slaveLinux
slaveLinux
slaveLinux
slaves
Dockerfile
Vagrant file
Windows
slaves
Puppet file
Windows
slavesWindows
slaves
Jenkins Jobs
JobDSL
@meekrosoft
Build in a box
Jenkins Master
Artifactory
Docker container
Linux
slaveLinux
slaveLinux
slaveLinux
slaveLinux
slaveLinux
slave
Windows
slave
Vagrant VM
Windows
slaveWindows
slaveWindows
slaveWindows
slave
Puppet
Master
@meekrosoft
Testing
@meekrosoft
Airbus engineers employed the latest and greatest
formal methods, and provided model checking and
formal proofs of all of their avionics code.
Meanwhile, according to the story, Boeing
performed extensive design review and testing,
and made all their software engineers fly on the
first test flights. The general upshot of the story
was that most of us (it seemed) felt more
comfortable flying on Boeing aircraft. (It would be
interesting to see if that would still be the majority
opinion in the software engineering community.)
https://www.cerias.purdue.edu/site/blog/post/short_random_thought_on_testing/#When:16:40:35Z
Eugene H. Spafford,
Professor & Executive Director, Purdue University
@meekrosoft
@meekrosoft
System Tests ✓
@meekrosoft
System Tests
- Control power
- Program devices
- Control Actuators
- Sense results
✓
@meekrosoft
System Tests
Component Tests
✓
✓
@meekrosoft
System Tests
Component Tests
✓
✓
✓
@meekrosoft
@meekrosoft
Test everywhere
Test on your host for:
● Feedback speed, debugging
But also test on target because:
● Compilers/hardware are different
● Endiness/overflow/underflow behave
differently
● Ship them if you can!
Continuous delivery of embedded systems   embedded meetup
@meekrosoft
www.xethru.com
ASIC Quality – Continuous Delivery
@meekrosoft
Pro Tips
@meekrosoft
// #ifdef MY_PROD_V1
Avoid using the preprocessor for variants
● It makes builds slow
● Lowers cohesion
● Also hinders understandability
@meekrosoft
Only build your binaries once
Efficiency - time to feedback
Safety - ship what you test
@meekrosoft
Amplify feedback loops
TDD
Red
Refactor
Green
Learn Measure
Build
Produ
ct
Data
Ideas
Continuous Integration
Continuous Delivery
BDD
Automated Deployment
Customer Feedback
@meekrosoft
Dev Env is competitive advantage
Attrition vs.
Late follower vs.
Unhappy customers vs.
Recruitment
First to market
Raving fandom
@meekrosoft
Summary
@meekrosoft
https://www.flickr.com/photos/22423670@N08/14260168597
@meekrosoft
@meekrosoft
The researchers praised Tesla for
the way the vehicle handled the
bogus commands and how the car
maker responded to their findings.
@meekrosoft
In late July, Fiat Chrysler issued a recall
for more than 1.4 million vehicles after
hackers Charlie Miller and Chris Valasek
showed how to use bugs in the onboard
software of the Jeep Cherokee to shut it
down remotely.
@meekrosoft
Agenda:
- What is Continuous Delivery? ✓
- What are the challenges in Embedded? ✓
- What techniques can we take advantage
of? ✓
- How can we test embedded software? ✓
- Who has done this already? ✓
@meekrosoft
Questions?
mike@praqma.com
@meekrosoft

More Related Content

PDF
Continuous Integration 101
PPTX
How to Work Efficiently in a Hybrid Git-Perforce Environment
PDF
Continuous Integration at T3CON08
PDF
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
PPTX
Trunk Based Development in the Enterprise - Its Relevance and Economics
PDF
Porque Odeio Branches
PDF
Continuous integration using Jenkins and Sonar
PDF
Merge hells!! feature toggles to the rescue - Presented @ Agile Toronto
Continuous Integration 101
How to Work Efficiently in a Hybrid Git-Perforce Environment
Continuous Integration at T3CON08
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
Trunk Based Development in the Enterprise - Its Relevance and Economics
Porque Odeio Branches
Continuous integration using Jenkins and Sonar
Merge hells!! feature toggles to the rescue - Presented @ Agile Toronto

What's hot (20)

PDF
Continuous integration and delivery
PDF
Merge hells!! Feature toggles to the rescue - DevOpsDays Madison
PDF
Continuous integration
ZIP
Introduction To Continuous Integration
KEY
Continuous Integration, the minimum viable product
ZIP
Continuous Integration, Build Pipelines and Continuous Deployment
PDF
Continuous Integration (CI) - An effective development practice
PDF
Introduction to CICD
PDF
CICD by Teerapat
PDF
Devops | CICD Pipeline
PDF
Improving software quality using Continuous Integration
PPTX
#speakgell - Continuous Integration in iconnect360
PDF
Test driven development_continuous_integration
PPTX
Effective Code Review (Or How To Alienate Your Coworkers)
PDF
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
PPT
Continuous integration
PPTX
Continuous Testing
PPTX
Continuous Integration
PPTX
Test parallelization using Jenkins
ODP
Continous integration
Continuous integration and delivery
Merge hells!! Feature toggles to the rescue - DevOpsDays Madison
Continuous integration
Introduction To Continuous Integration
Continuous Integration, the minimum viable product
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration (CI) - An effective development practice
Introduction to CICD
CICD by Teerapat
Devops | CICD Pipeline
Improving software quality using Continuous Integration
#speakgell - Continuous Integration in iconnect360
Test driven development_continuous_integration
Effective Code Review (Or How To Alienate Your Coworkers)
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
Continuous integration
Continuous Testing
Continuous Integration
Test parallelization using Jenkins
Continous integration
Ad

Viewers also liked (6)

PDF
Merge hells!! feature toggles to the rescue
PPTX
Serverless Architectures and Continuous Delivery
PPTX
Improve collaboration and confidence with Consumer-driven contracts
PPTX
Continuous Integration for BSP
PDF
Oslo Day of Docker Opening Keynote
PDF
Pipeline conference 2017 - Breaking down your build: architectural patterns f...
Merge hells!! feature toggles to the rescue
Serverless Architectures and Continuous Delivery
Improve collaboration and confidence with Consumer-driven contracts
Continuous Integration for BSP
Oslo Day of Docker Opening Keynote
Pipeline conference 2017 - Breaking down your build: architectural patterns f...
Ad

Similar to Continuous delivery of embedded systems embedded meetup (20)

PDF
Continuous Delivery Testing @HiQ
PDF
DevOps in an Embedded World
PDF
JDD2014: Continuous delivery: capitalizing high quality automated tests - Szc...
PPTX
VMware August 2015
PDF
Agile Testing Days
PPTX
Freedom and Responsibility
PDF
Continuous delivery its not about the technology, its about the people. @sats...
PDF
DOD 2016 - Diogo Oliveira - The OutSystems R&D Continuous Delivery Journey
PPT
Automated Regression Testing for Embedded Systems in Action
PDF
James Lewis: Microservices - Systems That Are #neverdone at I T.A.K.E. Unconf...
PDF
The Frontiers of Continuous Delivery
PDF
Test Driven Design - GDG DevFest Istanbul 2016
PDF
Test Driven Design
PPTX
Continuous Development: Supporting a Release Model
PDF
Big rewrites without big risks
PDF
Flavius Ștef: Big Rewrites Without Big Risks at I T.A.K.E. Unconference
PPTX
Test Driven Development & CI/CD
PDF
Continuous (Non-)Functional Testing of Microservices on K8s
PDF
C++ and Software Engineering 2015
PPTX
Bootstrapping Quality
Continuous Delivery Testing @HiQ
DevOps in an Embedded World
JDD2014: Continuous delivery: capitalizing high quality automated tests - Szc...
VMware August 2015
Agile Testing Days
Freedom and Responsibility
Continuous delivery its not about the technology, its about the people. @sats...
DOD 2016 - Diogo Oliveira - The OutSystems R&D Continuous Delivery Journey
Automated Regression Testing for Embedded Systems in Action
James Lewis: Microservices - Systems That Are #neverdone at I T.A.K.E. Unconf...
The Frontiers of Continuous Delivery
Test Driven Design - GDG DevFest Istanbul 2016
Test Driven Design
Continuous Development: Supporting a Release Model
Big rewrites without big risks
Flavius Ștef: Big Rewrites Without Big Risks at I T.A.K.E. Unconference
Test Driven Development & CI/CD
Continuous (Non-)Functional Testing of Microservices on K8s
C++ and Software Engineering 2015
Bootstrapping Quality

More from Mike Long (10)

PDF
Test Driven Compliance
PDF
Designing a secure software development process with DevOps
PDF
Avoiding the agile alignment trap
PDF
Avoiding the Agile Alignment Trap with DevOps
PPTX
Long Life Software
PPTX
Cleaning Code - Tools and Techniques for Large Legacy Projects
PPTX
Object Calisthenics Refactoring Dojo
PPTX
Metricide
PDF
C++ for Marine Streamer Positioning and Navigation - ACCU 2011
PDF
Unit Testing Legacy C
Test Driven Compliance
Designing a secure software development process with DevOps
Avoiding the agile alignment trap
Avoiding the Agile Alignment Trap with DevOps
Long Life Software
Cleaning Code - Tools and Techniques for Large Legacy Projects
Object Calisthenics Refactoring Dojo
Metricide
C++ for Marine Streamer Positioning and Navigation - ACCU 2011
Unit Testing Legacy C

Recently uploaded (20)

PPTX
Online Work Permit System for Fast Permit Processing
PPTX
ISO 45001 Occupational Health and Safety Management System
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
top salesforce developer skills in 2025.pdf
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Nekopoi APK 2025 free lastest update
PDF
System and Network Administraation Chapter 3
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Digital Strategies for Manufacturing Companies
Online Work Permit System for Fast Permit Processing
ISO 45001 Occupational Health and Safety Management System
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Operating system designcfffgfgggggggvggggggggg
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
CHAPTER 2 - PM Management and IT Context
Navsoft: AI-Powered Business Solutions & Custom Software Development
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Odoo Companies in India – Driving Business Transformation.pdf
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PTS Company Brochure 2025 (1).pdf.......
top salesforce developer skills in 2025.pdf
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Nekopoi APK 2025 free lastest update
System and Network Administraation Chapter 3
Softaken Excel to vCard Converter Software.pdf
Understanding Forklifts - TECH EHS Solution
Digital Strategies for Manufacturing Companies

Continuous delivery of embedded systems embedded meetup