Continuous Integration: Finding problems soonest

Shawn Jones
Shawn JonesResearch Assistant at Old Dominion University
Continuous Integration
Finding problems soonest
Your Software Is Your
House
• Except, in a complex software project you have many of the
same type of contractor and they don't communicate well
• For example, if your house were a software project:
• Different masons don't make the foundation connect,
creating fissures
• Different carpenters choose different materials for the
subfloor, leading to weak points
• Different roofers don’t connect joists the same
But I did my part right!
Some Background
• Source code -> Binary code
• Source code is what people write
• Binary code is what machines run
• Compilers turn source code into binary code
• Developers do this all of the time (It’s not the 1970s)
• Source control holds source code
• It tells you who did what and when (accountability)
• Provides points in time for milestones
• Is key to good Configuration Management
• Build servers detect changes in source control and the turn the
source code into binary code, run tests, perform inspection, etc. and
produce builds
Continuous Integration
Goals
• Find the problem when it is introduced
• On every change (continuous):
• Is it intended to meet a requirement (is it gold plating)?
• Can anyone compile it (avoid "magic laptops" or "islands of
knowledge")?
• Did the new code break existing functionality (does it pass
automated testing)?
• Does it contain known bugs (is the foundation bad)?
• Does it contain known security flaws (is it easily hackable)?
• Can others work on the code (does it conform to coding
standards)?
• Does it actually meet the requirement (does it pass functional
testing)?
• Is deployment reproducible? Can it install?
Typical CI Process
Source
Control
Management
Requirements
System
Build
System
3. compiles code
4. scans code
5. runs unit tests
6. creates install package
2. verifies requirement
traceability
7. deploys install package to target environment
8. runs integration/regression tests
9. reports progress of each step
1. checks
in code
If a Build Fails
• If any of the evaluations fail, mark the build as FAILED!
• No finger pointing! You know who did it!
• Immediately, the developers:
• Fix the code, or
• Roll back the code to a known good state
• If you don’t do either, then developers continue building
on a bad foundation
If a Build Succeeds
You may have a candidate for a releasable
product!
Requirements for CI
• requirements and architecture are well understood
• target environment is known and available
• an automated deployment mechanism exists
• someone to coordinate and champion process
• automated tests actually exist and are correct
• transaction-based source control system
• developers respond to bad builds quickly
• the systems who support CI can interoperate with one another
• everyone does their job, it’s not a replacement for other good
processes
Concerns with CI
• CI requires personnel to maintain and develop
• Sometimes failures are due to the environment
• It takes time and effort to remove these issues
• CI can not perform review tasks which require people:
• User testing
• Documentation review
• Some builds take a long time
• Use a build engineer to help the architect break up the
software into smaller modules
• Run some scans/tests nightly rather than on every change
Summary
• CI is all about detecting the problem as it is
inserted into the product
• CI accomplishes this by running tests and scans
code at every change
• CI requires a personnel and hardware
investment
• CI pays off for defect reduction
1 of 11

Recommended

A Brief Introduction to Test-Driven Development by
A Brief Introduction to Test-Driven DevelopmentA Brief Introduction to Test-Driven Development
A Brief Introduction to Test-Driven DevelopmentShawn Jones
1.3K views21 slides
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019 by
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019Jason Tice
132 views18 slides
Test Driven Development - a Practitioner’s Perspective by
Test Driven Development - a Practitioner’s PerspectiveTest Driven Development - a Practitioner’s Perspective
Test Driven Development - a Practitioner’s PerspectiveMalinda Kapuruge
281 views35 slides
TDD Basics with Angular.js and Jasmine by
TDD Basics with Angular.js and JasmineTDD Basics with Angular.js and Jasmine
TDD Basics with Angular.js and JasmineLuis Sánchez Castellanos
15.2K views17 slides
Funny stories and anti-patterns from DevOps landscape by
Funny stories and anti-patterns from DevOps landscapeFunny stories and anti-patterns from DevOps landscape
Funny stories and anti-patterns from DevOps landscapeMikalai Alimenkou
4.3K views36 slides
How to get the most out of code reviews by
How to get the most out of code reviewsHow to get the most out of code reviews
How to get the most out of code reviewsJavaDayUA
773 views30 slides

More Related Content

What's hot

Unit Testing and Tools by
Unit Testing and ToolsUnit Testing and Tools
Unit Testing and ToolsWilliam Simms
1.1K views10 slides
Unit Testing and Tools - ADNUG by
Unit Testing and Tools - ADNUGUnit Testing and Tools - ADNUG
Unit Testing and Tools - ADNUGWilliam Simms
557 views18 slides
Test Driven Development by
Test Driven DevelopmentTest Driven Development
Test Driven DevelopmentSergey Aganezov
473 views34 slides
Code review by
Code reviewCode review
Code reviewAleksey Solntsev
6.4K views48 slides
How to be proud when you are done by
How to be proud when you are doneHow to be proud when you are done
How to be proud when you are doneAleksey Solntsev
6K views44 slides
Code Review for iOS by
Code Review for iOSCode Review for iOS
Code Review for iOSKLabCyscorpions-TechBlog
4.4K views56 slides

What's hot(20)

Unit Testing and Tools by William Simms
Unit Testing and ToolsUnit Testing and Tools
Unit Testing and Tools
William Simms1.1K views
Unit Testing and Tools - ADNUG by William Simms
Unit Testing and Tools - ADNUGUnit Testing and Tools - ADNUG
Unit Testing and Tools - ADNUG
William Simms557 views
Test Driven Development (TDD) & Continuous Integration (CI) by Fatkul Amri
Test Driven Development (TDD) & Continuous Integration (CI)Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)
Fatkul Amri1.7K views
Alexandru Bolboaca - Unit Testing from the Trenches by Mozaic Works
Alexandru Bolboaca - Unit Testing from the TrenchesAlexandru Bolboaca - Unit Testing from the Trenches
Alexandru Bolboaca - Unit Testing from the Trenches
Mozaic Works443 views
Working Effectively With Legacy Code by Excella
Working Effectively With Legacy CodeWorking Effectively With Legacy Code
Working Effectively With Legacy Code
Excella2.6K views
How to successfully grow a code review culture by Nina Zakharenko
How to successfully grow a code review cultureHow to successfully grow a code review culture
How to successfully grow a code review culture
Nina Zakharenko9.9K views
Test-Driven Development In Action by Jon Kruger
Test-Driven Development In ActionTest-Driven Development In Action
Test-Driven Development In Action
Jon Kruger4.4K views
TDD for Testers Workshop by Sarah Usher
TDD for Testers WorkshopTDD for Testers Workshop
TDD for Testers Workshop
Sarah Usher231 views
Code Review tool for personal effectiveness and waste analysis by Mikalai Alimenkou
Code Review tool for personal effectiveness and waste analysisCode Review tool for personal effectiveness and waste analysis
Code Review tool for personal effectiveness and waste analysis
Mikalai Alimenkou1.4K views
Test-driven development with Node.js by Mirko Kiefer
Test-driven development with Node.jsTest-driven development with Node.js
Test-driven development with Node.js
Mirko Kiefer582 views
03 - chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5) by Igor Bronovskyy
03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)
03 - chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)
Igor Bronovskyy287 views

Similar to Continuous Integration: Finding problems soonest

Continuous integration sql in the city by
Continuous integration sql in the cityContinuous integration sql in the city
Continuous integration sql in the cityIke Ellis
1.3K views17 slides
AgileLINC Continous Slides by Daniel Harp by
AgileLINC Continous Slides by Daniel HarpAgileLINC Continous Slides by Daniel Harp
AgileLINC Continous Slides by Daniel HarpBarry Gavril
397 views22 slides
Enter the Team City by
Enter the Team CityEnter the Team City
Enter the Team CityKashif Ali Siddiqui
997 views16 slides
Introduction to Continuous Integration by
Introduction to Continuous IntegrationIntroduction to Continuous Integration
Introduction to Continuous IntegrationSomkiat Puisungnoen
668 views42 slides
Continuous integration by
Continuous integrationContinuous integration
Continuous integrationhugo lu
3.3K views28 slides
Continuous integrations - Basics by
Continuous integrations - BasicsContinuous integrations - Basics
Continuous integrations - BasicsBarış İNANÇ
514 views29 slides

Similar to Continuous Integration: Finding problems soonest(20)

Continuous integration sql in the city by Ike Ellis
Continuous integration sql in the cityContinuous integration sql in the city
Continuous integration sql in the city
Ike Ellis1.3K views
AgileLINC Continous Slides by Daniel Harp by Barry Gavril
AgileLINC Continous Slides by Daniel HarpAgileLINC Continous Slides by Daniel Harp
AgileLINC Continous Slides by Daniel Harp
Barry Gavril397 views
Continuous integration by hugo lu
Continuous integrationContinuous integration
Continuous integration
hugo lu3.3K views
Continuous integrations - Basics by Barış İNANÇ
Continuous integrations - BasicsContinuous integrations - Basics
Continuous integrations - Basics
Barış İNANÇ514 views
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey by Kelly Looney
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps JourneyGartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
Kelly Looney614 views
Continuous Integration In A PHP World by Idaf_1er
Continuous Integration In A PHP WorldContinuous Integration In A PHP World
Continuous Integration In A PHP World
Idaf_1er2.8K views
Build software like a bag of marbles, not a castle of LEGO® by Hannes Lowette
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
Hannes Lowette142 views
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham by .NET Conf UY
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald BelchamGetting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
.NET Conf UY627 views
Continuous Integration by Vijaya K
Continuous IntegrationContinuous Integration
Continuous Integration
Vijaya K276 views
Build software like a bag of marbles, not a castle of LEGO® by Hannes Lowette
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
Hannes Lowette683 views
Continuous integration & Continuous Delivery @DeVz by Denis Ristic
Continuous integration & Continuous Delivery @DeVzContinuous integration & Continuous Delivery @DeVz
Continuous integration & Continuous Delivery @DeVz
Denis Ristic312 views

More from Shawn Jones

Abstract Images Have Different Levels of Retrievability Per Reverse Image Sea... by
Abstract Images Have Different Levels of Retrievability Per Reverse Image Sea...Abstract Images Have Different Levels of Retrievability Per Reverse Image Sea...
Abstract Images Have Different Levels of Retrievability Per Reverse Image Sea...Shawn Jones
115 views12 slides
Abstract Images Have Different Levels of Retrievability Per Reverse Image Sea... by
Abstract Images Have Different Levels of Retrievability Per Reverse Image Sea...Abstract Images Have Different Levels of Retrievability Per Reverse Image Sea...
Abstract Images Have Different Levels of Retrievability Per Reverse Image Sea...Shawn Jones
10 views12 slides
It’s All About The Cards: Sharing on Social Media Encouraged HTML Metadata G... by
It’s All About The Cards: Sharing on Social Media Encouraged HTML Metadata G...It’s All About The Cards: Sharing on Social Media Encouraged HTML Metadata G...
It’s All About The Cards: Sharing on Social Media Encouraged HTML Metadata G...Shawn Jones
321 views19 slides
Improving Collection Understanding For Web Archives With Storytelling: Shinin... by
Improving Collection Understanding For Web Archives With Storytelling: Shinin...Improving Collection Understanding For Web Archives With Storytelling: Shinin...
Improving Collection Understanding For Web Archives With Storytelling: Shinin...Shawn Jones
355 views153 slides
Automatically Selecting Striking Images for Social Cards by
Automatically Selecting Striking Images for Social CardsAutomatically Selecting Striking Images for Social Cards
Automatically Selecting Striking Images for Social CardsShawn Jones
151 views20 slides
SHARI (StoryGraph Hypercane ArchiveNow Raintale Integration) by
SHARI(StoryGraph Hypercane ArchiveNow Raintale Integration)SHARI(StoryGraph Hypercane ArchiveNow Raintale Integration)
SHARI (StoryGraph Hypercane ArchiveNow Raintale Integration)Shawn Jones
259 views13 slides

More from Shawn Jones(17)

Abstract Images Have Different Levels of Retrievability Per Reverse Image Sea... by Shawn Jones
Abstract Images Have Different Levels of Retrievability Per Reverse Image Sea...Abstract Images Have Different Levels of Retrievability Per Reverse Image Sea...
Abstract Images Have Different Levels of Retrievability Per Reverse Image Sea...
Shawn Jones115 views
Abstract Images Have Different Levels of Retrievability Per Reverse Image Sea... by Shawn Jones
Abstract Images Have Different Levels of Retrievability Per Reverse Image Sea...Abstract Images Have Different Levels of Retrievability Per Reverse Image Sea...
Abstract Images Have Different Levels of Retrievability Per Reverse Image Sea...
Shawn Jones10 views
It’s All About The Cards: Sharing on Social Media Encouraged HTML Metadata G... by Shawn Jones
It’s All About The Cards: Sharing on Social Media Encouraged HTML Metadata G...It’s All About The Cards: Sharing on Social Media Encouraged HTML Metadata G...
It’s All About The Cards: Sharing on Social Media Encouraged HTML Metadata G...
Shawn Jones321 views
Improving Collection Understanding For Web Archives With Storytelling: Shinin... by Shawn Jones
Improving Collection Understanding For Web Archives With Storytelling: Shinin...Improving Collection Understanding For Web Archives With Storytelling: Shinin...
Improving Collection Understanding For Web Archives With Storytelling: Shinin...
Shawn Jones355 views
Automatically Selecting Striking Images for Social Cards by Shawn Jones
Automatically Selecting Striking Images for Social CardsAutomatically Selecting Striking Images for Social Cards
Automatically Selecting Striking Images for Social Cards
Shawn Jones151 views
SHARI (StoryGraph Hypercane ArchiveNow Raintale Integration) by Shawn Jones
SHARI(StoryGraph Hypercane ArchiveNow Raintale Integration)SHARI(StoryGraph Hypercane ArchiveNow Raintale Integration)
SHARI (StoryGraph Hypercane ArchiveNow Raintale Integration)
Shawn Jones259 views
Social Cards Probably Provide For Better Understanding Of Web Archive Collect... by Shawn Jones
Social Cards Probably Provide For Better Understanding Of Web Archive Collect...Social Cards Probably Provide For Better Understanding Of Web Archive Collect...
Social Cards Probably Provide For Better Understanding Of Web Archive Collect...
Shawn Jones1.4K views
Storytelling With Web Archives by Shawn Jones
Storytelling With Web ArchivesStorytelling With Web Archives
Storytelling With Web Archives
Shawn Jones1.3K views
Combining Social Media Storytelling With Web Archives by Shawn Jones
Combining Social Media Storytelling With Web ArchivesCombining Social Media Storytelling With Web Archives
Combining Social Media Storytelling With Web Archives
Shawn Jones577 views
Improving Understanding of Web Archive Collections Through Storytelling - PhD... by Shawn Jones
Improving Understanding of Web Archive Collections Through Storytelling - PhD...Improving Understanding of Web Archive Collections Through Storytelling - PhD...
Improving Understanding of Web Archive Collections Through Storytelling - PhD...
Shawn Jones868 views
The Off-Topic Memento Toolkit by Shawn Jones
The Off-Topic Memento ToolkitThe Off-Topic Memento Toolkit
The Off-Topic Memento Toolkit
Shawn Jones1.3K views
The Many Shapes of Archive-It by Shawn Jones
The Many Shapes of Archive-ItThe Many Shapes of Archive-It
The Many Shapes of Archive-It
Shawn Jones1.3K views
Improving Collection Understanding in Web Archives by Shawn Jones
Improving Collection Understanding in Web ArchivesImproving Collection Understanding in Web Archives
Improving Collection Understanding in Web Archives
Shawn Jones1.9K views
Where Can We Post Stories Summarizing Web Archive Collections by Shawn Jones
Where Can We Post Stories Summarizing Web Archive CollectionsWhere Can We Post Stories Summarizing Web Archive Collections
Where Can We Post Stories Summarizing Web Archive Collections
Shawn Jones1.9K views
Avoiding Spoilers On MediaWiki Fan Sites Using Memento by Shawn Jones
Avoiding Spoilers On MediaWiki Fan Sites Using MementoAvoiding Spoilers On MediaWiki Fan Sites Using Memento
Avoiding Spoilers On MediaWiki Fan Sites Using Memento
Shawn Jones2.8K views
Reconstructing the past with media wiki by Shawn Jones
Reconstructing the past with media wikiReconstructing the past with media wiki
Reconstructing the past with media wiki
Shawn Jones2.2K views

Recently uploaded

Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ... by
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...ShapeBlue
85 views10 slides
20231123_Camunda Meetup Vienna.pdf by
20231123_Camunda Meetup Vienna.pdf20231123_Camunda Meetup Vienna.pdf
20231123_Camunda Meetup Vienna.pdfPhactum Softwareentwicklung GmbH
50 views73 slides
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T by
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TShapeBlue
112 views34 slides
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or... by
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...ShapeBlue
158 views20 slides
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online by
KVM Security Groups Under the Hood - Wido den Hollander - Your.OnlineKVM Security Groups Under the Hood - Wido den Hollander - Your.Online
KVM Security Groups Under the Hood - Wido den Hollander - Your.OnlineShapeBlue
181 views19 slides
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT by
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITShapeBlue
166 views8 slides

Recently uploaded(20)

Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ... by ShapeBlue
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
ShapeBlue85 views
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T by ShapeBlue
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
ShapeBlue112 views
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or... by ShapeBlue
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
ShapeBlue158 views
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online by ShapeBlue
KVM Security Groups Under the Hood - Wido den Hollander - Your.OnlineKVM Security Groups Under the Hood - Wido den Hollander - Your.Online
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online
ShapeBlue181 views
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT by ShapeBlue
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
ShapeBlue166 views
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ... by ShapeBlue
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
ShapeBlue144 views
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P... by ShapeBlue
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
ShapeBlue154 views
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... by ShapeBlue
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
ShapeBlue138 views
DRBD Deep Dive - Philipp Reisner - LINBIT by ShapeBlue
DRBD Deep Dive - Philipp Reisner - LINBITDRBD Deep Dive - Philipp Reisner - LINBIT
DRBD Deep Dive - Philipp Reisner - LINBIT
ShapeBlue140 views
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue by ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
ShapeBlue179 views
Data Integrity for Banking and Financial Services by Precisely
Data Integrity for Banking and Financial ServicesData Integrity for Banking and Financial Services
Data Integrity for Banking and Financial Services
Precisely78 views
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc160 views
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue by ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
ShapeBlue93 views
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue by ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
ShapeBlue103 views
"Surviving highload with Node.js", Andrii Shumada by Fwdays
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada
Fwdays53 views
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue by ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueMigrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
ShapeBlue176 views

Continuous Integration: Finding problems soonest

  • 2. Your Software Is Your House • Except, in a complex software project you have many of the same type of contractor and they don't communicate well • For example, if your house were a software project: • Different masons don't make the foundation connect, creating fissures • Different carpenters choose different materials for the subfloor, leading to weak points • Different roofers don’t connect joists the same
  • 3. But I did my part right!
  • 4. Some Background • Source code -> Binary code • Source code is what people write • Binary code is what machines run • Compilers turn source code into binary code • Developers do this all of the time (It’s not the 1970s) • Source control holds source code • It tells you who did what and when (accountability) • Provides points in time for milestones • Is key to good Configuration Management • Build servers detect changes in source control and the turn the source code into binary code, run tests, perform inspection, etc. and produce builds
  • 5. Continuous Integration Goals • Find the problem when it is introduced • On every change (continuous): • Is it intended to meet a requirement (is it gold plating)? • Can anyone compile it (avoid "magic laptops" or "islands of knowledge")? • Did the new code break existing functionality (does it pass automated testing)? • Does it contain known bugs (is the foundation bad)? • Does it contain known security flaws (is it easily hackable)? • Can others work on the code (does it conform to coding standards)? • Does it actually meet the requirement (does it pass functional testing)? • Is deployment reproducible? Can it install?
  • 6. Typical CI Process Source Control Management Requirements System Build System 3. compiles code 4. scans code 5. runs unit tests 6. creates install package 2. verifies requirement traceability 7. deploys install package to target environment 8. runs integration/regression tests 9. reports progress of each step 1. checks in code
  • 7. If a Build Fails • If any of the evaluations fail, mark the build as FAILED! • No finger pointing! You know who did it! • Immediately, the developers: • Fix the code, or • Roll back the code to a known good state • If you don’t do either, then developers continue building on a bad foundation
  • 8. If a Build Succeeds You may have a candidate for a releasable product!
  • 9. Requirements for CI • requirements and architecture are well understood • target environment is known and available • an automated deployment mechanism exists • someone to coordinate and champion process • automated tests actually exist and are correct • transaction-based source control system • developers respond to bad builds quickly • the systems who support CI can interoperate with one another • everyone does their job, it’s not a replacement for other good processes
  • 10. Concerns with CI • CI requires personnel to maintain and develop • Sometimes failures are due to the environment • It takes time and effort to remove these issues • CI can not perform review tasks which require people: • User testing • Documentation review • Some builds take a long time • Use a build engineer to help the architect break up the software into smaller modules • Run some scans/tests nightly rather than on every change
  • 11. Summary • CI is all about detecting the problem as it is inserted into the product • CI accomplishes this by running tests and scans code at every change • CI requires a personnel and hardware investment • CI pays off for defect reduction