SlideShare une entreprise Scribd logo
1  sur  41
Télécharger pour lire hors ligne
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Maintainable Embedded Software
Continuous Delivery of
Mike Long
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
“Continuous Delivery is the
ability to get changes of all
types...into production, or into
the hands of users, safely and
quickly in a sustainable way.”
https://continuousdelivery.com
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
What is Embedded Software?
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Where are the Continuous Delivery Challenges?
Access to Production-like environments Rare
Support lifespan Up to 20 years
Safety critical Often
Regulated markets Often
Release cost High
Deployment Custom
Audit trail requirements (full traceability) Often
Deployment/Product matrix Complex
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
http://code-maturity.praqma.com https://github.com/Praqma/VersionedBinaryArtifacts
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Build the foundations
Step 1
Begin with the standard Continuous Delivery playbook
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
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.
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Development Principles
Component principles:
● Integration and testing of the latest should be automatic
● All binaries should be fully traceable
● Artifacts should be managed
● Metadata should be built into the binary
Release principles:
● Release is a manual decision
● Release binaries can only depend on released components.
● Releases must be maintainable
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Build step 1 Know what you built
build.h
// Generated Tue Mar 14 10:45:56 GMT 2017
#ifndef _BUILD_H_
#define _BUILD_H_
#define BUILD_NUMBER 177
#define BUILD_SHA a1b2080ea2692f536eb95577bca2b9f6d944a018
#define BUILD_JOB "http://jenkins.mycompany.com/job/myjob"
#endif
// Generated Tue Mar 14 10:45:56 GMT 2017
#ifndef _VERSION_H_
#define _VERSION_H_
#define PRODUCT_NAME "VBA_demo"
#define MAJOR_VERSION 1
#define MINOR_VERSION 0
#define PATCH_VERSION 3
#define PRE_RELEASE_VERSION "-SNAPSHOT"
version.h
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Build step 2 Control how it is built
Put the build tools in a safe place. Artifact management systems are a good place for this.
Libs
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Build step 3 Reproducible Builds
Use the same tools everywhere, in development, CI, and release. Defined as code and version controlled.
mycompany/my-cross-compiler:1.3-release
libs
gcc
linker
#Dockerfile
FROM
busybox:1.26.2-glibc
ADD tools.tar.gz
RUN make all
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Tales from the trenches Leif Ove
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Increase safety
Step 2
Build quality into the product
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
“In complex systems, adding
more inspection steps and
approval processes actually
increases the likelihood of future
failures.”
The DevOps Handbook
p. 32
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Build Quality In Test Driven Development
module.c
lib.a
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Build Quality In Hardware in the
loop system testing
This is an investment, requiring unique engineering.
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Build Quality In Static and Dynamic Analysis
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Build Quality In What kind of testing do I need?
This is an investment, requiring unique engineering.
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Increase development efficiency
Step 3
Optimise the flow
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Reuse Managing product variants
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Reuse 1 Build and test avoidance
Reusing components reduces test volume and engineering time
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Component Build
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Component Release
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Component Maintenance
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Component Maintenance release
A Baseline is a container for a configuration of
components chosen from the dev repository
17.1-1.tar.gz
DSP APP
Com
ms
...
Dev
Baseline reside in baseline repositories
17.1-1.tar.gz
DSP App
Com
ms
...
Testing
17.1-1.tar.gz
Repository per environment
Dev Test Qualification Commercialization
Contains
Components
Contains Baselines
Baselines are promoted through environments
Dev Test Qualification Commercialization
Baseline Repository Layout
Dev
Test
17.0-1.zip
17.0-2.zip
16.4-4.zip
17.0-6.zip
17.0-8.zip
Qualification
16.4-4.zip
17.0-6.zip
17.0-8.zip
Commercialization
16.4.zip
17.0.zip
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Extra credit
Step 4
For the high achievers
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Component Auto-incrementing release builds
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
ASIC Quality – Continuous Delivery
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Final thoughts
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
The researchers praised Tesla
for the way the vehicle
handled the bogus commands and
how the car maker responded to
their findings.
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
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.
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
Build the foundations
Increase safety
Increase development efficiency
Summary
Continuous Delivery of Maintainable Embedded Software
www.praqma.com
The Continuous Delivery and DevOps Company

Contenu connexe

Plus de Mike Long

Test Driven Compliance
Test Driven ComplianceTest Driven Compliance
Test Driven ComplianceMike Long
 
Designing a secure software development process with DevOps
Designing a secure software development process with DevOpsDesigning a secure software development process with DevOps
Designing a secure software development process with DevOpsMike Long
 
Avoiding the agile alignment trap
Avoiding the agile alignment trapAvoiding the agile alignment trap
Avoiding the agile alignment trapMike Long
 
Avoiding the Agile Alignment Trap with DevOps
Avoiding the Agile Alignment Trap with DevOpsAvoiding the Agile Alignment Trap with DevOps
Avoiding the Agile Alignment Trap with DevOpsMike Long
 
Continuous delivery of embedded systems embedded meetup
Continuous delivery of embedded systems   embedded meetupContinuous delivery of embedded systems   embedded meetup
Continuous delivery of embedded systems embedded meetupMike Long
 
Long Life Software
Long Life SoftwareLong Life Software
Long Life SoftwareMike Long
 
Cleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy ProjectsCleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy ProjectsMike Long
 
Object Calisthenics Refactoring Dojo
Object Calisthenics Refactoring DojoObject Calisthenics Refactoring Dojo
Object Calisthenics Refactoring DojoMike Long
 
C++ for Marine Streamer Positioning and Navigation - ACCU 2011
C++ for Marine Streamer Positioning and Navigation - ACCU 2011C++ for Marine Streamer Positioning and Navigation - ACCU 2011
C++ for Marine Streamer Positioning and Navigation - ACCU 2011Mike Long
 
Unit Testing Legacy C
Unit Testing Legacy CUnit Testing Legacy C
Unit Testing Legacy CMike Long
 

Plus de Mike Long (11)

Test Driven Compliance
Test Driven ComplianceTest Driven Compliance
Test Driven Compliance
 
Designing a secure software development process with DevOps
Designing a secure software development process with DevOpsDesigning a secure software development process with DevOps
Designing a secure software development process with DevOps
 
Avoiding the agile alignment trap
Avoiding the agile alignment trapAvoiding the agile alignment trap
Avoiding the agile alignment trap
 
Avoiding the Agile Alignment Trap with DevOps
Avoiding the Agile Alignment Trap with DevOpsAvoiding the Agile Alignment Trap with DevOps
Avoiding the Agile Alignment Trap with DevOps
 
Continuous delivery of embedded systems embedded meetup
Continuous delivery of embedded systems   embedded meetupContinuous delivery of embedded systems   embedded meetup
Continuous delivery of embedded systems embedded meetup
 
Long Life Software
Long Life SoftwareLong Life Software
Long Life Software
 
Cleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy ProjectsCleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy Projects
 
Object Calisthenics Refactoring Dojo
Object Calisthenics Refactoring DojoObject Calisthenics Refactoring Dojo
Object Calisthenics Refactoring Dojo
 
Metricide
MetricideMetricide
Metricide
 
C++ for Marine Streamer Positioning and Navigation - ACCU 2011
C++ for Marine Streamer Positioning and Navigation - ACCU 2011C++ for Marine Streamer Positioning and Navigation - ACCU 2011
C++ for Marine Streamer Positioning and Navigation - ACCU 2011
 
Unit Testing Legacy C
Unit Testing Legacy CUnit Testing Legacy C
Unit Testing Legacy C
 

Dernier

Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 

Dernier (20)

Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 

Continuous delivery of maintainable embedded software

  • 1. Continuous Delivery of Maintainable Embedded Software www.praqma.com Maintainable Embedded Software Continuous Delivery of Mike Long
  • 2. Continuous Delivery of Maintainable Embedded Software www.praqma.com “Continuous Delivery is the ability to get changes of all types...into production, or into the hands of users, safely and quickly in a sustainable way.” https://continuousdelivery.com
  • 3. Continuous Delivery of Maintainable Embedded Software www.praqma.com What is Embedded Software?
  • 4. Continuous Delivery of Maintainable Embedded Software www.praqma.com Where are the Continuous Delivery Challenges? Access to Production-like environments Rare Support lifespan Up to 20 years Safety critical Often Regulated markets Often Release cost High Deployment Custom Audit trail requirements (full traceability) Often Deployment/Product matrix Complex
  • 5. Continuous Delivery of Maintainable Embedded Software www.praqma.com http://code-maturity.praqma.com https://github.com/Praqma/VersionedBinaryArtifacts
  • 6. Continuous Delivery of Maintainable Embedded Software www.praqma.com Build the foundations Step 1 Begin with the standard Continuous Delivery playbook
  • 7. Continuous Delivery of Maintainable Embedded Software www.praqma.com 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.
  • 8. Continuous Delivery of Maintainable Embedded Software www.praqma.com
  • 9. Continuous Delivery of Maintainable Embedded Software www.praqma.com Development Principles Component principles: ● Integration and testing of the latest should be automatic ● All binaries should be fully traceable ● Artifacts should be managed ● Metadata should be built into the binary Release principles: ● Release is a manual decision ● Release binaries can only depend on released components. ● Releases must be maintainable
  • 10. Continuous Delivery of Maintainable Embedded Software www.praqma.com Build step 1 Know what you built build.h // Generated Tue Mar 14 10:45:56 GMT 2017 #ifndef _BUILD_H_ #define _BUILD_H_ #define BUILD_NUMBER 177 #define BUILD_SHA a1b2080ea2692f536eb95577bca2b9f6d944a018 #define BUILD_JOB "http://jenkins.mycompany.com/job/myjob" #endif // Generated Tue Mar 14 10:45:56 GMT 2017 #ifndef _VERSION_H_ #define _VERSION_H_ #define PRODUCT_NAME "VBA_demo" #define MAJOR_VERSION 1 #define MINOR_VERSION 0 #define PATCH_VERSION 3 #define PRE_RELEASE_VERSION "-SNAPSHOT" version.h
  • 11. Continuous Delivery of Maintainable Embedded Software www.praqma.com Build step 2 Control how it is built Put the build tools in a safe place. Artifact management systems are a good place for this. Libs
  • 12. Continuous Delivery of Maintainable Embedded Software www.praqma.com Build step 3 Reproducible Builds Use the same tools everywhere, in development, CI, and release. Defined as code and version controlled. mycompany/my-cross-compiler:1.3-release libs gcc linker #Dockerfile FROM busybox:1.26.2-glibc ADD tools.tar.gz RUN make all
  • 13. Continuous Delivery of Maintainable Embedded Software www.praqma.com Tales from the trenches Leif Ove
  • 14. Continuous Delivery of Maintainable Embedded Software www.praqma.com Increase safety Step 2 Build quality into the product
  • 15. Continuous Delivery of Maintainable Embedded Software www.praqma.com “In complex systems, adding more inspection steps and approval processes actually increases the likelihood of future failures.” The DevOps Handbook p. 32
  • 16. Continuous Delivery of Maintainable Embedded Software www.praqma.com Build Quality In Test Driven Development module.c lib.a
  • 17. Continuous Delivery of Maintainable Embedded Software www.praqma.com Build Quality In Hardware in the loop system testing This is an investment, requiring unique engineering.
  • 18. Continuous Delivery of Maintainable Embedded Software www.praqma.com Build Quality In Static and Dynamic Analysis
  • 19. Continuous Delivery of Maintainable Embedded Software www.praqma.com Build Quality In What kind of testing do I need? This is an investment, requiring unique engineering.
  • 20. Continuous Delivery of Maintainable Embedded Software www.praqma.com Increase development efficiency Step 3 Optimise the flow
  • 21. Continuous Delivery of Maintainable Embedded Software www.praqma.com Reuse Managing product variants
  • 22. Continuous Delivery of Maintainable Embedded Software www.praqma.com Reuse 1 Build and test avoidance Reusing components reduces test volume and engineering time
  • 23. Continuous Delivery of Maintainable Embedded Software www.praqma.com Component Build
  • 24. Continuous Delivery of Maintainable Embedded Software www.praqma.com Component Release
  • 25. Continuous Delivery of Maintainable Embedded Software www.praqma.com Component Maintenance
  • 26. Continuous Delivery of Maintainable Embedded Software www.praqma.com Component Maintenance release
  • 27. A Baseline is a container for a configuration of components chosen from the dev repository 17.1-1.tar.gz DSP APP Com ms ... Dev
  • 28. Baseline reside in baseline repositories 17.1-1.tar.gz DSP App Com ms ... Testing 17.1-1.tar.gz
  • 29. Repository per environment Dev Test Qualification Commercialization Contains Components Contains Baselines
  • 30. Baselines are promoted through environments Dev Test Qualification Commercialization
  • 32. Continuous Delivery of Maintainable Embedded Software www.praqma.com Extra credit Step 4 For the high achievers
  • 33. Continuous Delivery of Maintainable Embedded Software www.praqma.com Component Auto-incrementing release builds
  • 34. Continuous Delivery of Maintainable Embedded Software www.praqma.com ASIC Quality – Continuous Delivery
  • 35. Continuous Delivery of Maintainable Embedded Software www.praqma.com Final thoughts
  • 36. Continuous Delivery of Maintainable Embedded Software www.praqma.com
  • 37. Continuous Delivery of Maintainable Embedded Software www.praqma.com
  • 38. Continuous Delivery of Maintainable Embedded Software www.praqma.com The researchers praised Tesla for the way the vehicle handled the bogus commands and how the car maker responded to their findings.
  • 39. Continuous Delivery of Maintainable Embedded Software www.praqma.com 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.
  • 40. Continuous Delivery of Maintainable Embedded Software www.praqma.com Build the foundations Increase safety Increase development efficiency Summary
  • 41. Continuous Delivery of Maintainable Embedded Software www.praqma.com The Continuous Delivery and DevOps Company