SlideShare a Scribd company logo
1 of 52
Download to read offline
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
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
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
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
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

DevOps - Applying Lean & Agile Principles to Operations & More
DevOps - Applying Lean & Agile Principles to Operations & MoreDevOps - Applying Lean & Agile Principles to Operations & More
DevOps - Applying Lean & Agile Principles to Operations & More
Chris Edwards
 

What's hot (20)

Enterprise DevOps: Scaling Build, Deploy, Test, Release
Enterprise DevOps: Scaling Build, Deploy, Test, ReleaseEnterprise DevOps: Scaling Build, Deploy, Test, Release
Enterprise DevOps: Scaling Build, Deploy, Test, Release
 
DevOps and Cloud
DevOps and CloudDevOps and Cloud
DevOps and Cloud
 
Cloud With DevOps Enabling Rapid Business Development
Cloud With DevOps Enabling Rapid Business DevelopmentCloud With DevOps Enabling Rapid Business Development
Cloud With DevOps Enabling Rapid Business Development
 
Applying DevOps, PaaS and cloud for better citizen service outcomes - IBM Fe...
Applying DevOps, PaaS and cloud for better citizen service  outcomes - IBM Fe...Applying DevOps, PaaS and cloud for better citizen service  outcomes - IBM Fe...
Applying DevOps, PaaS and cloud for better citizen service outcomes - IBM Fe...
 
Security and DevOps - Managing Security in a DevOps Enterprise
Security and DevOps - Managing Security in a DevOps EnterpriseSecurity and DevOps - Managing Security in a DevOps Enterprise
Security and DevOps - Managing Security in a DevOps Enterprise
 
DevOps and Cloud Tips and Techniques to Revolutionize Your SDLC
DevOps and Cloud Tips and Techniques to Revolutionize Your SDLCDevOps and Cloud Tips and Techniques to Revolutionize Your SDLC
DevOps and Cloud Tips and Techniques to Revolutionize Your SDLC
 
The DevOps Journey in an Enterprise - DOES 2021
The DevOps Journey in an Enterprise - DOES 2021The DevOps Journey in an Enterprise - DOES 2021
The DevOps Journey in an Enterprise - DOES 2021
 
DevOps - Applying Lean & Agile Principles to Operations & More
DevOps - Applying Lean & Agile Principles to Operations & MoreDevOps - Applying Lean & Agile Principles to Operations & More
DevOps - Applying Lean & Agile Principles to Operations & More
 
Digital Disruption with DevOps - Reference Architecture Overview
Digital Disruption with DevOps - Reference Architecture OverviewDigital Disruption with DevOps - Reference Architecture Overview
Digital Disruption with DevOps - Reference Architecture Overview
 
A True Story of Why QA Loves DevOps
A True Story of Why QA Loves DevOpsA True Story of Why QA Loves DevOps
A True Story of Why QA Loves DevOps
 
Oracle Cloud With Azure DevOps Pipelines
Oracle Cloud With Azure DevOps PipelinesOracle Cloud With Azure DevOps Pipelines
Oracle Cloud With Azure DevOps Pipelines
 
DevOps Patterns Distilled: Implementing The Needed Practices In Practical Steps
DevOps Patterns Distilled: Implementing The Needed Practices In Practical StepsDevOps Patterns Distilled: Implementing The Needed Practices In Practical Steps
DevOps Patterns Distilled: Implementing The Needed Practices In Practical Steps
 
Mastering DevOps Automation: Webinar
Mastering DevOps Automation: WebinarMastering DevOps Automation: Webinar
Mastering DevOps Automation: Webinar
 
Integrating BlueMix into a DevOps pipeline
Integrating BlueMix into a DevOps pipelineIntegrating BlueMix into a DevOps pipeline
Integrating BlueMix into a DevOps pipeline
 
Delivering Applications Continuously to Cloud
Delivering Applications Continuously to CloudDelivering Applications Continuously to Cloud
Delivering Applications Continuously to Cloud
 
The Future of DevOps and UrbanCode
The Future of DevOps and UrbanCodeThe Future of DevOps and UrbanCode
The Future of DevOps and UrbanCode
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
A DevOps adoption playbook- achieving business value at scale
A DevOps adoption playbook- achieving business value at scaleA DevOps adoption playbook- achieving business value at scale
A DevOps adoption playbook- achieving business value at scale
 
AWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applicationsAWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applications
 
Data-Driven DevOps: Improve Velocity and Quality of Software Delivery with Me...
Data-Driven DevOps: Improve Velocity and Quality of Software Delivery with Me...Data-Driven DevOps: Improve Velocity and Quality of Software Delivery with Me...
Data-Driven DevOps: Improve Velocity and Quality of Software Delivery with Me...
 

Similar to DevOps in an Embedded World

Fllow con 2014
Fllow con 2014 Fllow con 2014
Fllow con 2014
gbgruver
 

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
 
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...
 
Continuous integration, delivery & deployment
Continuous integration,  delivery & deploymentContinuous integration,  delivery & deployment
Continuous integration, delivery & deployment
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - Funaro
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014
 
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
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+Ops
 
[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...
 
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
 
Test Driven Development & CI/CD
Test Driven Development & CI/CDTest Driven Development & CI/CD
Test Driven Development & CI/CD
 
Fllow con 2014
Fllow con 2014 Fllow con 2014
Fllow con 2014
 
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
 
Test Driven Development and Automation
Test Driven Development and AutomationTest Driven Development and Automation
Test Driven Development and Automation
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
 
Back To Basics
Back To BasicsBack To Basics
Back To Basics
 
CI/CD for mobile at HERE
CI/CD for mobile at HERECI/CD for mobile at HERE
CI/CD for mobile at HERE
 
Dev/Test scenarios in DevOps world
Dev/Test scenarios in DevOps worldDev/Test scenarios in DevOps world
Dev/Test scenarios in DevOps world
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using Vsts
 
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
 

Recently uploaded

一比一定(购)坎特伯雷大学毕业证(UC毕业证)成绩单学位证
一比一定(购)坎特伯雷大学毕业证(UC毕业证)成绩单学位证一比一定(购)坎特伯雷大学毕业证(UC毕业证)成绩单学位证
一比一定(购)坎特伯雷大学毕业证(UC毕业证)成绩单学位证
wpkuukw
 
在线制作(UQ毕业证书)昆士兰大学毕业证成绩单原版一比一
在线制作(UQ毕业证书)昆士兰大学毕业证成绩单原版一比一在线制作(UQ毕业证书)昆士兰大学毕业证成绩单原版一比一
在线制作(UQ毕业证书)昆士兰大学毕业证成绩单原版一比一
uodye
 
怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证
怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证
怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证
tufbav
 
怎样办理阿德莱德大学毕业证(Adelaide毕业证书)成绩单留信认证
怎样办理阿德莱德大学毕业证(Adelaide毕业证书)成绩单留信认证怎样办理阿德莱德大学毕业证(Adelaide毕业证书)成绩单留信认证
怎样办理阿德莱德大学毕业证(Adelaide毕业证书)成绩单留信认证
ehyxf
 
Top profile Call Girls In Ratlam [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Ratlam [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Ratlam [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Ratlam [ 7014168258 ] Call Me For Genuine Models We...
nirzagarg
 
怎样办理伍伦贡大学毕业证(UOW毕业证书)成绩单留信认证
怎样办理伍伦贡大学毕业证(UOW毕业证书)成绩单留信认证怎样办理伍伦贡大学毕业证(UOW毕业证书)成绩单留信认证
怎样办理伍伦贡大学毕业证(UOW毕业证书)成绩单留信认证
ehyxf
 
一比一维多利亚大学毕业证(victoria毕业证)成绩单学位证如何办理
一比一维多利亚大学毕业证(victoria毕业证)成绩单学位证如何办理一比一维多利亚大学毕业证(victoria毕业证)成绩单学位证如何办理
一比一维多利亚大学毕业证(victoria毕业证)成绩单学位证如何办理
uodye
 
Top profile Call Girls In Palghar [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In Palghar [ 7014168258 ] Call Me For Genuine Models W...Top profile Call Girls In Palghar [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In Palghar [ 7014168258 ] Call Me For Genuine Models W...
gajnagarg
 
怎样办理昆士兰大学毕业证(UQ毕业证书)成绩单留信认证
怎样办理昆士兰大学毕业证(UQ毕业证书)成绩单留信认证怎样办理昆士兰大学毕业证(UQ毕业证书)成绩单留信认证
怎样办理昆士兰大学毕业证(UQ毕业证书)成绩单留信认证
ehyxf
 
在线制作(ANU毕业证书)澳大利亚国立大学毕业证成绩单原版一比一
在线制作(ANU毕业证书)澳大利亚国立大学毕业证成绩单原版一比一在线制作(ANU毕业证书)澳大利亚国立大学毕业证成绩单原版一比一
在线制作(ANU毕业证书)澳大利亚国立大学毕业证成绩单原版一比一
ougvy
 
一比一原版(USYD毕业证书)澳洲悉尼大学毕业证如何办理
一比一原版(USYD毕业证书)澳洲悉尼大学毕业证如何办理一比一原版(USYD毕业证书)澳洲悉尼大学毕业证如何办理
一比一原版(USYD毕业证书)澳洲悉尼大学毕业证如何办理
uodye
 
Abortion Pill for sale in Riyadh ((+918761049707) Get Cytotec in Dammam
Abortion Pill for sale in Riyadh ((+918761049707) Get Cytotec in DammamAbortion Pill for sale in Riyadh ((+918761049707) Get Cytotec in Dammam
Abortion Pill for sale in Riyadh ((+918761049707) Get Cytotec in Dammam
ahmedjiabur940
 
Mankhurd Call Girls, 09167354423 Mankhurd Escorts Services,Mankhurd Female Es...
Mankhurd Call Girls, 09167354423 Mankhurd Escorts Services,Mankhurd Female Es...Mankhurd Call Girls, 09167354423 Mankhurd Escorts Services,Mankhurd Female Es...
Mankhurd Call Girls, 09167354423 Mankhurd Escorts Services,Mankhurd Female Es...
Priya Reddy
 
一比一原版(Otago毕业证书)奥塔哥理工学院毕业证成绩单学位证靠谱定制
一比一原版(Otago毕业证书)奥塔哥理工学院毕业证成绩单学位证靠谱定制一比一原版(Otago毕业证书)奥塔哥理工学院毕业证成绩单学位证靠谱定制
一比一原版(Otago毕业证书)奥塔哥理工学院毕业证成绩单学位证靠谱定制
uodye
 
怎样办理圣芭芭拉分校毕业证(UCSB毕业证书)成绩单留信认证
怎样办理圣芭芭拉分校毕业证(UCSB毕业证书)成绩单留信认证怎样办理圣芭芭拉分校毕业证(UCSB毕业证书)成绩单留信认证
怎样办理圣芭芭拉分校毕业证(UCSB毕业证书)成绩单留信认证
ehyxf
 
一比一定(购)UNITEC理工学院毕业证(UNITEC毕业证)成绩单学位证
一比一定(购)UNITEC理工学院毕业证(UNITEC毕业证)成绩单学位证一比一定(购)UNITEC理工学院毕业证(UNITEC毕业证)成绩单学位证
一比一定(购)UNITEC理工学院毕业证(UNITEC毕业证)成绩单学位证
wpkuukw
 

Recently uploaded (20)

一比一定(购)坎特伯雷大学毕业证(UC毕业证)成绩单学位证
一比一定(购)坎特伯雷大学毕业证(UC毕业证)成绩单学位证一比一定(购)坎特伯雷大学毕业证(UC毕业证)成绩单学位证
一比一定(购)坎特伯雷大学毕业证(UC毕业证)成绩单学位证
 
在线制作(UQ毕业证书)昆士兰大学毕业证成绩单原版一比一
在线制作(UQ毕业证书)昆士兰大学毕业证成绩单原版一比一在线制作(UQ毕业证书)昆士兰大学毕业证成绩单原版一比一
在线制作(UQ毕业证书)昆士兰大学毕业证成绩单原版一比一
 
Critical Commentary Social Work Ethics.pptx
Critical Commentary Social Work Ethics.pptxCritical Commentary Social Work Ethics.pptx
Critical Commentary Social Work Ethics.pptx
 
怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证
怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证
怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证
 
怎样办理阿德莱德大学毕业证(Adelaide毕业证书)成绩单留信认证
怎样办理阿德莱德大学毕业证(Adelaide毕业证书)成绩单留信认证怎样办理阿德莱德大学毕业证(Adelaide毕业证书)成绩单留信认证
怎样办理阿德莱德大学毕业证(Adelaide毕业证书)成绩单留信认证
 
Top profile Call Girls In Ratlam [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Ratlam [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Ratlam [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Ratlam [ 7014168258 ] Call Me For Genuine Models We...
 
怎样办理伍伦贡大学毕业证(UOW毕业证书)成绩单留信认证
怎样办理伍伦贡大学毕业证(UOW毕业证书)成绩单留信认证怎样办理伍伦贡大学毕业证(UOW毕业证书)成绩单留信认证
怎样办理伍伦贡大学毕业证(UOW毕业证书)成绩单留信认证
 
Abortion pills in Jeddah +966572737505 <> buy cytotec <> unwanted kit Saudi A...
Abortion pills in Jeddah +966572737505 <> buy cytotec <> unwanted kit Saudi A...Abortion pills in Jeddah +966572737505 <> buy cytotec <> unwanted kit Saudi A...
Abortion pills in Jeddah +966572737505 <> buy cytotec <> unwanted kit Saudi A...
 
一比一维多利亚大学毕业证(victoria毕业证)成绩单学位证如何办理
一比一维多利亚大学毕业证(victoria毕业证)成绩单学位证如何办理一比一维多利亚大学毕业证(victoria毕业证)成绩单学位证如何办理
一比一维多利亚大学毕业证(victoria毕业证)成绩单学位证如何办理
 
Top profile Call Girls In Palghar [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In Palghar [ 7014168258 ] Call Me For Genuine Models W...Top profile Call Girls In Palghar [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In Palghar [ 7014168258 ] Call Me For Genuine Models W...
 
Point of Care Testing in clinical laboratory
Point of Care Testing in clinical laboratoryPoint of Care Testing in clinical laboratory
Point of Care Testing in clinical laboratory
 
怎样办理昆士兰大学毕业证(UQ毕业证书)成绩单留信认证
怎样办理昆士兰大学毕业证(UQ毕业证书)成绩单留信认证怎样办理昆士兰大学毕业证(UQ毕业证书)成绩单留信认证
怎样办理昆士兰大学毕业证(UQ毕业证书)成绩单留信认证
 
在线制作(ANU毕业证书)澳大利亚国立大学毕业证成绩单原版一比一
在线制作(ANU毕业证书)澳大利亚国立大学毕业证成绩单原版一比一在线制作(ANU毕业证书)澳大利亚国立大学毕业证成绩单原版一比一
在线制作(ANU毕业证书)澳大利亚国立大学毕业证成绩单原版一比一
 
一比一原版(USYD毕业证书)澳洲悉尼大学毕业证如何办理
一比一原版(USYD毕业证书)澳洲悉尼大学毕业证如何办理一比一原版(USYD毕业证书)澳洲悉尼大学毕业证如何办理
一比一原版(USYD毕业证书)澳洲悉尼大学毕业证如何办理
 
Abortion Pill for sale in Riyadh ((+918761049707) Get Cytotec in Dammam
Abortion Pill for sale in Riyadh ((+918761049707) Get Cytotec in DammamAbortion Pill for sale in Riyadh ((+918761049707) Get Cytotec in Dammam
Abortion Pill for sale in Riyadh ((+918761049707) Get Cytotec in Dammam
 
Guwahati Escorts Service Girl ^ 9332606886, WhatsApp Anytime Guwahati
Guwahati Escorts Service Girl ^ 9332606886, WhatsApp Anytime GuwahatiGuwahati Escorts Service Girl ^ 9332606886, WhatsApp Anytime Guwahati
Guwahati Escorts Service Girl ^ 9332606886, WhatsApp Anytime Guwahati
 
Mankhurd Call Girls, 09167354423 Mankhurd Escorts Services,Mankhurd Female Es...
Mankhurd Call Girls, 09167354423 Mankhurd Escorts Services,Mankhurd Female Es...Mankhurd Call Girls, 09167354423 Mankhurd Escorts Services,Mankhurd Female Es...
Mankhurd Call Girls, 09167354423 Mankhurd Escorts Services,Mankhurd Female Es...
 
一比一原版(Otago毕业证书)奥塔哥理工学院毕业证成绩单学位证靠谱定制
一比一原版(Otago毕业证书)奥塔哥理工学院毕业证成绩单学位证靠谱定制一比一原版(Otago毕业证书)奥塔哥理工学院毕业证成绩单学位证靠谱定制
一比一原版(Otago毕业证书)奥塔哥理工学院毕业证成绩单学位证靠谱定制
 
怎样办理圣芭芭拉分校毕业证(UCSB毕业证书)成绩单留信认证
怎样办理圣芭芭拉分校毕业证(UCSB毕业证书)成绩单留信认证怎样办理圣芭芭拉分校毕业证(UCSB毕业证书)成绩单留信认证
怎样办理圣芭芭拉分校毕业证(UCSB毕业证书)成绩单留信认证
 
一比一定(购)UNITEC理工学院毕业证(UNITEC毕业证)成绩单学位证
一比一定(购)UNITEC理工学院毕业证(UNITEC毕业证)成绩单学位证一比一定(购)UNITEC理工学院毕业证(UNITEC毕业证)成绩单学位证
一比一定(购)UNITEC理工学院毕业证(UNITEC毕业证)成绩单学位证
 

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
  • 12.
  • 13.
  • 14.
  • 15.
  • 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
  • 24.
  • 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
  • 27.
  • 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
  • 43.
  • 44.
  • 45.
  • 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