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

More Related Content

What's hot (8)

PDF
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...
Edureka!
 
PDF
Webinar: A Total Cost of Ownership Analysis for MongoDB
MongoDB
 
PDF
Software Testing Interview Questions & Answers | Edureka
Edureka!
 
PPTX
JavaScriptでパワポを作ろう
Saki Homma
 
PPTX
Software Testing Life Cycle – A Beginner’s Guide
Syed Hassan Raza
 
PPTX
Robot framework
Rochak Bhalla
 
PDF
Automotive SPICE® 3.0 - What is new and what has changed?
Dominik Strube
 
PPTX
Test Cases Vs Test Scenarios
Sneha Singh
 
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...
Edureka!
 
Webinar: A Total Cost of Ownership Analysis for MongoDB
MongoDB
 
Software Testing Interview Questions & Answers | Edureka
Edureka!
 
JavaScriptでパワポを作ろう
Saki Homma
 
Software Testing Life Cycle – A Beginner’s Guide
Syed Hassan Raza
 
Robot framework
Rochak Bhalla
 
Automotive SPICE® 3.0 - What is new and what has changed?
Dominik Strube
 
Test Cases Vs Test Scenarios
Sneha Singh
 

Similar to DevOps in an Embedded World (20)

PPTX
DevOps and Build Automation
Heiswayi Nrird
 
PDF
How to Attain Business Success with CI_CD Pipeline Automation Testing (1).pdf
kalichargn70th171
 
PPTX
Devops phase-1
G R VISHAL
 
PPTX
Continuous Development: Supporting a Release Model
Perforce
 
PPTX
Keys to continuous testing for faster delivery euro star webinar
TEST Huddle
 
PPTX
Software-Engineering-and-Best-Practices.
Ozias Rondon
 
PPTX
Agile Engineering Sparker GLASScon 2015
Stephen Ritchie
 
PPT
Continuous deployment steve povilaitis
Steve Povilaitis
 
PPTX
Agile testing for embedded software development
Tom Stiehm
 
PDF
Boast the Potential of DevOps with CI CD
Zoe Gilbert
 
PPTX
Agile, DevOps & Test
Qualitest
 
PPTX
Testing in the new age of DevOps
Moataz Mahmoud
 
PDF
Reduce Test Automation Execution Time by 80%
TechWell
 
PPTX
What is dev ops?
Mukta Aphale
 
PDF
DOD 2016 - Diogo Oliveira - The OutSystems R&D Continuous Delivery Journey
PROIDEA
 
PDF
Continuous integration (eng)
Anatoliy Okhotnikov
 
PPTX
(Agile) engineering best practices - What every project manager should know
Richard Cheng
 
PDF
High Performance Software Engineering Teams
Lars Thorup
 
PDF
Ci tips and_tricks_linards_liepins
Linards Liep
 
PPTX
DevOps Overview in my own words
SUBHENDU KARMAKAR
 
DevOps and Build Automation
Heiswayi Nrird
 
How to Attain Business Success with CI_CD Pipeline Automation Testing (1).pdf
kalichargn70th171
 
Devops phase-1
G R VISHAL
 
Continuous Development: Supporting a Release Model
Perforce
 
Keys to continuous testing for faster delivery euro star webinar
TEST Huddle
 
Software-Engineering-and-Best-Practices.
Ozias Rondon
 
Agile Engineering Sparker GLASScon 2015
Stephen Ritchie
 
Continuous deployment steve povilaitis
Steve Povilaitis
 
Agile testing for embedded software development
Tom Stiehm
 
Boast the Potential of DevOps with CI CD
Zoe Gilbert
 
Agile, DevOps & Test
Qualitest
 
Testing in the new age of DevOps
Moataz Mahmoud
 
Reduce Test Automation Execution Time by 80%
TechWell
 
What is dev ops?
Mukta Aphale
 
DOD 2016 - Diogo Oliveira - The OutSystems R&D Continuous Delivery Journey
PROIDEA
 
Continuous integration (eng)
Anatoliy Okhotnikov
 
(Agile) engineering best practices - What every project manager should know
Richard Cheng
 
High Performance Software Engineering Teams
Lars Thorup
 
Ci tips and_tricks_linards_liepins
Linards Liep
 
DevOps Overview in my own words
SUBHENDU KARMAKAR
 
Ad

Recently uploaded (13)

PPTX
原版英国牛津布鲁克斯大学毕业证(OBU毕业证书)如何办理
Taqyea
 
PPTX
expository writivnchjvvbbjkooiyfkkjgffgff
touseefwaraich21
 
PPTX
怎么办StoutLetter美国威斯康星大学斯托特分校本科毕业证,Stout学历证书
Taqyea
 
PPTX
VR jarash VR jarash VR jarash VR jarash.pptx
AbdalkreemZuod
 
PPTX
Hierhxjsnsjdndhjddnjdjhierarrchy chart.pptx
ashishsodhi282
 
PPTX
美国威斯康星大学麦迪逊分校电子版毕业证{UWM学费发票UWM成绩单水印}复刻
Taqyea
 
PPTX
64- thermal analysis .pptxhgfhgghhhthhgyh
grannygo1997
 
PPT
(1) Chemotherapeutic drugs Antimicrobials.ppt
mkurdi133
 
PPTX
英国学位证(LTU毕业证书)利兹三一大学毕业证书如何办理
Taqyea
 
PPTX
BIODIVERSITY and conservation of your life -WPS_Office.pptx
jeebankumarrout1999
 
PPTX
Contingency-Plan-and-Reminders-from-the-PMO.pptx
PrincessCamilleGalle1
 
PPTX
美国学位证(UDel毕业证书)特拉华大学毕业证书如何办理
Taqyea
 
PDF
9. Head injuries.pdfhyuuyyyyyyyyyyyyyyyyy
1154mbbssatish
 
原版英国牛津布鲁克斯大学毕业证(OBU毕业证书)如何办理
Taqyea
 
expository writivnchjvvbbjkooiyfkkjgffgff
touseefwaraich21
 
怎么办StoutLetter美国威斯康星大学斯托特分校本科毕业证,Stout学历证书
Taqyea
 
VR jarash VR jarash VR jarash VR jarash.pptx
AbdalkreemZuod
 
Hierhxjsnsjdndhjddnjdjhierarrchy chart.pptx
ashishsodhi282
 
美国威斯康星大学麦迪逊分校电子版毕业证{UWM学费发票UWM成绩单水印}复刻
Taqyea
 
64- thermal analysis .pptxhgfhgghhhthhgyh
grannygo1997
 
(1) Chemotherapeutic drugs Antimicrobials.ppt
mkurdi133
 
英国学位证(LTU毕业证书)利兹三一大学毕业证书如何办理
Taqyea
 
BIODIVERSITY and conservation of your life -WPS_Office.pptx
jeebankumarrout1999
 
Contingency-Plan-and-Reminders-from-the-PMO.pptx
PrincessCamilleGalle1
 
美国学位证(UDel毕业证书)特拉华大学毕业证书如何办理
Taqyea
 
9. Head injuries.pdfhyuuyyyyyyyyyyyyyyyyy
1154mbbssatish
 
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