SlideShare ist ein Scribd-Unternehmen logo
1 von 52
Downloaden Sie, um offline zu lesen
Monster Builds
  and How to Tame Them

    Chris Mountford
     chris@atlassian.com

                           1
Source Code
      Build
Working Software
                   2
Truck   Build

 Small

Monster
                  x
                  you
                  are
                  here
                          3
The Monster Build Threat
• Shipping
• Unit Testing
• Integration Testing
• Functional Testing
• Selenium Testing
• Synergy Harnessing

                             4
5
Just JIRA




            6
Just JIRA
(not the biggest)




                    7
Poland
                          Hosted




  Just JIRA           Plugins




              Multi


                                   8
Poland
                          Hosted




  Just JIRA           Plugins




              Multi


                                   9
Wallboards

             10
Build Duration
• release build took 30-60 CPU hours
• supported platform matrix combinations
• 3.5 hour functional test runs

                                           JIRA
                                                  11
Long Builds Cause Low Velocity
   • Context switching overhead
   • Task entanglement
   • Build breakage confusion
   • Agile?


                                  12
13
Taming Monster Build Times
      •optimization
      •matrix culling
      •maximize test power
      •minimize wait time
                             14
15
Optimization
• measure first
• reduce network & disk
  • RAM disks, proxies, colocation
• cut rework
• measure again

                                     16
Example: JIRA Func Tests
   •smarter admin navigation
   •20% speedup



                               17
Matrix Culling
•browsers
•operating systems
•databases
•libraries
                     18
Example: JIRA Matrix Culling
 • user based editions
 • dropped ancient app servers
 • dropped java 1.4
 • release down to 18 hours



                                 19
Power to Wait Ratio
              functional tests

unit tests




                                 20
Be Selectively Continuous
  •common customer configurations
  •branch vs trunk
  •nightly builds
  •sunday builds
                                   21
tests
features
platforms
browsers
versions
  ajax
            22
23
24
Herb Sutter   http://www.gotw.ca/publications/concurrency-ddj.htm

                                                                    25
26
27
Parallelism



              28
Parallelism
                time

agent



Checkout,
 Compile                  Testing

                                    29
time



                       Parallelism
        agent
        agent
        agent
        agent
        agent
        agent
        agent
Checkout,                Testing
        agent
 Compileagent
        agent
        agent


                                     30
The Embarrassingly
 Parallel Problem
        vs.
The Elastic Batches
    of Bamboo!
                      31
15
Inelegant Yet Working




                        32
Inelegant Yet Working
• parametrize your test suite:
  • number of batches
  • current batch number
• make the suite only run subset of tests in the
  requested batch



                                                   33
Inelegant Yet Working




                        34
Inelegant Yet Working




                        35
Need More
Computers!

             36
37
38
Reliability
              39
svn
                             maven 2
            nfs
                              repo


release
                                   maven 1
 build
                                    proxy
 agent

                     JIRA
                                       license
internet
                                        server



           test db           bamboo
                      java
                     blogs


                                                 40
serve



test db           bamboo
           java
          blogs



                              41
$
False Negatives


                  42
43
canary death

               44
45
46
47
Maven vs. Bash




                 48
My technology is
     better


              This ENDS NOW

                              49
Monster Counter-tactics
• measure, optimize, measure
• use power to wait ratio
• elastic parallelization
• canary builds measure reliability
• careful tool evaluation


                                      50
Eternal Vigilance


                    51
Chris Mountford
       JIRA Dude


 chris@atlassian.com


                       52

Weitere ähnliche Inhalte

Was ist angesagt?

Java build tools
Java build toolsJava build tools
Java build tools
Sujit Kumar
 
Continuous Deployment at Disqus (Pylons Minicon)
Continuous Deployment at Disqus (Pylons Minicon)Continuous Deployment at Disqus (Pylons Minicon)
Continuous Deployment at Disqus (Pylons Minicon)
zeeg
 

Was ist angesagt? (14)

Continuous Delivery in the real world - techniques to reduce the developers b...
Continuous Delivery in the real world - techniques to reduce the developers b...Continuous Delivery in the real world - techniques to reduce the developers b...
Continuous Delivery in the real world - techniques to reduce the developers b...
 
Scaling your Jenkins CI pipeline
Scaling your Jenkins CI pipelineScaling your Jenkins CI pipeline
Scaling your Jenkins CI pipeline
 
Deep Dive Modern Apps Lifecycle with Visual Studio 2012: Software Testing wit...
Deep Dive Modern Apps Lifecycle with Visual Studio 2012: Software Testing wit...Deep Dive Modern Apps Lifecycle with Visual Studio 2012: Software Testing wit...
Deep Dive Modern Apps Lifecycle with Visual Studio 2012: Software Testing wit...
 
Java build tools
Java build toolsJava build tools
Java build tools
 
Monufacture: Effortless Test Data for MongoDB
Monufacture: Effortless Test Data for MongoDBMonufacture: Effortless Test Data for MongoDB
Monufacture: Effortless Test Data for MongoDB
 
Cloud infrastructures - Slide Set 6 - BOSH | anynines
Cloud infrastructures - Slide Set 6 - BOSH | anyninesCloud infrastructures - Slide Set 6 - BOSH | anynines
Cloud infrastructures - Slide Set 6 - BOSH | anynines
 
Scaling Engineering with Docker
Scaling Engineering with DockerScaling Engineering with Docker
Scaling Engineering with Docker
 
Pietro Di Bello, Paolo D'Incau - Continuous Delivery su progetti Java: cosa a...
Pietro Di Bello, Paolo D'Incau - Continuous Delivery su progetti Java: cosa a...Pietro Di Bello, Paolo D'Incau - Continuous Delivery su progetti Java: cosa a...
Pietro Di Bello, Paolo D'Incau - Continuous Delivery su progetti Java: cosa a...
 
Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...
Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...
Lessons Learned in Software Development: QA Infrastructure – Maintaining Rob...
 
Distributed Testing Environment
Distributed Testing EnvironmentDistributed Testing Environment
Distributed Testing Environment
 
Continuous Deployment at Disqus (Pylons Minicon)
Continuous Deployment at Disqus (Pylons Minicon)Continuous Deployment at Disqus (Pylons Minicon)
Continuous Deployment at Disqus (Pylons Minicon)
 
Alm 4 Azure with screenshots
Alm 4 Azure with screenshotsAlm 4 Azure with screenshots
Alm 4 Azure with screenshots
 
Dev ops for mobile apps at microsoft teams
Dev ops for mobile apps at microsoft teamsDev ops for mobile apps at microsoft teams
Dev ops for mobile apps at microsoft teams
 
Containerize your Blackbox tests
Containerize your Blackbox testsContainerize your Blackbox tests
Containerize your Blackbox tests
 

Andere mochten auch (8)

Cl 03
Cl 03Cl 03
Cl 03
 
Atlassian's Media Kit
Atlassian's Media KitAtlassian's Media Kit
Atlassian's Media Kit
 
Tempo timesheet demo
Tempo timesheet demoTempo timesheet demo
Tempo timesheet demo
 
Plugins 2.0 & OSGi Gotchas - Atlassian Summit 2010
Plugins 2.0 & OSGi Gotchas - Atlassian Summit 2010Plugins 2.0 & OSGi Gotchas - Atlassian Summit 2010
Plugins 2.0 & OSGi Gotchas - Atlassian Summit 2010
 
Unified AppLinks
Unified AppLinksUnified AppLinks
Unified AppLinks
 
The 3 Things Every New Development Team Needs (and what to avoid like the pla...
The 3 Things Every New Development Team Needs (and what to avoid like the pla...The 3 Things Every New Development Team Needs (and what to avoid like the pla...
The 3 Things Every New Development Team Needs (and what to avoid like the pla...
 
Tempo atlassian unify paris
Tempo atlassian unify parisTempo atlassian unify paris
Tempo atlassian unify paris
 
Because You've Got Questions, You've Got 'Answers': How Atlassian Answers can...
Because You've Got Questions, You've Got 'Answers': How Atlassian Answers can...Because You've Got Questions, You've Got 'Answers': How Atlassian Answers can...
Because You've Got Questions, You've Got 'Answers': How Atlassian Answers can...
 

Ähnlich wie Monster Builds and How to Tame Them - Atlassian Summit 2010

Scaling Continuous Integration in the Cloud
Scaling Continuous Integration in the CloudScaling Continuous Integration in the Cloud
Scaling Continuous Integration in the Cloud
Atlassian
 
Apache Continuum Build, Test, and Release
Apache Continuum Build, Test, and ReleaseApache Continuum Build, Test, and Release
Apache Continuum Build, Test, and Release
elliando dias
 
prdc10-tdd-patterns
prdc10-tdd-patternsprdc10-tdd-patterns
prdc10-tdd-patterns
Amir Barylko
 
Web Developing In Search
Web Developing In SearchWeb Developing In Search
Web Developing In Search
Frank Xu
 
AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing
AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing
AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing
colleenfry
 

Ähnlich wie Monster Builds and How to Tame Them - Atlassian Summit 2010 (20)

Scaling Continuous Integration in the Cloud
Scaling Continuous Integration in the CloudScaling Continuous Integration in the Cloud
Scaling Continuous Integration in the Cloud
 
Performance Tuning: Pulling a Rabbit From a Hat - Atlassian Summit 2010
Performance Tuning: Pulling a Rabbit From a Hat - Atlassian Summit 2010Performance Tuning: Pulling a Rabbit From a Hat - Atlassian Summit 2010
Performance Tuning: Pulling a Rabbit From a Hat - Atlassian Summit 2010
 
Apache Continuum Build, Test, and Release
Apache Continuum Build, Test, and ReleaseApache Continuum Build, Test, and Release
Apache Continuum Build, Test, and Release
 
Heavenly hell – automated tests at scale wojciech seliga
Heavenly hell – automated tests at scale   wojciech seligaHeavenly hell – automated tests at scale   wojciech seliga
Heavenly hell – automated tests at scale wojciech seliga
 
Dev Tools State of the Union (Part II) - Atlassian Summit 2010
Dev Tools State of the Union (Part II) - Atlassian Summit 2010Dev Tools State of the Union (Part II) - Atlassian Summit 2010
Dev Tools State of the Union (Part II) - Atlassian Summit 2010
 
prdc10-tdd-patterns
prdc10-tdd-patternsprdc10-tdd-patterns
prdc10-tdd-patterns
 
Web Developing In Search
Web Developing In SearchWeb Developing In Search
Web Developing In Search
 
Drupal & Continous Integration - SF State Study Case
Drupal & Continous Integration - SF State Study CaseDrupal & Continous Integration - SF State Study Case
Drupal & Continous Integration - SF State Study Case
 
App Dynamics & SOASTA Testing & Monitoring Converge, March 2012
App Dynamics & SOASTA Testing & Monitoring Converge, March 2012App Dynamics & SOASTA Testing & Monitoring Converge, March 2012
App Dynamics & SOASTA Testing & Monitoring Converge, March 2012
 
Escaping Test Hell - Our Journey - XPDays Ukraine 2013
Escaping Test Hell - Our Journey - XPDays Ukraine 2013Escaping Test Hell - Our Journey - XPDays Ukraine 2013
Escaping Test Hell - Our Journey - XPDays Ukraine 2013
 
AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing
AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing
AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing
 
Постоянное тестирование интеграции
Постоянное тестирование интеграцииПостоянное тестирование интеграции
Постоянное тестирование интеграции
 
Jenkins User Meetup - eXo usages of Jenkins
Jenkins User Meetup - eXo usages of JenkinsJenkins User Meetup - eXo usages of Jenkins
Jenkins User Meetup - eXo usages of Jenkins
 
Alm 4 Azure
Alm 4 AzureAlm 4 Azure
Alm 4 Azure
 
2장. Runtime Data Areas
2장. Runtime Data Areas2장. Runtime Data Areas
2장. Runtime Data Areas
 
Testing your code
Testing your codeTesting your code
Testing your code
 
Lrug
LrugLrug
Lrug
 
Testing Tools Classroom Training
Testing Tools Classroom TrainingTesting Tools Classroom Training
Testing Tools Classroom Training
 
Performance Benchmarking: Tips, Tricks, and Lessons Learned
Performance Benchmarking: Tips, Tricks, and Lessons LearnedPerformance Benchmarking: Tips, Tricks, and Lessons Learned
Performance Benchmarking: Tips, Tricks, and Lessons Learned
 
Roll Your Own ServerTemplates
Roll Your Own ServerTemplatesRoll Your Own ServerTemplates
Roll Your Own ServerTemplates
 

Mehr von Atlassian

Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch Plugin
Atlassian
 

Mehr von Atlassian (20)

International Women's Day 2020
International Women's Day 2020International Women's Day 2020
International Women's Day 2020
 
10 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 202010 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 2020
 
Forge App Showcase
Forge App ShowcaseForge App Showcase
Forge App Showcase
 
Let's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UILet's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UI
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge Runtime
 
Forge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceForge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User Experience
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge Triggers
 
Observability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeObservability and Troubleshooting in Forge
Observability and Troubleshooting in Forge
 
Trusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelTrusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy Model
 
Designing Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemDesigning Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI System
 
Forge: Under the Hood
Forge: Under the HoodForge: Under the Hood
Forge: Under the Hood
 
Access to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAccess to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIs
 
Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch Plugin
 
Tear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingTear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the Building
 
Nailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterNailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that Matter
 
Building Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindBuilding Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in Mind
 
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
 
Beyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsBeyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced Teams
 
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamThe Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
 
Building Apps With Enterprise in Mind
Building Apps With Enterprise in MindBuilding Apps With Enterprise in Mind
Building Apps With Enterprise in Mind
 

Kürzlich hochgeladen

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Kürzlich hochgeladen (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

Monster Builds and How to Tame Them - Atlassian Summit 2010