SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
Google Confidential and Proprietary
Continuous Integration at
Google Scale
By John Micco
Developer Infrastructure
Google Confidential and Proprietary
● >30,000 developers in 40+ offices
● 13,000+ projects under active development
● 30k submissions per day (1 every 3 seconds)
● Single monolithic code tree with mixed language code
● Development on one branch - submissions at head
● All builds from source
● 30+ sustained code changes per minute with 90+ peaks
● 50% of code changes monthly
● 150+ million test cases / day, > 150 years of test / day
● Supports continuous deployment for all Google teams!
Speed and Scale
Google Confidential and Proprietary
Overview
1. Continuous Integration Goals
2. Continuous Integration at Google
3. Future of testing
Google Confidential and Proprietary
● Provide real-time information to build monitors
○ Identify failures fast
○ Identify culprit Changes
○ Handle flaky tests
● Provide frequent green builds for cutting releases
○ Identify recent green builds
○ Show results of all testing together
○ Allow release tooling to choose a green build
○ Handle flaky tests
"green build" = all tests contained in that build are passing at a given
Change.
Continuous Integration
Google Confidential and Proprietary
● Develop Safely
○Sync to last green changelist
○Identify whether change will break the build before submit
○Submit with confidence
○Handle flaky tests
Continuous Integration (cont)
Google Confidential and Proprietary
Standard Continuous Build System
● Triggers builds in continuous cycle
● Cycle time = longest build + test cycle
● Tests many changes together
● Which change broke the build?
Google Confidential and Proprietary
● Triggers tests on every change
● Uses fine-grained dependencies
● Change 2 broke test 1
Google Continuous Build System
Google Confidential and Proprietary
Continuous Integration Display
Google Confidential and Proprietary
● Identifies failures sooner
● Identifies culprit change precisely
○ Avoids divide-and-conquer and tribal knowledge
● Lower compute costs using fine grained dependencies
● Keeps the build green by reducing time to fix breaks
● Accepted enthusiastically by product teams
● Enables teams to ship with fast iteration times
○ Supports submit-to-production times of less than 36
hours for some projects
Benefits
Google Confidential and Proprietary
● Requires enormous investment in compute resources (it
helps to be at Google) grows in proportion to:
○ Submission rate
○ Average build + test time
○ Variants (debug, opt, valgrind, etc.)
○ Increasing dependencies on core libraries
○ Branches
● Requires updating dependencies on each change
○ Takes time to update - delays start of testing
Costs
Google Confidential and Proprietary
● Makes testing available before submit
● Uses fine-grained dependencies
○ Recalculate any dependency changes
● Uses same pool of compute resources at high priority
● Avoids breaking the build
● Captures contents of a change and tests in isolation
○ Tests against head
○ Identifies problems with missing files
● Integrates with
○ submission tool - submit iff testing is green
○ Code Review Tool - results are posted to the review thread
Developing Safely - presubmit
Google Confidential and Proprietary
Example Presubmit Display
Google Confidential and Proprietary
Practical Matters - Test Growth
● Sources of growth in test execution time
○ More developers = increased submission rate
○ More tests
○ Longer running tests
○ Tests consuming more resources (threading)
● Examine the growth trends
○ Predict compute needs
○ Look for any build system features required
Build / Test Compute Resources
Jan
2011
Jan
2012
Jan
2013
Jul 2012
Jul 2011
Google Confidential and Proprietary
● Problems
○ Quadratic execution time growth w/ 2 factors
■ Submit rate - grows linearly
■ Test pool size - grows linearly
○ Ultimately cannot run every affected test @ every change
○ Low latency results still top requirement
● Solution: Just in time scheduling (JIT)
Test Growth
Continuous Integration:
● Run every test affected at every changelist.
In Production:
● Build and run tests concurrently on Google’s distributed
build and test backend.
JIT
as often as possible
JIT Scheduling
Schedule tests to run only when
system has capacity.
Produce project-wide results at
periodic changelists.
Milestone Property
A changelist C is a milestone iff ...
● All tests affected at C are run
● All tests affected since the previous
milestone are run.
● All these tests are run at their greatest
affecting changelist <= C.
Milestone Property
A changelist C is a milestone iff ...
● All tests affected at C are run
● All tests affected since the previous
milestone are run.
● All these tests are run at their greatest
affecting changelist <= C.
Exactly the work
necessary to deliver a
conclusive project status
Confidential + Proprietary
Change Lists
AffectedTestTargetset
Cut milestone
at this CL
21
Confidential + Proprietary
Change Lists
AffectedTestTargetset
22
Confidential + Proprietary
Change Lists
AffectedTestTargetset
23
Confidential + Proprietary
Change Lists
AffectedTestTargetset
24
Confidential + Proprietary
Change Lists
AffectedTestTargetset
25
Google Confidential and Proprietary
JIT scheduling results
● JIT scheduler changed compute growth from quadratic to linear!
● Without it, compute demand would have already consumed all of
Google's capacity
○ We literally either would have had to stop testing this way or stop
running user searches
● Enabled Google to keep providing fast feedback to developers with
reasonable compute costs
Google Confidential and Proprietary
Cuprit Finding - Transition to Fail
A
Time
Targets
Changelists
1 2 3
Passed
Affected, but not run (yet)
Milestone
Non-milestone
4
Failed
Schedule these
Google Confidential and Proprietary
Cuprit Finding - Transition to Fail
A
Time
Targets
Changelists
1 2 3
Passed
Affected, but not run (yet)
Milestone
Non-milestone
4
Failed
A: Change 3 broke test A.
Google Confidential and Proprietary
Future Direction
● Atif Memon is working with us (on sabbatical) to analyze our data
● He is finding that the dependency distance between a target and
the triggering source file is highly correlated with the probability of
introducing a non-flaky failure. We are working with him to publish
his findings.
Google Confidential and Proprietary
Q & A
For more information:
● http://google-engtools.blogspot.com/2011/06/testing-at-speed-and-scale-of-google.html
● http://www.youtube.com/watch?v=b52aXZ2yi08
● http://www.infoq.com/presentations/Development-at-Google
● http://google-engtools.blogspot.com/
● http://misko.hevery.com/2008/11/11/clean-code-talks-dependency-injection/
● https://www.youtube.com/watch?v=KH2_sB1A6lA&feature=youtube_gdata_player
Q & A

Weitere ähnliche Inhalte

Was ist angesagt?

GameDay - Achieving resilience through Chaos Engineering
GameDay - Achieving resilience through Chaos EngineeringGameDay - Achieving resilience through Chaos Engineering
GameDay - Achieving resilience through Chaos EngineeringDiUS
 
How to Break the Requirements into User Stories
How to Break the Requirements into User StoriesHow to Break the Requirements into User Stories
How to Break the Requirements into User StoriesShriKant Vashishtha
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assuranceEr. Nancy
 
The Role of the Software Architect
The Role of the Software ArchitectThe Role of the Software Architect
The Role of the Software ArchitectHayim Makabee
 
Lect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPMLect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPMMubashir Ali
 
Migrating from oracle soa suite to microservices on kubernetes
Migrating from oracle soa suite to microservices on kubernetesMigrating from oracle soa suite to microservices on kubernetes
Migrating from oracle soa suite to microservices on kubernetesKonveyor Community
 
What is Agile Methodology?
What is Agile Methodology?What is Agile Methodology?
What is Agile Methodology?QA InfoTech
 
A Top Down Approach to End-to-End Testing
A Top Down Approach to End-to-End TestingA Top Down Approach to End-to-End Testing
A Top Down Approach to End-to-End TestingSmartBear
 
Agile Delivery PowerPoint Presentation Slides
Agile Delivery PowerPoint Presentation SlidesAgile Delivery PowerPoint Presentation Slides
Agile Delivery PowerPoint Presentation SlidesSlideTeam
 
The Next Wave of Reliability Engineering
The Next Wave of Reliability EngineeringThe Next Wave of Reliability Engineering
The Next Wave of Reliability EngineeringMichael Kehoe
 
Agile Metrics...That Matter
Agile Metrics...That MatterAgile Metrics...That Matter
Agile Metrics...That MatterErik Weber
 
eXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OvervieweXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OverviewGurtej Pal Singh
 
SRE (service reliability engineer) on big DevOps platform running on the clou...
SRE (service reliability engineer) on big DevOps platform running on the clou...SRE (service reliability engineer) on big DevOps platform running on the clou...
SRE (service reliability engineer) on big DevOps platform running on the clou...DevClub_lv
 
Agile software development
Agile software developmentAgile software development
Agile software developmentRajesh Piryani
 

Was ist angesagt? (20)

GameDay - Achieving resilience through Chaos Engineering
GameDay - Achieving resilience through Chaos EngineeringGameDay - Achieving resilience through Chaos Engineering
GameDay - Achieving resilience through Chaos Engineering
 
How to Break the Requirements into User Stories
How to Break the Requirements into User StoriesHow to Break the Requirements into User Stories
How to Break the Requirements into User Stories
 
The V Model
The V ModelThe V Model
The V Model
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Agile mindset
Agile mindsetAgile mindset
Agile mindset
 
The Role of the Software Architect
The Role of the Software ArchitectThe Role of the Software Architect
The Role of the Software Architect
 
Agile Metrics
Agile MetricsAgile Metrics
Agile Metrics
 
Lect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPMLect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPM
 
Migrating from oracle soa suite to microservices on kubernetes
Migrating from oracle soa suite to microservices on kubernetesMigrating from oracle soa suite to microservices on kubernetes
Migrating from oracle soa suite to microservices on kubernetes
 
What is Agile Methodology?
What is Agile Methodology?What is Agile Methodology?
What is Agile Methodology?
 
A Top Down Approach to End-to-End Testing
A Top Down Approach to End-to-End TestingA Top Down Approach to End-to-End Testing
A Top Down Approach to End-to-End Testing
 
Agile Delivery PowerPoint Presentation Slides
Agile Delivery PowerPoint Presentation SlidesAgile Delivery PowerPoint Presentation Slides
Agile Delivery PowerPoint Presentation Slides
 
The Next Wave of Reliability Engineering
The Next Wave of Reliability EngineeringThe Next Wave of Reliability Engineering
The Next Wave of Reliability Engineering
 
Test Automation in Agile
Test Automation in AgileTest Automation in Agile
Test Automation in Agile
 
Agile Metrics...That Matter
Agile Metrics...That MatterAgile Metrics...That Matter
Agile Metrics...That Matter
 
Agile KPIs
Agile KPIsAgile KPIs
Agile KPIs
 
eXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OvervieweXtreme programming (XP) - An Overview
eXtreme programming (XP) - An Overview
 
SRE (service reliability engineer) on big DevOps platform running on the clou...
SRE (service reliability engineer) on big DevOps platform running on the clou...SRE (service reliability engineer) on big DevOps platform running on the clou...
SRE (service reliability engineer) on big DevOps platform running on the clou...
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 
Agile software development
Agile software developmentAgile software development
Agile software development
 

Andere mochten auch

La Hora del Código (2016)
La Hora del Código (2016)La Hora del Código (2016)
La Hora del Código (2016)Alberto Pacheco
 
Continuous integration by Rémy Virin
Continuous integration by Rémy VirinContinuous integration by Rémy Virin
Continuous integration by Rémy VirinCocoaHeads France
 
Continuous integration at scale
Continuous integration at scaleContinuous integration at scale
Continuous integration at scaleVivek Singh
 
GdG DevFestMed 2016 - 06/11/2016
GdG DevFestMed 2016 - 06/11/2016GdG DevFestMed 2016 - 06/11/2016
GdG DevFestMed 2016 - 06/11/2016Gaetano Paternò
 
Inverting The Testing Pyramid
Inverting The Testing PyramidInverting The Testing Pyramid
Inverting The Testing PyramidNaresh Jain
 
Achieving DevOps using Open Source Tools in the Enterprise
Achieving DevOps using Open Source Tools in the EnterpriseAchieving DevOps using Open Source Tools in the Enterprise
Achieving DevOps using Open Source Tools in the EnterpriseCollabNet
 
Continuous Delivery Sounds Great but it Won't Work Here
Continuous Delivery Sounds Great but it Won't Work HereContinuous Delivery Sounds Great but it Won't Work Here
Continuous Delivery Sounds Great but it Won't Work HereJez Humble
 
How to Implement Domain Driven Design in Real Life SDLC
How to Implement Domain Driven Design  in Real Life SDLCHow to Implement Domain Driven Design  in Real Life SDLC
How to Implement Domain Driven Design in Real Life SDLCAbdul Karim
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksSlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShareSlideShare
 

Andere mochten auch (11)

La Hora del Código (2016)
La Hora del Código (2016)La Hora del Código (2016)
La Hora del Código (2016)
 
Continuous integration by Rémy Virin
Continuous integration by Rémy VirinContinuous integration by Rémy Virin
Continuous integration by Rémy Virin
 
Continuous integration at scale
Continuous integration at scaleContinuous integration at scale
Continuous integration at scale
 
GdG DevFestMed 2016 - 06/11/2016
GdG DevFestMed 2016 - 06/11/2016GdG DevFestMed 2016 - 06/11/2016
GdG DevFestMed 2016 - 06/11/2016
 
Inverting The Testing Pyramid
Inverting The Testing PyramidInverting The Testing Pyramid
Inverting The Testing Pyramid
 
Achieving DevOps using Open Source Tools in the Enterprise
Achieving DevOps using Open Source Tools in the EnterpriseAchieving DevOps using Open Source Tools in the Enterprise
Achieving DevOps using Open Source Tools in the Enterprise
 
Continuous Delivery Sounds Great but it Won't Work Here
Continuous Delivery Sounds Great but it Won't Work HereContinuous Delivery Sounds Great but it Won't Work Here
Continuous Delivery Sounds Great but it Won't Work Here
 
How to Implement Domain Driven Design in Real Life SDLC
How to Implement Domain Driven Design  in Real Life SDLCHow to Implement Domain Driven Design  in Real Life SDLC
How to Implement Domain Driven Design in Real Life SDLC
 
How Google Works
How Google WorksHow Google Works
How Google Works
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Ähnlich wie 2016 04-25 continuous integration at google scale

Continuous Infrastructure First
Continuous Infrastructure FirstContinuous Infrastructure First
Continuous Infrastructure FirstKris Buytaert
 
Testing in a continuous delivery environment
Testing in a continuous delivery environmentTesting in a continuous delivery environment
Testing in a continuous delivery environmentStefan Verhoeff
 
Continues delivery - Introduction
Continues delivery - IntroductionContinues delivery - Introduction
Continues delivery - IntroductionErez Attar
 
Release & Iterate Faster: Stop Manual Testing
Release & Iterate Faster: Stop Manual TestingRelease & Iterate Faster: Stop Manual Testing
Release & Iterate Faster: Stop Manual TestingDrew Hannay
 
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...Weaveworks
 
Room 2 - 4 - Juncheng Anthony Lin - Redhat - A Practical Approach to Traditio...
Room 2 - 4 - Juncheng Anthony Lin - Redhat - A Practical Approach to Traditio...Room 2 - 4 - Juncheng Anthony Lin - Redhat - A Practical Approach to Traditio...
Room 2 - 4 - Juncheng Anthony Lin - Redhat - A Practical Approach to Traditio...Vietnam Open Infrastructure User Group
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CDHoang Le
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentationDrew Hannay
 
Building Sustainable Software: An Introduction to Software Engineering
Building Sustainable Software: An Introduction to Software EngineeringBuilding Sustainable Software: An Introduction to Software Engineering
Building Sustainable Software: An Introduction to Software EngineeringMuhammad Shehata
 
Release Engineering
Release EngineeringRelease Engineering
Release EngineeringGDG Odessa
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesLars Rosenquist
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesLars Rosenquist
 
Agile lifecycle handbook by bhawani nandan prasad
Agile lifecycle handbook by bhawani nandan prasadAgile lifecycle handbook by bhawani nandan prasad
Agile lifecycle handbook by bhawani nandan prasadBhawani N Prasad
 
Agile Development Lifecycle and Best Practices with Denodo
Agile Development Lifecycle and Best Practices with DenodoAgile Development Lifecycle and Best Practices with Denodo
Agile Development Lifecycle and Best Practices with DenodoDenodo
 
Agile process with a fixed cost
Agile process with a fixed costAgile process with a fixed cost
Agile process with a fixed costRalph Johnson
 
Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013Moataz Nabil
 
Bots on guard of sdlc
Bots on guard of sdlcBots on guard of sdlc
Bots on guard of sdlcAlexey Tokar
 

Ähnlich wie 2016 04-25 continuous integration at google scale (20)

Continuous Infrastructure First
Continuous Infrastructure FirstContinuous Infrastructure First
Continuous Infrastructure First
 
Testing in a continuous delivery environment
Testing in a continuous delivery environmentTesting in a continuous delivery environment
Testing in a continuous delivery environment
 
Continues delivery - Introduction
Continues delivery - IntroductionContinues delivery - Introduction
Continues delivery - Introduction
 
Release & Iterate Faster: Stop Manual Testing
Release & Iterate Faster: Stop Manual TestingRelease & Iterate Faster: Stop Manual Testing
Release & Iterate Faster: Stop Manual Testing
 
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
 
Room 2 - 4 - Juncheng Anthony Lin - Redhat - A Practical Approach to Traditio...
Room 2 - 4 - Juncheng Anthony Lin - Redhat - A Practical Approach to Traditio...Room 2 - 4 - Juncheng Anthony Lin - Redhat - A Practical Approach to Traditio...
Room 2 - 4 - Juncheng Anthony Lin - Redhat - A Practical Approach to Traditio...
 
Gerrit Code Review
Gerrit Code ReviewGerrit Code Review
Gerrit Code Review
 
GitOps , done Right
GitOps , done RightGitOps , done Right
GitOps , done Right
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentation
 
Building Sustainable Software: An Introduction to Software Engineering
Building Sustainable Software: An Introduction to Software EngineeringBuilding Sustainable Software: An Introduction to Software Engineering
Building Sustainable Software: An Introduction to Software Engineering
 
Release Engineering
Release EngineeringRelease Engineering
Release Engineering
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
 
Agile lifecycle handbook by bhawani nandan prasad
Agile lifecycle handbook by bhawani nandan prasadAgile lifecycle handbook by bhawani nandan prasad
Agile lifecycle handbook by bhawani nandan prasad
 
Software management for tech startups
Software management for tech startupsSoftware management for tech startups
Software management for tech startups
 
Agile Development Lifecycle and Best Practices with Denodo
Agile Development Lifecycle and Best Practices with DenodoAgile Development Lifecycle and Best Practices with Denodo
Agile Development Lifecycle and Best Practices with Denodo
 
Agile process with a fixed cost
Agile process with a fixed costAgile process with a fixed cost
Agile process with a fixed cost
 
Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013
 
Bots on guard of sdlc
Bots on guard of sdlcBots on guard of sdlc
Bots on guard of sdlc
 

Kürzlich hochgeladen

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 

Kürzlich hochgeladen (20)

Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 

2016 04-25 continuous integration at google scale

  • 1. Google Confidential and Proprietary Continuous Integration at Google Scale By John Micco Developer Infrastructure
  • 2. Google Confidential and Proprietary ● >30,000 developers in 40+ offices ● 13,000+ projects under active development ● 30k submissions per day (1 every 3 seconds) ● Single monolithic code tree with mixed language code ● Development on one branch - submissions at head ● All builds from source ● 30+ sustained code changes per minute with 90+ peaks ● 50% of code changes monthly ● 150+ million test cases / day, > 150 years of test / day ● Supports continuous deployment for all Google teams! Speed and Scale
  • 3. Google Confidential and Proprietary Overview 1. Continuous Integration Goals 2. Continuous Integration at Google 3. Future of testing
  • 4. Google Confidential and Proprietary ● Provide real-time information to build monitors ○ Identify failures fast ○ Identify culprit Changes ○ Handle flaky tests ● Provide frequent green builds for cutting releases ○ Identify recent green builds ○ Show results of all testing together ○ Allow release tooling to choose a green build ○ Handle flaky tests "green build" = all tests contained in that build are passing at a given Change. Continuous Integration
  • 5. Google Confidential and Proprietary ● Develop Safely ○Sync to last green changelist ○Identify whether change will break the build before submit ○Submit with confidence ○Handle flaky tests Continuous Integration (cont)
  • 6. Google Confidential and Proprietary Standard Continuous Build System ● Triggers builds in continuous cycle ● Cycle time = longest build + test cycle ● Tests many changes together ● Which change broke the build?
  • 7. Google Confidential and Proprietary ● Triggers tests on every change ● Uses fine-grained dependencies ● Change 2 broke test 1 Google Continuous Build System
  • 8. Google Confidential and Proprietary Continuous Integration Display
  • 9. Google Confidential and Proprietary ● Identifies failures sooner ● Identifies culprit change precisely ○ Avoids divide-and-conquer and tribal knowledge ● Lower compute costs using fine grained dependencies ● Keeps the build green by reducing time to fix breaks ● Accepted enthusiastically by product teams ● Enables teams to ship with fast iteration times ○ Supports submit-to-production times of less than 36 hours for some projects Benefits
  • 10. Google Confidential and Proprietary ● Requires enormous investment in compute resources (it helps to be at Google) grows in proportion to: ○ Submission rate ○ Average build + test time ○ Variants (debug, opt, valgrind, etc.) ○ Increasing dependencies on core libraries ○ Branches ● Requires updating dependencies on each change ○ Takes time to update - delays start of testing Costs
  • 11. Google Confidential and Proprietary ● Makes testing available before submit ● Uses fine-grained dependencies ○ Recalculate any dependency changes ● Uses same pool of compute resources at high priority ● Avoids breaking the build ● Captures contents of a change and tests in isolation ○ Tests against head ○ Identifies problems with missing files ● Integrates with ○ submission tool - submit iff testing is green ○ Code Review Tool - results are posted to the review thread Developing Safely - presubmit
  • 12. Google Confidential and Proprietary Example Presubmit Display
  • 13. Google Confidential and Proprietary Practical Matters - Test Growth ● Sources of growth in test execution time ○ More developers = increased submission rate ○ More tests ○ Longer running tests ○ Tests consuming more resources (threading) ● Examine the growth trends ○ Predict compute needs ○ Look for any build system features required
  • 14. Build / Test Compute Resources Jan 2011 Jan 2012 Jan 2013 Jul 2012 Jul 2011
  • 15.
  • 16. Google Confidential and Proprietary ● Problems ○ Quadratic execution time growth w/ 2 factors ■ Submit rate - grows linearly ■ Test pool size - grows linearly ○ Ultimately cannot run every affected test @ every change ○ Low latency results still top requirement ● Solution: Just in time scheduling (JIT) Test Growth
  • 17. Continuous Integration: ● Run every test affected at every changelist. In Production: ● Build and run tests concurrently on Google’s distributed build and test backend. JIT as often as possible
  • 18. JIT Scheduling Schedule tests to run only when system has capacity. Produce project-wide results at periodic changelists.
  • 19. Milestone Property A changelist C is a milestone iff ... ● All tests affected at C are run ● All tests affected since the previous milestone are run. ● All these tests are run at their greatest affecting changelist <= C.
  • 20. Milestone Property A changelist C is a milestone iff ... ● All tests affected at C are run ● All tests affected since the previous milestone are run. ● All these tests are run at their greatest affecting changelist <= C. Exactly the work necessary to deliver a conclusive project status
  • 21. Confidential + Proprietary Change Lists AffectedTestTargetset Cut milestone at this CL 21
  • 22. Confidential + Proprietary Change Lists AffectedTestTargetset 22
  • 23. Confidential + Proprietary Change Lists AffectedTestTargetset 23
  • 24. Confidential + Proprietary Change Lists AffectedTestTargetset 24
  • 25. Confidential + Proprietary Change Lists AffectedTestTargetset 25
  • 26. Google Confidential and Proprietary JIT scheduling results ● JIT scheduler changed compute growth from quadratic to linear! ● Without it, compute demand would have already consumed all of Google's capacity ○ We literally either would have had to stop testing this way or stop running user searches ● Enabled Google to keep providing fast feedback to developers with reasonable compute costs
  • 27. Google Confidential and Proprietary Cuprit Finding - Transition to Fail A Time Targets Changelists 1 2 3 Passed Affected, but not run (yet) Milestone Non-milestone 4 Failed Schedule these
  • 28. Google Confidential and Proprietary Cuprit Finding - Transition to Fail A Time Targets Changelists 1 2 3 Passed Affected, but not run (yet) Milestone Non-milestone 4 Failed A: Change 3 broke test A.
  • 29. Google Confidential and Proprietary Future Direction ● Atif Memon is working with us (on sabbatical) to analyze our data ● He is finding that the dependency distance between a target and the triggering source file is highly correlated with the probability of introducing a non-flaky failure. We are working with him to publish his findings.
  • 30. Google Confidential and Proprietary Q & A For more information: ● http://google-engtools.blogspot.com/2011/06/testing-at-speed-and-scale-of-google.html ● http://www.youtube.com/watch?v=b52aXZ2yi08 ● http://www.infoq.com/presentations/Development-at-Google ● http://google-engtools.blogspot.com/ ● http://misko.hevery.com/2008/11/11/clean-code-talks-dependency-injection/ ● https://www.youtube.com/watch?v=KH2_sB1A6lA&feature=youtube_gdata_player Q & A