SlideShare a Scribd company logo
DevOps in an
Embedded World
Hello!I’m Sajeewa Dayaratne
sajeewa.com@sajeewa_d mail@sajeewa.com
Some of the products
Challenges in Embedded
Software Development
Hardware!
Resource Constrained
Deal with the
performance implications
Debugging
Learn to debug and deal
with
- OS bugs
- Hardware bug
- UFO bugs
Oscilloscope and JTAG is
your friend
Environment
- Thermal
- Moisture
- Power consumption
Deploying to Production
Why This Talk?
DevOps Community
DevOps in Embedded
Does CI/CD make sense for
Embedded Software
The Principles
High Frequency
Increase the ability to
release software to customers
faster
Reduce Overheads
Reduce the work required to
release features & products
to the market
Improve Defect Resolution
Enable finding defects faster
and as close to the developer
as possible
Automate
Automate all inefficient
manual tasks
Reduce Response Times
Enable developers to respond
to defects faster
A Case Study
DevOps in an Embedded World
DevOps in an Embedded World
DevOps in an Embedded World
DevOps in an Embedded World
Navico R&D Centres
our office
Our Challenges
5,241,912Lines of Code
61Products and counting …
12 12 12
19 19
23 23
28
32
48
50
61
48 49 50 51 52 53 54 55 56 57 58 59
Software Release
Products Supported
“
Our developers never release code.
Rather, it tends to escape, pillaging
the countryside all around.
Complex Networks
Architecture
◍ Old Codebase
◍ Backwards compatibility with older hardware
◍ Continuing to support advancements in new hardware
◍ Desire to provide value to customers (new features on
all products)
Legacy Architecture
All of this meant
◍ Defects were found late
◍ Software stabilisation was taking longer
◍ Manual testing couldn’t keep up with product growth
◍ Costs were increasing (including Opportunity Costs)
◍ We were impacting our ability to innovate
Time
Cost of Finding and Resolving Defects
DevOps in an Embedded World
Does CI/CD provide Answers?
High Frequency
◍ Reduce product release
timeframes
◍ Get new features to
customers faster
Reduce Overheads
◍ Become more efficient
◍ Reduce costs
Improve Defect Resolution
◍ Higher quality software
◍ Better brand perception
◍ More sales!
Automate
◍ Become more efficient
◍ Faster turnaround times
Reduce Response Times
◍ Prevent bugs on top of bugs
◍ Higher quality software
“
Continuous Delivery Sounds Great,
But It Won’t Work Here
DevOps in an Embedded World
Our Plan
Improve Tools & Architecture
Seek integration and flexibility over
compliance and process
Improve Build Speeds
Everything is depends on
faster builds so fix this.
Quality Control Incoming Code
Validate the quality of incoming code
automatically
Automated Testing
Manual testing can’t keep up, focus on
automating as much as possible
“You can have data without information, but you cannot
have information without data - Daniel Keys Moran
Previous VCS
◍ Proprietary tool with limited
support or updates
◍ Extremely limited integration
with other tools
◍ Lack of CI support
◍ No Code Review capability
Improve Tools
Bitbucket/Git
◍ Git!
◍ Integrated Code Reviews
◍ Significantly better
integration with CI
◍ Integration fully supported
with all tools
Improve Architecture
◍ Configurable codebase
◍ Fairly common HW platform
◍ Runtime feature flags
Improve Architecture
◍ Dependency matrix
Improve Architecture
Improve Architecture
◍ Dependency matrix
◍ Remove Cyclic Dependencies
◍ Eliminate Singletons
◍ Promote unit testability
Improve Branching
◍Many Branches – Long Lived – Mega Merges
Testing
Testing
Testing
Testing
Testing
Testing
Improve Branching
◍ Smaller Batch Sizes
◍ Easier to Merge/Test/Review
◍ Validation focused on a single branch
◍ Feature Flags
Testing
Improve Build Speeds
8 Hours
For a Linux Platform Build
14+ Hours
To build and package a release
2 Hours
For each application build
Parallel BuildsIncrease Speed
Tools to look into
◍ ccache/clcache – for improving C++ compilation times
◍ IncrediBuild – faster parallel builds (tight
integration in Visual Studio)
◍ distcc – Open Source (free) alternative to IncrediBuild
0
1
2
3
4
5
6
Average Time To Build (Hours)
Test Automation
DevOps in an Embedded World
DevOps in an Embedded World
DevOps in an Embedded World
So how did we approach this?
◍ Start with micro tests
- Unit Testing (Simulator)
- Unit Testing (Real Hardware)
◍ Build Tools
- Software Tools (N2K Simulator, Remote Control)
- Hardware Tools (Repurpose/Build)
UI Test Automation
◍ Build or Buy
◍ Functional Testing vs API Testing
◍ Utilise HW Test Tools
◍ Execute on Real HW as well as Simulators
◍ BAT vs Full Regression
CI Pipeline
◍ Code Commit -> Pull Request
◍ Automated Build / Unit Tests (on HW)
◍ Merge to Master
◍ Daily Integration Builds on Master for
- All HW platforms
- All Application Variations
◍ Ready for QA.
What’s Next?
◍ Configuration as Code
◍ Code Quality Tools
◍ Simulate More Hardware
◍ Increase Analytics and Reporting
◍ Fully Simulated Test Environments for Dev
◍ Scale – From internal infrastructure to the Cloud
◍ Grow the team (We need you)
CI Pipeline
◍ Code Commit -> Pull Request
◍ Automated Build / Unit Tests/ Functional UI Tests
◍ Automated Architecture / Code Formatting Checks
(SonarCube/clang)
◍ Merge to Master
◍ Daily Integration Builds on Master for
- All HW platforms
- All Application Variations
◍ Full Automated UI Test Coverage
◍ Ready for release.
Lessons Learnt
◍ Culture!
◍ Collect Data
◍ Get Executive Buy-in
◍ Change your Tools and Processes if needed
◍ Test Automation is key
- Invest in HW
- Simulate!
- Virtualise
◍ Focus on Good Software Design for Everything
Thanks!
sajeewa.com@sajeewa_d mail@sajeewa.com
Ad

More Related Content

What's hot (20)

Knime
KnimeKnime
Knime
Amal Targhi
 
2023年手機、NB、伺服器 供應鏈趨勢及市場展望 25NOV22.pdf
2023年手機、NB、伺服器 供應鏈趨勢及市場展望 25NOV22.pdf2023年手機、NB、伺服器 供應鏈趨勢及市場展望 25NOV22.pdf
2023年手機、NB、伺服器 供應鏈趨勢及市場展望 25NOV22.pdf
JTLai1
 
Valuation 2330.TW
Valuation 2330.TWValuation 2330.TW
Valuation 2330.TW
Collaborator
 
MLOps.pptx
MLOps.pptxMLOps.pptx
MLOps.pptx
AllenPeter7
 
Friedenthal.sandford
Friedenthal.sandfordFriedenthal.sandford
Friedenthal.sandford
NASAPMC
 
Unity x 自動運転シミュレーション、自動運転におけるGame Engineの役割
Unity x 自動運転シミュレーション、自動運転におけるGame Engineの役割Unity x 自動運転シミュレーション、自動運転におけるGame Engineの役割
Unity x 自動運転シミュレーション、自動運転におけるGame Engineの役割
Tier_IV
 
Junior_新趨勢_CPO共同封裝技術.pdf
Junior_新趨勢_CPO共同封裝技術.pdfJunior_新趨勢_CPO共同封裝技術.pdf
Junior_新趨勢_CPO共同封裝技術.pdf
Collaborator
 
VR的發展以及應用
VR的發展以及應用VR的發展以及應用
VR的發展以及應用
Collaborator
 
Generative AI to Accelerate Discovery of Materials
Generative AI to Accelerate Discovery of MaterialsGenerative AI to Accelerate Discovery of Materials
Generative AI to Accelerate Discovery of Materials
Deakin University
 
產業:5G手機AP
產業:5G手機AP 產業:5G手機AP
產業:5G手機AP
Collaborator
 
[AI] ML Operationalization with Microsoft Azure
[AI] ML Operationalization with Microsoft Azure[AI] ML Operationalization with Microsoft Azure
[AI] ML Operationalization with Microsoft Azure
Korkrid Akepanidtaworn
 
colla_23H1R1_產業(最終上傳版).pdf
colla_23H1R1_產業(最終上傳版).pdfcolla_23H1R1_產業(最終上傳版).pdf
colla_23H1R1_產業(最終上傳版).pdf
Collaborator
 
產業:美律(2439.TT)
產業:美律(2439.TT)產業:美律(2439.TT)
產業:美律(2439.TT)
Collaborator
 
【個股產業分析】觸控模組產業分析
【個股產業分析】觸控模組產業分析【個股產業分析】觸控模組產業分析
【個股產業分析】觸控模組產業分析
Collaborator
 
MLOps – Applying DevOps to Competitive Advantage
MLOps – Applying DevOps to Competitive AdvantageMLOps – Applying DevOps to Competitive Advantage
MLOps – Applying DevOps to Competitive Advantage
DATAVERSITY
 
矽智財產業報告.pdf
矽智財產業報告.pdf矽智財產業報告.pdf
矽智財產業報告.pdf
Collaborator
 
Node-RED Installer, Standalone Installer using Electron
Node-RED Installer, Standalone Installer using ElectronNode-RED Installer, Standalone Installer using Electron
Node-RED Installer, Standalone Installer using Electron
Hitachi, Ltd. OSS Solution Center.
 
003 How to write 8D Report
003 How to write 8D Report003 How to write 8D Report
003 How to write 8D Report
Fast SiC Semiconductor Inc.
 
Azure Digital Twins.pdf
Azure Digital Twins.pdfAzure Digital Twins.pdf
Azure Digital Twins.pdf
Tomasz Kopacz
 
ISO13485醫材品質管理系統改版重點part 1
ISO13485醫材品質管理系統改版重點part 1ISO13485醫材品質管理系統改版重點part 1
ISO13485醫材品質管理系統改版重點part 1
Fast SiC Semiconductor Inc.
 
2023年手機、NB、伺服器 供應鏈趨勢及市場展望 25NOV22.pdf
2023年手機、NB、伺服器 供應鏈趨勢及市場展望 25NOV22.pdf2023年手機、NB、伺服器 供應鏈趨勢及市場展望 25NOV22.pdf
2023年手機、NB、伺服器 供應鏈趨勢及市場展望 25NOV22.pdf
JTLai1
 
Friedenthal.sandford
Friedenthal.sandfordFriedenthal.sandford
Friedenthal.sandford
NASAPMC
 
Unity x 自動運転シミュレーション、自動運転におけるGame Engineの役割
Unity x 自動運転シミュレーション、自動運転におけるGame Engineの役割Unity x 自動運転シミュレーション、自動運転におけるGame Engineの役割
Unity x 自動運転シミュレーション、自動運転におけるGame Engineの役割
Tier_IV
 
Junior_新趨勢_CPO共同封裝技術.pdf
Junior_新趨勢_CPO共同封裝技術.pdfJunior_新趨勢_CPO共同封裝技術.pdf
Junior_新趨勢_CPO共同封裝技術.pdf
Collaborator
 
VR的發展以及應用
VR的發展以及應用VR的發展以及應用
VR的發展以及應用
Collaborator
 
Generative AI to Accelerate Discovery of Materials
Generative AI to Accelerate Discovery of MaterialsGenerative AI to Accelerate Discovery of Materials
Generative AI to Accelerate Discovery of Materials
Deakin University
 
產業:5G手機AP
產業:5G手機AP 產業:5G手機AP
產業:5G手機AP
Collaborator
 
[AI] ML Operationalization with Microsoft Azure
[AI] ML Operationalization with Microsoft Azure[AI] ML Operationalization with Microsoft Azure
[AI] ML Operationalization with Microsoft Azure
Korkrid Akepanidtaworn
 
colla_23H1R1_產業(最終上傳版).pdf
colla_23H1R1_產業(最終上傳版).pdfcolla_23H1R1_產業(最終上傳版).pdf
colla_23H1R1_產業(最終上傳版).pdf
Collaborator
 
產業:美律(2439.TT)
產業:美律(2439.TT)產業:美律(2439.TT)
產業:美律(2439.TT)
Collaborator
 
【個股產業分析】觸控模組產業分析
【個股產業分析】觸控模組產業分析【個股產業分析】觸控模組產業分析
【個股產業分析】觸控模組產業分析
Collaborator
 
MLOps – Applying DevOps to Competitive Advantage
MLOps – Applying DevOps to Competitive AdvantageMLOps – Applying DevOps to Competitive Advantage
MLOps – Applying DevOps to Competitive Advantage
DATAVERSITY
 
矽智財產業報告.pdf
矽智財產業報告.pdf矽智財產業報告.pdf
矽智財產業報告.pdf
Collaborator
 
Azure Digital Twins.pdf
Azure Digital Twins.pdfAzure Digital Twins.pdf
Azure Digital Twins.pdf
Tomasz Kopacz
 
ISO13485醫材品質管理系統改版重點part 1
ISO13485醫材品質管理系統改版重點part 1ISO13485醫材品質管理系統改版重點part 1
ISO13485醫材品質管理系統改版重點part 1
Fast SiC Semiconductor Inc.
 

Similar to DevOps in an Embedded World (20)

Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Steve Mercier
 
The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...
The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...
The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...
Burns Sheehan
 
Continuous integration, delivery & deployment
Continuous integration,  delivery & deploymentContinuous integration,  delivery & deployment
Continuous integration, delivery & deployment
Martijn van der Kamp
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - Funaro
Codemotion
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014
David Funaro
 
Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project success
Adam Stephensen
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
Vishal Sahasrabuddhe
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+Ops
Shalu Ahuja
 
[WSO2Con EU 2017] Continuous Integration, Delivery and Deployment: Accelerate...
[WSO2Con EU 2017] Continuous Integration, Delivery and Deployment: Accelerate...[WSO2Con EU 2017] Continuous Integration, Delivery and Deployment: Accelerate...
[WSO2Con EU 2017] Continuous Integration, Delivery and Deployment: Accelerate...
WSO2
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
Sunil Dalal
 
Test Driven Development & CI/CD
Test Driven Development & CI/CDTest Driven Development & CI/CD
Test Driven Development & CI/CD
Shanmuga S Muthu
 
Fllow con 2014
Fllow con 2014 Fllow con 2014
Fllow con 2014
gbgruver
 
Udvid din test portefølje med coded ui test og cloud load test
Udvid din test portefølje med coded ui test og cloud load testUdvid din test portefølje med coded ui test og cloud load test
Udvid din test portefølje med coded ui test og cloud load test
Peter Lindberg
 
Test Driven Development and Automation
Test Driven Development and AutomationTest Driven Development and Automation
Test Driven Development and Automation
Mahesh Salaria
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
David Funaro
 
Back To Basics
Back To BasicsBack To Basics
Back To Basics
kamalikamj
 
CI/CD for mobile at HERE
CI/CD for mobile at HERECI/CD for mobile at HERE
CI/CD for mobile at HERE
Stefan Verhoeff
 
Dev/Test scenarios in DevOps world
Dev/Test scenarios in DevOps worldDev/Test scenarios in DevOps world
Dev/Test scenarios in DevOps world
Davide Benvegnù
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using Vsts
Mohamed Samy
 
deliver:agile - Enable your Agile Team with Continuous Delivery Pipelines
deliver:agile - Enable your Agile Team with Continuous Delivery Pipelinesdeliver:agile - Enable your Agile Team with Continuous Delivery Pipelines
deliver:agile - Enable your Agile Team with Continuous Delivery Pipelines
Esteban Garcia
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Steve Mercier
 
The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...
The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...
The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...
Burns Sheehan
 
Continuous integration, delivery & deployment
Continuous integration,  delivery & deploymentContinuous integration,  delivery & deployment
Continuous integration, delivery & deployment
Martijn van der Kamp
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - Funaro
Codemotion
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014
David Funaro
 
Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project success
Adam Stephensen
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+Ops
Shalu Ahuja
 
[WSO2Con EU 2017] Continuous Integration, Delivery and Deployment: Accelerate...
[WSO2Con EU 2017] Continuous Integration, Delivery and Deployment: Accelerate...[WSO2Con EU 2017] Continuous Integration, Delivery and Deployment: Accelerate...
[WSO2Con EU 2017] Continuous Integration, Delivery and Deployment: Accelerate...
WSO2
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
Sunil Dalal
 
Test Driven Development & CI/CD
Test Driven Development & CI/CDTest Driven Development & CI/CD
Test Driven Development & CI/CD
Shanmuga S Muthu
 
Fllow con 2014
Fllow con 2014 Fllow con 2014
Fllow con 2014
gbgruver
 
Udvid din test portefølje med coded ui test og cloud load test
Udvid din test portefølje med coded ui test og cloud load testUdvid din test portefølje med coded ui test og cloud load test
Udvid din test portefølje med coded ui test og cloud load test
Peter Lindberg
 
Test Driven Development and Automation
Test Driven Development and AutomationTest Driven Development and Automation
Test Driven Development and Automation
Mahesh Salaria
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
David Funaro
 
Back To Basics
Back To BasicsBack To Basics
Back To Basics
kamalikamj
 
CI/CD for mobile at HERE
CI/CD for mobile at HERECI/CD for mobile at HERE
CI/CD for mobile at HERE
Stefan Verhoeff
 
Dev/Test scenarios in DevOps world
Dev/Test scenarios in DevOps worldDev/Test scenarios in DevOps world
Dev/Test scenarios in DevOps world
Davide Benvegnù
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using Vsts
Mohamed Samy
 
deliver:agile - Enable your Agile Team with Continuous Delivery Pipelines
deliver:agile - Enable your Agile Team with Continuous Delivery Pipelinesdeliver:agile - Enable your Agile Team with Continuous Delivery Pipelines
deliver:agile - Enable your Agile Team with Continuous Delivery Pipelines
Esteban Garcia
 
Ad

Recently uploaded (20)

JOINING ILLUMINATI AGENT IN KAMPALA UGANDA CALL ON WHATSAPP+256782561496/0756...
JOINING ILLUMINATI AGENT IN KAMPALA UGANDA CALL ON WHATSAPP+256782561496/0756...JOINING ILLUMINATI AGENT IN KAMPALA UGANDA CALL ON WHATSAPP+256782561496/0756...
JOINING ILLUMINATI AGENT IN KAMPALA UGANDA CALL ON WHATSAPP+256782561496/0756...
REAL ILLUMINATI UGANDA CALL WhatsApp number on0782561496/0756664682
 
REAL ILLUMINATI UGANDA CALL WhatsApp number on0782561496/0756664682
REAL ILLUMINATI UGANDA CALL WhatsApp number on0782561496/0756664682REAL ILLUMINATI UGANDA CALL WhatsApp number on0782561496/0756664682
REAL ILLUMINATI UGANDA CALL WhatsApp number on0782561496/0756664682
REAL ILLUMINATI UGANDA CALL WhatsApp number on0782561496/0756664682
 
ENSA_Module_12 - Network Troubleshooting.pdfchapterchapter-11.pdf.pdf
ENSA_Module_12 - Network Troubleshooting.pdfchapterchapter-11.pdf.pdfENSA_Module_12 - Network Troubleshooting.pdfchapterchapter-11.pdf.pdf
ENSA_Module_12 - Network Troubleshooting.pdfchapterchapter-11.pdf.pdf
edget1
 
DSA 3050 Project busines intelligence and visualisation Presentation.pptx
DSA 3050 Project  busines intelligence and visualisation Presentation.pptxDSA 3050 Project  busines intelligence and visualisation Presentation.pptx
DSA 3050 Project busines intelligence and visualisation Presentation.pptx
saruni1
 
Lecture 1 BASIC TERMINOLOGY of kinematics.ppt
Lecture 1 BASIC TERMINOLOGY of kinematics.pptLecture 1 BASIC TERMINOLOGY of kinematics.ppt
Lecture 1 BASIC TERMINOLOGY of kinematics.ppt
MusniAhmed1
 
Ricoh-Aficio-MP-301SP--301SPF-Parts-Catalog-Europe-66d777e9c05a1.pdf
Ricoh-Aficio-MP-301SP--301SPF-Parts-Catalog-Europe-66d777e9c05a1.pdfRicoh-Aficio-MP-301SP--301SPF-Parts-Catalog-Europe-66d777e9c05a1.pdf
Ricoh-Aficio-MP-301SP--301SPF-Parts-Catalog-Europe-66d777e9c05a1.pdf
MarioAlbertoAcostaAl
 
Py-Slides-1.pptPy-Slides-1.pptPy-Slides-1.pptPy-Slides-1.ppt
Py-Slides-1.pptPy-Slides-1.pptPy-Slides-1.pptPy-Slides-1.pptPy-Slides-1.pptPy-Slides-1.pptPy-Slides-1.pptPy-Slides-1.ppt
Py-Slides-1.pptPy-Slides-1.pptPy-Slides-1.pptPy-Slides-1.ppt
v65176016
 
Week 2 lecture PCD 203skoacolacbabolabiocasoc
Week 2 lecture PCD 203skoacolacbabolabiocasocWeek 2 lecture PCD 203skoacolacbabolabiocasoc
Week 2 lecture PCD 203skoacolacbabolabiocasoc
saidraqb5
 
Parmila_nsnsnjnsnsnnwDevi_Rajbanshi.pptx
Parmila_nsnsnjnsnsnnwDevi_Rajbanshi.pptxParmila_nsnsnjnsnsnnwDevi_Rajbanshi.pptx
Parmila_nsnsnjnsnsnnwDevi_Rajbanshi.pptx
rahulrajbanshi981052
 
Ch 2 The Microprocessor and its Architecture.ppt
Ch 2 The Microprocessor and its Architecture.pptCh 2 The Microprocessor and its Architecture.ppt
Ch 2 The Microprocessor and its Architecture.ppt
ermiasgesgis
 
Concavity_Presentation_Updated.pptx rana
Concavity_Presentation_Updated.pptx ranaConcavity_Presentation_Updated.pptx rana
Concavity_Presentation_Updated.pptx rana
ranamumtaz383
 
Intro to Windows Presentation for CSS NC-2.pptx
Intro to Windows Presentation for CSS NC-2.pptxIntro to Windows Presentation for CSS NC-2.pptx
Intro to Windows Presentation for CSS NC-2.pptx
HelenAvila17
 
Mayur Seminar.pptxbgvyezuvdt as bijvyivutctr
Mayur Seminar.pptxbgvyezuvdt as bijvyivutctrMayur Seminar.pptxbgvyezuvdt as bijvyivutctr
Mayur Seminar.pptxbgvyezuvdt as bijvyivutctr
vaishnavishitole195
 
Spin_LED_Presentation_Mustaqeem_2025.pptx
Spin_LED_Presentation_Mustaqeem_2025.pptxSpin_LED_Presentation_Mustaqeem_2025.pptx
Spin_LED_Presentation_Mustaqeem_2025.pptx
mustaqeemmujahid
 
Crim-Proc-PPT-for-lecture-in-May-2025-Learners.pptx
Crim-Proc-PPT-for-lecture-in-May-2025-Learners.pptxCrim-Proc-PPT-for-lecture-in-May-2025-Learners.pptx
Crim-Proc-PPT-for-lecture-in-May-2025-Learners.pptx
russelrosas
 
Unidad Pedagogica 3ro-4to.documento090904
Unidad Pedagogica 3ro-4to.documento090904Unidad Pedagogica 3ro-4to.documento090904
Unidad Pedagogica 3ro-4to.documento090904
maylingcastro9
 
网上可查学历(美国CU毕业证)康伯斯威尔大学假毕业证
网上可查学历(美国CU毕业证)康伯斯威尔大学假毕业证网上可查学历(美国CU毕业证)康伯斯威尔大学假毕业证
网上可查学历(美国CU毕业证)康伯斯威尔大学假毕业证
Taqyea
 
Chapter Five main management of memory .ppt
Chapter Five main management of memory  .pptChapter Five main management of memory  .ppt
Chapter Five main management of memory .ppt
YoomifTube
 
TR INGLES TECNICO ECCU-211 1[mmmm1].pptx
TR INGLES TECNICO ECCU-211 1[mmmm1].pptxTR INGLES TECNICO ECCU-211 1[mmmm1].pptx
TR INGLES TECNICO ECCU-211 1[mmmm1].pptx
EnocngelArcentalesVa
 
chapter-11.pdfchapter-11.pdfchapter-11.pdfchapter-chapter-11.pdf.pdf
chapter-11.pdfchapter-11.pdfchapter-11.pdfchapter-chapter-11.pdf.pdfchapter-11.pdfchapter-11.pdfchapter-11.pdfchapter-chapter-11.pdf.pdf
chapter-11.pdfchapter-11.pdfchapter-11.pdfchapter-chapter-11.pdf.pdf
edget1
 
ENSA_Module_12 - Network Troubleshooting.pdfchapterchapter-11.pdf.pdf
ENSA_Module_12 - Network Troubleshooting.pdfchapterchapter-11.pdf.pdfENSA_Module_12 - Network Troubleshooting.pdfchapterchapter-11.pdf.pdf
ENSA_Module_12 - Network Troubleshooting.pdfchapterchapter-11.pdf.pdf
edget1
 
DSA 3050 Project busines intelligence and visualisation Presentation.pptx
DSA 3050 Project  busines intelligence and visualisation Presentation.pptxDSA 3050 Project  busines intelligence and visualisation Presentation.pptx
DSA 3050 Project busines intelligence and visualisation Presentation.pptx
saruni1
 
Lecture 1 BASIC TERMINOLOGY of kinematics.ppt
Lecture 1 BASIC TERMINOLOGY of kinematics.pptLecture 1 BASIC TERMINOLOGY of kinematics.ppt
Lecture 1 BASIC TERMINOLOGY of kinematics.ppt
MusniAhmed1
 
Ricoh-Aficio-MP-301SP--301SPF-Parts-Catalog-Europe-66d777e9c05a1.pdf
Ricoh-Aficio-MP-301SP--301SPF-Parts-Catalog-Europe-66d777e9c05a1.pdfRicoh-Aficio-MP-301SP--301SPF-Parts-Catalog-Europe-66d777e9c05a1.pdf
Ricoh-Aficio-MP-301SP--301SPF-Parts-Catalog-Europe-66d777e9c05a1.pdf
MarioAlbertoAcostaAl
 
Py-Slides-1.pptPy-Slides-1.pptPy-Slides-1.pptPy-Slides-1.ppt
Py-Slides-1.pptPy-Slides-1.pptPy-Slides-1.pptPy-Slides-1.pptPy-Slides-1.pptPy-Slides-1.pptPy-Slides-1.pptPy-Slides-1.ppt
Py-Slides-1.pptPy-Slides-1.pptPy-Slides-1.pptPy-Slides-1.ppt
v65176016
 
Week 2 lecture PCD 203skoacolacbabolabiocasoc
Week 2 lecture PCD 203skoacolacbabolabiocasocWeek 2 lecture PCD 203skoacolacbabolabiocasoc
Week 2 lecture PCD 203skoacolacbabolabiocasoc
saidraqb5
 
Parmila_nsnsnjnsnsnnwDevi_Rajbanshi.pptx
Parmila_nsnsnjnsnsnnwDevi_Rajbanshi.pptxParmila_nsnsnjnsnsnnwDevi_Rajbanshi.pptx
Parmila_nsnsnjnsnsnnwDevi_Rajbanshi.pptx
rahulrajbanshi981052
 
Ch 2 The Microprocessor and its Architecture.ppt
Ch 2 The Microprocessor and its Architecture.pptCh 2 The Microprocessor and its Architecture.ppt
Ch 2 The Microprocessor and its Architecture.ppt
ermiasgesgis
 
Concavity_Presentation_Updated.pptx rana
Concavity_Presentation_Updated.pptx ranaConcavity_Presentation_Updated.pptx rana
Concavity_Presentation_Updated.pptx rana
ranamumtaz383
 
Intro to Windows Presentation for CSS NC-2.pptx
Intro to Windows Presentation for CSS NC-2.pptxIntro to Windows Presentation for CSS NC-2.pptx
Intro to Windows Presentation for CSS NC-2.pptx
HelenAvila17
 
Mayur Seminar.pptxbgvyezuvdt as bijvyivutctr
Mayur Seminar.pptxbgvyezuvdt as bijvyivutctrMayur Seminar.pptxbgvyezuvdt as bijvyivutctr
Mayur Seminar.pptxbgvyezuvdt as bijvyivutctr
vaishnavishitole195
 
Spin_LED_Presentation_Mustaqeem_2025.pptx
Spin_LED_Presentation_Mustaqeem_2025.pptxSpin_LED_Presentation_Mustaqeem_2025.pptx
Spin_LED_Presentation_Mustaqeem_2025.pptx
mustaqeemmujahid
 
Crim-Proc-PPT-for-lecture-in-May-2025-Learners.pptx
Crim-Proc-PPT-for-lecture-in-May-2025-Learners.pptxCrim-Proc-PPT-for-lecture-in-May-2025-Learners.pptx
Crim-Proc-PPT-for-lecture-in-May-2025-Learners.pptx
russelrosas
 
Unidad Pedagogica 3ro-4to.documento090904
Unidad Pedagogica 3ro-4to.documento090904Unidad Pedagogica 3ro-4to.documento090904
Unidad Pedagogica 3ro-4to.documento090904
maylingcastro9
 
网上可查学历(美国CU毕业证)康伯斯威尔大学假毕业证
网上可查学历(美国CU毕业证)康伯斯威尔大学假毕业证网上可查学历(美国CU毕业证)康伯斯威尔大学假毕业证
网上可查学历(美国CU毕业证)康伯斯威尔大学假毕业证
Taqyea
 
Chapter Five main management of memory .ppt
Chapter Five main management of memory  .pptChapter Five main management of memory  .ppt
Chapter Five main management of memory .ppt
YoomifTube
 
TR INGLES TECNICO ECCU-211 1[mmmm1].pptx
TR INGLES TECNICO ECCU-211 1[mmmm1].pptxTR INGLES TECNICO ECCU-211 1[mmmm1].pptx
TR INGLES TECNICO ECCU-211 1[mmmm1].pptx
EnocngelArcentalesVa
 
chapter-11.pdfchapter-11.pdfchapter-11.pdfchapter-chapter-11.pdf.pdf
chapter-11.pdfchapter-11.pdfchapter-11.pdfchapter-chapter-11.pdf.pdfchapter-11.pdfchapter-11.pdfchapter-11.pdfchapter-chapter-11.pdf.pdf
chapter-11.pdfchapter-11.pdfchapter-11.pdfchapter-chapter-11.pdf.pdf
edget1
 
Ad

DevOps in an Embedded World

  • 3. Some of the products
  • 4. Challenges in Embedded Software Development Hardware! Resource Constrained Deal with the performance implications Debugging Learn to debug and deal with - OS bugs - Hardware bug - UFO bugs Oscilloscope and JTAG is your friend Environment - Thermal - Moisture - Power consumption
  • 9. Does CI/CD make sense for Embedded Software
  • 10. The Principles High Frequency Increase the ability to release software to customers faster Reduce Overheads Reduce the work required to release features & products to the market Improve Defect Resolution Enable finding defects faster and as close to the developer as possible Automate Automate all inefficient manual tasks Reduce Response Times Enable developers to respond to defects faster
  • 19. 12 12 12 19 19 23 23 28 32 48 50 61 48 49 50 51 52 53 54 55 56 57 58 59 Software Release Products Supported
  • 20. “ Our developers never release code. Rather, it tends to escape, pillaging the countryside all around.
  • 22. Architecture ◍ Old Codebase ◍ Backwards compatibility with older hardware ◍ Continuing to support advancements in new hardware ◍ Desire to provide value to customers (new features on all products) Legacy Architecture
  • 23. All of this meant ◍ Defects were found late ◍ Software stabilisation was taking longer ◍ Manual testing couldn’t keep up with product growth ◍ Costs were increasing (including Opportunity Costs) ◍ We were impacting our ability to innovate Time Cost of Finding and Resolving Defects
  • 25. Does CI/CD provide Answers? High Frequency ◍ Reduce product release timeframes ◍ Get new features to customers faster Reduce Overheads ◍ Become more efficient ◍ Reduce costs Improve Defect Resolution ◍ Higher quality software ◍ Better brand perception ◍ More sales! Automate ◍ Become more efficient ◍ Faster turnaround times Reduce Response Times ◍ Prevent bugs on top of bugs ◍ Higher quality software
  • 26. “ Continuous Delivery Sounds Great, But It Won’t Work Here
  • 28. Our Plan Improve Tools & Architecture Seek integration and flexibility over compliance and process Improve Build Speeds Everything is depends on faster builds so fix this. Quality Control Incoming Code Validate the quality of incoming code automatically Automated Testing Manual testing can’t keep up, focus on automating as much as possible
  • 29. “You can have data without information, but you cannot have information without data - Daniel Keys Moran
  • 30. Previous VCS ◍ Proprietary tool with limited support or updates ◍ Extremely limited integration with other tools ◍ Lack of CI support ◍ No Code Review capability Improve Tools Bitbucket/Git ◍ Git! ◍ Integrated Code Reviews ◍ Significantly better integration with CI ◍ Integration fully supported with all tools
  • 31. Improve Architecture ◍ Configurable codebase ◍ Fairly common HW platform ◍ Runtime feature flags
  • 34. Improve Architecture ◍ Dependency matrix ◍ Remove Cyclic Dependencies ◍ Eliminate Singletons ◍ Promote unit testability
  • 35. Improve Branching ◍Many Branches – Long Lived – Mega Merges Testing Testing Testing Testing Testing Testing
  • 36. Improve Branching ◍ Smaller Batch Sizes ◍ Easier to Merge/Test/Review ◍ Validation focused on a single branch ◍ Feature Flags Testing
  • 38. 8 Hours For a Linux Platform Build 14+ Hours To build and package a release 2 Hours For each application build
  • 40. Tools to look into ◍ ccache/clcache – for improving C++ compilation times ◍ IncrediBuild – faster parallel builds (tight integration in Visual Studio) ◍ distcc – Open Source (free) alternative to IncrediBuild
  • 46. So how did we approach this? ◍ Start with micro tests - Unit Testing (Simulator) - Unit Testing (Real Hardware) ◍ Build Tools - Software Tools (N2K Simulator, Remote Control) - Hardware Tools (Repurpose/Build)
  • 47. UI Test Automation ◍ Build or Buy ◍ Functional Testing vs API Testing ◍ Utilise HW Test Tools ◍ Execute on Real HW as well as Simulators ◍ BAT vs Full Regression
  • 48. CI Pipeline ◍ Code Commit -> Pull Request ◍ Automated Build / Unit Tests (on HW) ◍ Merge to Master ◍ Daily Integration Builds on Master for - All HW platforms - All Application Variations ◍ Ready for QA.
  • 49. What’s Next? ◍ Configuration as Code ◍ Code Quality Tools ◍ Simulate More Hardware ◍ Increase Analytics and Reporting ◍ Fully Simulated Test Environments for Dev ◍ Scale – From internal infrastructure to the Cloud ◍ Grow the team (We need you)
  • 50. CI Pipeline ◍ Code Commit -> Pull Request ◍ Automated Build / Unit Tests/ Functional UI Tests ◍ Automated Architecture / Code Formatting Checks (SonarCube/clang) ◍ Merge to Master ◍ Daily Integration Builds on Master for - All HW platforms - All Application Variations ◍ Full Automated UI Test Coverage ◍ Ready for release.
  • 51. Lessons Learnt ◍ Culture! ◍ Collect Data ◍ Get Executive Buy-in ◍ Change your Tools and Processes if needed ◍ Test Automation is key - Invest in HW - Simulate! - Virtualise ◍ Focus on Good Software Design for Everything
  翻译: