SlideShare ist ein Scribd-Unternehmen logo
1 von 33
DEVOPS FOR EMBEDDED
SOFTWARE DEVELOPMENT
Scott Hallock
May 20, 2013
Agenda
• Introduction
• What We Do
• How We Do It
• Strengths and Challenges
Introduction

                            BAIT
• Build, Automation, Integration, and Test
• Continuous integration and automated release for Linux
 software products
  • 3-5 Linux-based operating systems
  • Software releases nearly every day
  • Build Linux from source thousands of times per day
  • Support a worldwide Linux developer community of more than
    1,000
  • More than 50 actively developed codelines
  • Integrate more than 200 code changes per day
Objectives
• High-level overview of embedded DevOps processes and
  practices
• Start an exchange of knowledge between embedded and
  non-embedded DevOps communities
• Interactivity
 • Please interrupt to ask questions
 • Detailed, tangential discussions are welcome
Embedded Development Is Different
• Tools don’t evolve quickly
   • Command line compilers
   • Everybody loves the preprocessor
   • printf debugging
   • Eclipse viewed with suspicion
• Product focus
  • Customers get the code, not just the experience
  • Fix it, ship it, forget it
  • Standard release: zip archive
  • Many similar codelines under active development simultaneously
Continuous Integration



  Review   Build   Deploy   Test   Integrate
Continuous Integration Deployment




• Datacenter-quality hardware
• Rack-mountable form factor
• Stable, controlled operating system and management
  software
• Well-defined power and thermal characteristics
Embedded Continuous Integration



  Review   Build   Load   Test   Integrate
Target Load Challenges




• Developer-quality hardware
• Irregular form factor
• Unstable loading software, boot code, operating system
• Unknown power and thermal characteristics
• Slow and unstable JTAG, USB loading interfaces
Target Load Solutions
• Single controlling server for each target hardware board
• Physical access to production hardware
  • Easily reconfigure physical racks to accommodate novel form
    factors
  • Repair or replace unstable, malfunctioning target hardware
• Fault-tolerant software
  • Lots of retries!
  • Heuristics to infer target state based on observable outputs
• Change the target hardware design
Time Constraints


                          90 minutes


  Review   Build   Load            Test      Integrate

                                15 minutes
Preverification


                    90 minutes, many changes
  Review
            Build      Load         Test       Integrate
   Build

 60
 minutes,
 one
 change
Automated Release



     Build   Test   Approve   git push
Code Change Control: git
• http://git-scm.com
• Distributed is great!
  • Developers can work offline, at customer sites with no network
    access.
  • Collaboration is easier. Everyone has complete history.
git Problems
• Everyone gets everything
  • Do you check in a helper binary every time you change it?
  • Did you accidentally commit some trade secrets and then revert
    them later?
  • Did your developers include an estimate of your customers’
    intelligence in their commit message?
  • You create integration tags fifty times per day.
  • Your continuous integration system creates “temporary” integration
    branches twenty-five times per day.
git Problems
• git trees become unusable over time. Are you garbage
 collecting?
 • On your central repositories?
 • When you mirror your central repositories?
 • On your external release servers?
 • On your Continuous Integration build machines?
git Problems
• Cherry-picking
  • I can just have the two changes I want for today’s release? Great!
  • Breaks all traceability, barring commit message kludges
Codeline Definition: repo
• http://source.android.com/source/using-repo.html
• Allows for many git projects to be combined into a single
  source tree and operated upon as a single entity.
• Developers use it to download and sync code, most use
  git commands for everything else.

<project name=“kernel/msm” path=“kernel”
revision=“refs/heads/msm-3.4” />
<project name=“kernel/lk”
path=“bootable/bootloader/lk”
revision=“refs/heads/master” />
repo: Project Addition



      Build   Test   Approve   git push!!!
repo: Branch Change
<project name=“kernel/msm” path=“kernel”
revision=“refs/heads/msm-3.4” />
<project name=“kernel/lk”
path=“bootable/bootloader/lk”
revision=“refs/heads/master” />

<project name=“kernel/msm” path=“kernel”
revision=“refs/heads/msm-3.4” />
<project name=“kernel/lk”
path=“bootable/bootloader/lk”
revision=“refs/heads/stable” />
repo: Branch Change



     Build   Test   Approve   git push!!!
repo: Branch Change
• Merge?
  • “master” branch contains dozens of bugs. You just merged them
    with your stable branch.
• Force push?
  • Now your customer doesn’t understand what happened to all the
    changes they painstakingly integrated for the last month.
• Create new branch on release server?
  • Customer still has to re-integrate their changes.
  • At least the old branch is available for reference.
• Stop doing that!
  • How am I supposed to make my release?
repo: Shared Branches
customer-1.xml:
<project name=“kernel/msm” path=“kernel”
revision=“refs/heads/msm-3.4” />
<project name=“kernel/lk”
path=“bootable/bootloader/lk”
revision=“refs/heads/customer-1” />
customer-2.xml
<project name=“kernel/msm” path=“kernel”
revision=“refs/heads/msm-3.4” />
<project name=“kernel/lk”
path=“bootable/bootloader/lk”
revision=“refs/heads/customer-2” />
Gerrit: Code Review and More
• https://code.google.com/p/gerrit/
• Code review, access control, source code mirroring
Gerrit: Code Review
• States Tracked:
  • Code Review (-2 - +2): Peer opinion of design and code quality
  • Verified (-1 - +1): Code works at runtime
• Roles
  • Author/Committer
  • Approver
  • Integrator
Gerrit: Access Control
• Most actions in Gerrit are access controlled
  • Code visibility
  • Upload
  • Review
  • Merge
• Access control can be based on users, on local groups, or
  on LDAP groups.
• Access control is complex. Automation is recommended.
Gerrit: Mirroring
                                 Master



                    Slave        Slave          Slave


• Single master
• Slaves can’t mirror to other slaves
• Smart git push based mirroring
  • Better than any mirroring scheme not based on application layer
    knowledge of git
• Errors not handled gracefully
  • Obvious errors are re-queued for later retries
Code Aurora Forum
• http://codeaurora.org
Other Tools
• Electric Commander
  • http://www.electriccloud.com/products/electriccommander.php
• Jira
   • https://www.atlassian.com/software/jira/overview
• BlackDuck
  • http://www.blackducksoftware.com/products/black-duck-suite
• Gitolite
  • http://gitolite.com/gitolite/
Strengths
• Chasing the sun
  • Operational teams in major timezones
  • Handoff procedure is well understood
• Cheap scaling
  • Use simple, dumb tools and relentlessly parallelize
  • Understand where human intervention is inevitable
• Sync, build efficiency
  • Custom software atop repo for very efficient repo syncs
  • Fastest clean builds in the business
• Automated release
  • Very complex branching structure is released automatically multiple
    times per day
Challenge: Source Code Distribution
                            Master



                 Slave      Slave!!!    Slave


• Single master mirroring has scaling limits
  • Git push is CPU intensive
• Gerrit doesn’t report well when a slave is out of sync
  • Custom software needed
• An independent and easily monitored sync solution is
 desired
Challenge: Build Distribution



       Build     Test      Approve   git push

      25GB x    Boulder,
      ~50/day     San
                 Diego,
                 Santa
                 Clara,
                 India,
                 China,
                Korea…
Challenge: Two-Way Integration

             Internal Codeline




            Integrated Codeline




             Partner Codeline

Weitere ähnliche Inhalte

Kürzlich hochgeladen

Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 

Kürzlich hochgeladen (20)

Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 

Empfohlen

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Empfohlen (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

DevOps For Embedded Software Development

  • 1. DEVOPS FOR EMBEDDED SOFTWARE DEVELOPMENT Scott Hallock May 20, 2013
  • 2. Agenda • Introduction • What We Do • How We Do It • Strengths and Challenges
  • 3. Introduction BAIT • Build, Automation, Integration, and Test • Continuous integration and automated release for Linux software products • 3-5 Linux-based operating systems • Software releases nearly every day • Build Linux from source thousands of times per day • Support a worldwide Linux developer community of more than 1,000 • More than 50 actively developed codelines • Integrate more than 200 code changes per day
  • 4. Objectives • High-level overview of embedded DevOps processes and practices • Start an exchange of knowledge between embedded and non-embedded DevOps communities • Interactivity • Please interrupt to ask questions • Detailed, tangential discussions are welcome
  • 5. Embedded Development Is Different • Tools don’t evolve quickly • Command line compilers • Everybody loves the preprocessor • printf debugging • Eclipse viewed with suspicion • Product focus • Customers get the code, not just the experience • Fix it, ship it, forget it • Standard release: zip archive • Many similar codelines under active development simultaneously
  • 6. Continuous Integration Review Build Deploy Test Integrate
  • 7. Continuous Integration Deployment • Datacenter-quality hardware • Rack-mountable form factor • Stable, controlled operating system and management software • Well-defined power and thermal characteristics
  • 8. Embedded Continuous Integration Review Build Load Test Integrate
  • 9. Target Load Challenges • Developer-quality hardware • Irregular form factor • Unstable loading software, boot code, operating system • Unknown power and thermal characteristics • Slow and unstable JTAG, USB loading interfaces
  • 10. Target Load Solutions • Single controlling server for each target hardware board • Physical access to production hardware • Easily reconfigure physical racks to accommodate novel form factors • Repair or replace unstable, malfunctioning target hardware • Fault-tolerant software • Lots of retries! • Heuristics to infer target state based on observable outputs • Change the target hardware design
  • 11. Time Constraints 90 minutes Review Build Load Test Integrate 15 minutes
  • 12. Preverification 90 minutes, many changes Review Build Load Test Integrate Build 60 minutes, one change
  • 13. Automated Release Build Test Approve git push
  • 14. Code Change Control: git • http://git-scm.com • Distributed is great! • Developers can work offline, at customer sites with no network access. • Collaboration is easier. Everyone has complete history.
  • 15. git Problems • Everyone gets everything • Do you check in a helper binary every time you change it? • Did you accidentally commit some trade secrets and then revert them later? • Did your developers include an estimate of your customers’ intelligence in their commit message? • You create integration tags fifty times per day. • Your continuous integration system creates “temporary” integration branches twenty-five times per day.
  • 16. git Problems • git trees become unusable over time. Are you garbage collecting? • On your central repositories? • When you mirror your central repositories? • On your external release servers? • On your Continuous Integration build machines?
  • 17. git Problems • Cherry-picking • I can just have the two changes I want for today’s release? Great! • Breaks all traceability, barring commit message kludges
  • 18. Codeline Definition: repo • http://source.android.com/source/using-repo.html • Allows for many git projects to be combined into a single source tree and operated upon as a single entity. • Developers use it to download and sync code, most use git commands for everything else. <project name=“kernel/msm” path=“kernel” revision=“refs/heads/msm-3.4” /> <project name=“kernel/lk” path=“bootable/bootloader/lk” revision=“refs/heads/master” />
  • 19. repo: Project Addition Build Test Approve git push!!!
  • 20. repo: Branch Change <project name=“kernel/msm” path=“kernel” revision=“refs/heads/msm-3.4” /> <project name=“kernel/lk” path=“bootable/bootloader/lk” revision=“refs/heads/master” /> <project name=“kernel/msm” path=“kernel” revision=“refs/heads/msm-3.4” /> <project name=“kernel/lk” path=“bootable/bootloader/lk” revision=“refs/heads/stable” />
  • 21. repo: Branch Change Build Test Approve git push!!!
  • 22. repo: Branch Change • Merge? • “master” branch contains dozens of bugs. You just merged them with your stable branch. • Force push? • Now your customer doesn’t understand what happened to all the changes they painstakingly integrated for the last month. • Create new branch on release server? • Customer still has to re-integrate their changes. • At least the old branch is available for reference. • Stop doing that! • How am I supposed to make my release?
  • 23. repo: Shared Branches customer-1.xml: <project name=“kernel/msm” path=“kernel” revision=“refs/heads/msm-3.4” /> <project name=“kernel/lk” path=“bootable/bootloader/lk” revision=“refs/heads/customer-1” /> customer-2.xml <project name=“kernel/msm” path=“kernel” revision=“refs/heads/msm-3.4” /> <project name=“kernel/lk” path=“bootable/bootloader/lk” revision=“refs/heads/customer-2” />
  • 24. Gerrit: Code Review and More • https://code.google.com/p/gerrit/ • Code review, access control, source code mirroring
  • 25. Gerrit: Code Review • States Tracked: • Code Review (-2 - +2): Peer opinion of design and code quality • Verified (-1 - +1): Code works at runtime • Roles • Author/Committer • Approver • Integrator
  • 26. Gerrit: Access Control • Most actions in Gerrit are access controlled • Code visibility • Upload • Review • Merge • Access control can be based on users, on local groups, or on LDAP groups. • Access control is complex. Automation is recommended.
  • 27. Gerrit: Mirroring Master Slave Slave Slave • Single master • Slaves can’t mirror to other slaves • Smart git push based mirroring • Better than any mirroring scheme not based on application layer knowledge of git • Errors not handled gracefully • Obvious errors are re-queued for later retries
  • 28. Code Aurora Forum • http://codeaurora.org
  • 29. Other Tools • Electric Commander • http://www.electriccloud.com/products/electriccommander.php • Jira • https://www.atlassian.com/software/jira/overview • BlackDuck • http://www.blackducksoftware.com/products/black-duck-suite • Gitolite • http://gitolite.com/gitolite/
  • 30. Strengths • Chasing the sun • Operational teams in major timezones • Handoff procedure is well understood • Cheap scaling • Use simple, dumb tools and relentlessly parallelize • Understand where human intervention is inevitable • Sync, build efficiency • Custom software atop repo for very efficient repo syncs • Fastest clean builds in the business • Automated release • Very complex branching structure is released automatically multiple times per day
  • 31. Challenge: Source Code Distribution Master Slave Slave!!! Slave • Single master mirroring has scaling limits • Git push is CPU intensive • Gerrit doesn’t report well when a slave is out of sync • Custom software needed • An independent and easily monitored sync solution is desired
  • 32. Challenge: Build Distribution Build Test Approve git push 25GB x Boulder, ~50/day San Diego, Santa Clara, India, China, Korea…
  • 33. Challenge: Two-Way Integration Internal Codeline Integrated Codeline Partner Codeline