SlideShare a Scribd company logo
1 of 54
Download to read offline
Con$nuous	
  Delivery	
  
 Tools	
  and	
  Techniques	
  

                  Mike	
  McGarr	
  
                  mike.mcgarr@excella.com	
  
                  h=p://earlyandoAen.wordpress.com	
  	
  
                  @jmichaelmcgarr	
  
About	
  Me	
  

•  J.	
  Michael	
  (Mike)	
  McGarr	
  
•  Excella	
  Consul$ng,	
  Arlington	
  VA	
  
•  Lead	
  of	
  Excella’s	
  Java	
  Center	
  of	
  Excellence	
  
	
  




                                                                       2	
  
Excella	
  is	
  Hiring!	
  




                               3	
  
Con$nuous	
  Delivery	
  is…	
  

…a	
  set	
  of	
  prac$ces	
  and	
  principles	
  aimed	
  at,	
  
building,	
  tes+ng,	
  and	
  releasing	
  soAware	
  
faster	
  and	
  more	
  frequently.	
  




                                                                  4
5
Goals	
  



Quality	
           Cycle	
  Time	
  


                                        6
Con$nuous	
  what?	
  


Continuous       Continuous   Continuous
Integration       Delivery    Deployment




                                       7
Con$nuous	
  Deployment	
  

                  Build	
  Pipelines	
  

          Deployment	
  Automa$on	
  



Configura$on	
       Con$nuous	
  
                                           Tes$ng	
  
Management	
        Integra$on	
  



                         Agile	
  

                                                        8
Developers	
  




             http://flic.kr/p/5cK2
                                     9	
  
Version	
  Control	
  




                         10
Build	
  Automa$on	
  




                         11
Unit	
  Tes$ng	
  




                     12
JUnit,	
  Hamcrest	
  &	
  Mockito	
  




                                         13
14
Spock	
  




            15
Test	
  Driven	
  Development	
  




http://reddevnews.com/articles/2007/11/01/testdriven-development-tdd.aspx   16
Integra$on	
  Tes$ng	
  




                           17
Sta$c	
  Code	
  Analysis	
  




          CheckStyle


                                18
The	
  Team	
  




                  19	
  
Agile	
  




            20
Task	
  Management	
  




                         21
Con$nuous	
  Integra$on	
  
Check-­‐in	
  Daily	
  
Commit	
  to	
  Trunk	
  	
  
Automate	
  the	
  Build	
  
Keep	
  the	
  Build	
  Fast	
  
Every	
  Commit	
  results	
  in	
  Build	
  
Test	
  in	
  Clone	
  of	
  Produc$on	
  
Automate	
  Deployment	
  
                                                22
Con$nuous	
  Integra$on	
  




                              23
Jenkins	
  




              24
Dependency	
  Management	
  




                               25
Nexus	
  




            26
Technical	
  Debt	
  




                        27
Sonar	
  




            28
Specifica$on	
  by	
  Example	
  




                                   29
Spock	
  and	
  Geb	
  




                          30
Concordion	
  




                 31
Deployment	
  
                 http://flic.kr/p/y8K
                             32
Build	
  Pipelines	
  




                         33
Single	
  Iden$fier	
  




                         34
Versioning	
  




                 35
Code	
  Deployments	
  




                          36
Database	
  Management	
  




                             37
38
Run$me	
  Configura$on	
  



ESCAPE            Database	
  




                                 39
Infrastructure	
  Management	
  




                                   40
Puppet	
  




             41
Vagrant	
  




              42
Op$mizing	
  




            http://flic.kr/p/6hDAEK
                                      43	
  
Evolu$onary	
  Design	
  




                            44
Performance	
  Tes$ng	
  




                            45
Performance	
  Tes$ng	
  




                            46
Monitoring	
  




                 47
Con$nuous	
  Deployment	
  




                              48
Contact	
  Me	
  


Mike McGarr
mike.mcgarr@excella.com
http://earlyandoften.wordpress.com
@jmichaelmcgarr




                                      49
Further	
  Reading	
  
•  Continuous Delivery: Reliable Software Releases through Build, Test
   and Deployment Automation, by Jez Humble and David Farley -
   http://www.amazon.com/Continuous-Delivery-Deployment-Automation-
   Addison-Wesley/dp/0321601912
•  Test Driven Development (TDD) –
   http://en.wikipedia.org/wiki/Test-driven_development
•  Introducing BDD, by Dan North – http://dannorth.net/introducing-bdd/
•  Agile Manifesto – http://agilemanifesto.org/
•  Scrum – http://www.scrumalliance.org/learn_about_scrum
•  Continuous Integration, by Martin Fowler –
   http://martinfowler.com/articles/continuousIntegration.html
•  Specification by Example, by Gojko Adzic -
   http://specificationbyexample.com/
•  Build Pipelines -
   http://www.magpiebrain.com/2009/12/13/a-brief-and-incomplete-
   history-of-build-pipelines/

                                                                          50
Further	
  Reading	
  
•  Maven Releases on Steriods, by Axel Fontaine –
   http://www.axelfontaine.com/2011/01/maven-releases-on-steroids-
   adios.html
•  What is in a Name? Usually a version number, actually., by James
   Betteley -
   http://jamesbetteley.wordpress.com/2011/07/07/what-is-in-a-name-
   usually-a-version-number-actually/
•  Build Once, Deploy Many -
   http://earlyandoften.wordpress.com/2010/09/09/build-once-deploy-
   many/
•  Evolutionary Design - http://martinfowler.com/articles/designDead.html
•  Continuous Deployment -
   http://timothyfitz.wordpress.com/2009/02/08/continuous-deployment/
•  Sonar’s Technical Debt Calculation -
   http://www.sonarsource.org/evaluate-your-technical-debt-with-sonar/
•  Gherkin - https://github.com/cucumber/cucumber/wiki/Gherkin

                                                                            51
Tools	
  
•    Git - http://git-scm.com/
•    Subversion - http://subversion.tigris.org/
•    Mercurial - http://mercurial.selenic.com/
•    Rational ClearCase -
     http://www-01.ibm.com/software/awdtools/clearcase/
•    Serena Dimensions CM -
     http://www.serena.com/products/dimensions-cm/index.html
•    Ant - http://ant.apache.org/
•    Ivy - http://ant.apache.org/ivy/
•    Maven - http://maven.apache.org/
•    Gradle - http://gradle.org/
•    JUnit – http://www.junit.org/
•    Mockito – http://code.google.com/p/mockito/
•    Hamcrest – http://code.google.com/p/hamcrest/
•    Spock – http://code.google.com/p/spock/
•    dbUnit – http://www.dbunit.org/
•    Unitils – http://unitils.org/summary.html
                                                               52
Tools	
  
•    Findbugs – http://findbugs.sourceforge.net/
•    PMD – http://pmd.sourceforge.net/
•    Checkstyle – http://checkstyle.sourceforge.net/
•    JIRA – http://www.atlassian.com/software/jira/overview
•    GitHub – https://github.com/
•    Jenkins - http://jenkins-ci.org/
•    TeamCity – http://www.jetbrains.com/teamcity/
•    Nexus – http://www.sonatype.org/nexus/
•    Artifactory – http://www.jfrog.com/products.php
•    Sonar – http://www.sonarsource.org/
•    FitNesse –
•    Concordion – http://www.concordion.org/
•    Cucumber – http://cukes.info/
•    easyb – http://www.easyb.org/
•    jBehave - http://jbehave.org/
•    geb - http://www.gebish.org/

                                                              53
Tools	
  
•    Liquibase – www.liquibase.org/
•    Flyway – http://code.google.com/p/flyway/
•    Escape – http://code.google.com/p/escservesconfig/
•    Puppet – http://puppetlabs.com/
•    Chef – http://www.opscode.com/chef/
•    Vagrant – http://vagrantup.com/
•    JMeter – http://jmeter.apache.org/
•    Nagios - http://www.nagios.org/




                                                          54

More Related Content

What's hot

Introduction for ChatGPT - Primer to Dummies
Introduction for ChatGPT - Primer to DummiesIntroduction for ChatGPT - Primer to Dummies
Introduction for ChatGPT - Primer to Dummies
SwethaKJ2
 
Clean architecture
Clean architectureClean architecture
Clean architecture
andbed
 

What's hot (20)

Introduction for ChatGPT - Primer to Dummies
Introduction for ChatGPT - Primer to DummiesIntroduction for ChatGPT - Primer to Dummies
Introduction for ChatGPT - Primer to Dummies
 
Introduction to Web 3 - Tony Aube at WAQ19
Introduction to Web 3 - Tony Aube at WAQ19Introduction to Web 3 - Tony Aube at WAQ19
Introduction to Web 3 - Tony Aube at WAQ19
 
What is UX?
What is UX?What is UX?
What is UX?
 
20 prompts for chatGPT that make life easier for developers.pdf
20 prompts for chatGPT that make life easier for developers.pdf20 prompts for chatGPT that make life easier for developers.pdf
20 prompts for chatGPT that make life easier for developers.pdf
 
Evangelizing User Experience Design
Evangelizing User Experience DesignEvangelizing User Experience Design
Evangelizing User Experience Design
 
Test at Scale within your Internal Networks with BrowserStack Local Testing
Test at Scale within your Internal Networks with BrowserStack Local TestingTest at Scale within your Internal Networks with BrowserStack Local Testing
Test at Scale within your Internal Networks with BrowserStack Local Testing
 
The foundations of metaverse
The foundations of metaverseThe foundations of metaverse
The foundations of metaverse
 
64 UX Design Interview Questions at Google, Facebook, Amazon, Microsoft, Sale...
64 UX Design Interview Questions at Google, Facebook, Amazon, Microsoft, Sale...64 UX Design Interview Questions at Google, Facebook, Amazon, Microsoft, Sale...
64 UX Design Interview Questions at Google, Facebook, Amazon, Microsoft, Sale...
 
UX STRAT USA, Peter Merholz, "My Journey with Experience Strategy"
UX STRAT USA, Peter Merholz, "My Journey with Experience Strategy"UX STRAT USA, Peter Merholz, "My Journey with Experience Strategy"
UX STRAT USA, Peter Merholz, "My Journey with Experience Strategy"
 
Great UX Portfolios
Great UX PortfoliosGreat UX Portfolios
Great UX Portfolios
 
Intro to Azure DevOps
Intro to Azure DevOpsIntro to Azure DevOps
Intro to Azure DevOps
 
Cross browser testing
Cross browser testingCross browser testing
Cross browser testing
 
Clean architecture
Clean architectureClean architecture
Clean architecture
 
Metaverse
MetaverseMetaverse
Metaverse
 
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
 
Github basics
Github basicsGithub basics
Github basics
 
Metaverse .pdf
Metaverse .pdfMetaverse .pdf
Metaverse .pdf
 
UX UI - Principles and Best Practices 2014-2015
UX UI - Principles and Best Practices 2014-2015UX UI - Principles and Best Practices 2014-2015
UX UI - Principles and Best Practices 2014-2015
 
Introduction to E2E in Cypress
Introduction to E2E in CypressIntroduction to E2E in Cypress
Introduction to E2E in Cypress
 
ChatGPT SEO Guide 2023
ChatGPT SEO Guide 2023ChatGPT SEO Guide 2023
ChatGPT SEO Guide 2023
 

Viewers also liked

CCMS_Launching_Presentation
CCMS_Launching_PresentationCCMS_Launching_Presentation
CCMS_Launching_Presentation
Fareed Fattal
 
Software architecture8
Software architecture8Software architecture8
Software architecture8
Ahmad Zee
 
pengurusan masa
pengurusan masapengurusan masa
pengurusan masa
babymee_u
 
Walk by faith_guillermo_maldonado_org
Walk by faith_guillermo_maldonado_orgWalk by faith_guillermo_maldonado_org
Walk by faith_guillermo_maldonado_org
Juan Jacobo Rosseau
 

Viewers also liked (20)

Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1
 
#CPBR7 - Métricas para startups
#CPBR7 - Métricas para startups#CPBR7 - Métricas para startups
#CPBR7 - Métricas para startups
 
Melhores Práticas no Uso da Nuvem AWS
Melhores Práticas no Uso da Nuvem AWSMelhores Práticas no Uso da Nuvem AWS
Melhores Práticas no Uso da Nuvem AWS
 
Geospatial Indexing and Querying with MongoDB
Geospatial Indexing and Querying with MongoDBGeospatial Indexing and Querying with MongoDB
Geospatial Indexing and Querying with MongoDB
 
Arquiteturas de Alta Disponibilidade na AWS
Arquiteturas de Alta Disponibilidade na AWSArquiteturas de Alta Disponibilidade na AWS
Arquiteturas de Alta Disponibilidade na AWS
 
Conhecendo as Opcoes de Bancos de Dados na Nuvem da AWS
Conhecendo as Opcoes de Bancos de Dados na Nuvem da AWSConhecendo as Opcoes de Bancos de Dados na Nuvem da AWS
Conhecendo as Opcoes de Bancos de Dados na Nuvem da AWS
 
State of the web
State of the webState of the web
State of the web
 
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)
 
CCMS_Launching_Presentation
CCMS_Launching_PresentationCCMS_Launching_Presentation
CCMS_Launching_Presentation
 
Developing for Multiple Platforms
Developing for Multiple PlatformsDeveloping for Multiple Platforms
Developing for Multiple Platforms
 
עמית.ג
עמית.געמית.ג
עמית.ג
 
Continuous delivery applied (DC CI User Group)
Continuous delivery applied (DC CI User Group)Continuous delivery applied (DC CI User Group)
Continuous delivery applied (DC CI User Group)
 
Software architecture8
Software architecture8Software architecture8
Software architecture8
 
Lahermosabiarritz
LahermosabiarritzLahermosabiarritz
Lahermosabiarritz
 
pengurusan masa
pengurusan masapengurusan masa
pengurusan masa
 
Transporte 1
Transporte 1Transporte 1
Transporte 1
 
Walk by faith_guillermo_maldonado_org
Walk by faith_guillermo_maldonado_orgWalk by faith_guillermo_maldonado_org
Walk by faith_guillermo_maldonado_org
 
Pip
PipPip
Pip
 
Jose victor patiño duran - curriculum
Jose victor patiño duran -  curriculumJose victor patiño duran -  curriculum
Jose victor patiño duran - curriculum
 
PAGINA WEB DE JUAN JACOBO ROSSEAU
PAGINA WEB DE JUAN JACOBO ROSSEAUPAGINA WEB DE JUAN JACOBO ROSSEAU
PAGINA WEB DE JUAN JACOBO ROSSEAU
 

Similar to Continuous delivery - tools and techniques

Continuous delivery applied
Continuous delivery appliedContinuous delivery applied
Continuous delivery applied
Mike McGarr
 
Continuous integration with jenkins
Continuous integration with jenkinsContinuous integration with jenkins
Continuous integration with jenkins
Pei-Tang Huang
 

Similar to Continuous delivery - tools and techniques (20)

Continuous delivery applied
Continuous delivery appliedContinuous delivery applied
Continuous delivery applied
 
Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
 
Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)
 
DevOps: Sprinkle Dev, Sprinkle Ops, Let's make Cake, not Mud Pies
DevOps: Sprinkle Dev, Sprinkle Ops, Let's make Cake, not Mud PiesDevOps: Sprinkle Dev, Sprinkle Ops, Let's make Cake, not Mud Pies
DevOps: Sprinkle Dev, Sprinkle Ops, Let's make Cake, not Mud Pies
 
Ci for i-os-codemash-01.2013
Ci for i-os-codemash-01.2013Ci for i-os-codemash-01.2013
Ci for i-os-codemash-01.2013
 
Java User Group Cologne
Java User Group CologneJava User Group Cologne
Java User Group Cologne
 
10 Things You Probably Didn't Know About Plone
10 Things You Probably Didn't Know About Plone10 Things You Probably Didn't Know About Plone
10 Things You Probably Didn't Know About Plone
 
Introduction to Continuous Delivery (BBWorld/DevCon 2013)
Introduction to Continuous Delivery (BBWorld/DevCon 2013)Introduction to Continuous Delivery (BBWorld/DevCon 2013)
Introduction to Continuous Delivery (BBWorld/DevCon 2013)
 
Cloud native development without the toil
Cloud native development without the toilCloud native development without the toil
Cloud native development without the toil
 
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
 
Continuous integration with jenkins
Continuous integration with jenkinsContinuous integration with jenkins
Continuous integration with jenkins
 
10 Things About Plone - Software Freedom Day 2008
10 Things About Plone - Software Freedom Day 200810 Things About Plone - Software Freedom Day 2008
10 Things About Plone - Software Freedom Day 2008
 
11 Tools for your Open Source devops stack
11 Tools for your Open Source devops stack 11 Tools for your Open Source devops stack
11 Tools for your Open Source devops stack
 
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...
 
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
 
Continuous Integration, the minimum viable product
Continuous Integration, the minimum viable productContinuous Integration, the minimum viable product
Continuous Integration, the minimum viable product
 
Qcon beijing 2010
Qcon beijing 2010Qcon beijing 2010
Qcon beijing 2010
 
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
 

More from Mike McGarr

More from Mike McGarr (13)

Better DevEx at Netflix (QCon NY 2018)
Better DevEx at Netflix (QCon NY 2018)Better DevEx at Netflix (QCon NY 2018)
Better DevEx at Netflix (QCon NY 2018)
 
Productivity Engineering: Surviving DevOps
Productivity Engineering: Surviving DevOpsProductivity Engineering: Surviving DevOps
Productivity Engineering: Surviving DevOps
 
Engineering change: leading a transformation
Engineering change: leading a transformationEngineering change: leading a transformation
Engineering change: leading a transformation
 
Dependencies, distributed code and engineering velocity
Dependencies, distributed code and engineering velocityDependencies, distributed code and engineering velocity
Dependencies, distributed code and engineering velocity
 
Continuous Delivery at Netflix, and beyond
Continuous Delivery at Netflix, and beyondContinuous Delivery at Netflix, and beyond
Continuous Delivery at Netflix, and beyond
 
Build and deploy to the cloud using NetflixOSS (Gradle Summit 2016)
Build and deploy to the cloud using NetflixOSS (Gradle Summit 2016)Build and deploy to the cloud using NetflixOSS (Gradle Summit 2016)
Build and deploy to the cloud using NetflixOSS (Gradle Summit 2016)
 
Beyond the Culture Deck: What you don't already know about Netflix
Beyond the Culture Deck: What you don't already know about NetflixBeyond the Culture Deck: What you don't already know about Netflix
Beyond the Culture Deck: What you don't already know about Netflix
 
Shepherding change: leading your DevOps transformation
Shepherding change: leading your DevOps transformationShepherding change: leading your DevOps transformation
Shepherding change: leading your DevOps transformation
 
Zero to the Cloud with @NetflixOSS
Zero to the Cloud with @NetflixOSSZero to the Cloud with @NetflixOSS
Zero to the Cloud with @NetflixOSS
 
Engineering Tools at Netflix: Enabling Continuous Delivery
Engineering Tools at Netflix: Enabling Continuous DeliveryEngineering Tools at Netflix: Enabling Continuous Delivery
Engineering Tools at Netflix: Enabling Continuous Delivery
 
Implementing DevOps
Implementing DevOpsImplementing DevOps
Implementing DevOps
 
Infrastructure as Code (BBWorld/DevCon13)
Infrastructure as Code (BBWorld/DevCon13)Infrastructure as Code (BBWorld/DevCon13)
Infrastructure as Code (BBWorld/DevCon13)
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
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
 

Recently uploaded (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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...
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines 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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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...
 

Continuous delivery - tools and techniques

  • 1. Con$nuous  Delivery   Tools  and  Techniques   Mike  McGarr   mike.mcgarr@excella.com   h=p://earlyandoAen.wordpress.com     @jmichaelmcgarr  
  • 2. About  Me   •  J.  Michael  (Mike)  McGarr   •  Excella  Consul$ng,  Arlington  VA   •  Lead  of  Excella’s  Java  Center  of  Excellence     2  
  • 4. Con$nuous  Delivery  is…   …a  set  of  prac$ces  and  principles  aimed  at,   building,  tes+ng,  and  releasing  soAware   faster  and  more  frequently.   4
  • 5. 5
  • 6. Goals   Quality   Cycle  Time   6
  • 7. Con$nuous  what?   Continuous Continuous Continuous Integration Delivery Deployment 7
  • 8. Con$nuous  Deployment   Build  Pipelines   Deployment  Automa$on   Configura$on   Con$nuous   Tes$ng   Management   Integra$on   Agile   8
  • 9. Developers   http://flic.kr/p/5cK2 9  
  • 13. JUnit,  Hamcrest  &  Mockito   13
  • 14. 14
  • 15. Spock   15
  • 16. Test  Driven  Development   http://reddevnews.com/articles/2007/11/01/testdriven-development-tdd.aspx 16
  • 18. Sta$c  Code  Analysis   CheckStyle 18
  • 19. The  Team   19  
  • 20. Agile   20
  • 22. Con$nuous  Integra$on   Check-­‐in  Daily   Commit  to  Trunk     Automate  the  Build   Keep  the  Build  Fast   Every  Commit  results  in  Build   Test  in  Clone  of  Produc$on   Automate  Deployment   22
  • 26. Nexus   26
  • 28. Sonar   28
  • 32. Deployment   http://flic.kr/p/y8K 32
  • 38. 38
  • 41. Puppet   41
  • 43. Op$mizing   http://flic.kr/p/6hDAEK 43  
  • 49. Contact  Me   Mike McGarr mike.mcgarr@excella.com http://earlyandoften.wordpress.com @jmichaelmcgarr 49
  • 50. Further  Reading   •  Continuous Delivery: Reliable Software Releases through Build, Test and Deployment Automation, by Jez Humble and David Farley - http://www.amazon.com/Continuous-Delivery-Deployment-Automation- Addison-Wesley/dp/0321601912 •  Test Driven Development (TDD) – http://en.wikipedia.org/wiki/Test-driven_development •  Introducing BDD, by Dan North – http://dannorth.net/introducing-bdd/ •  Agile Manifesto – http://agilemanifesto.org/ •  Scrum – http://www.scrumalliance.org/learn_about_scrum •  Continuous Integration, by Martin Fowler – http://martinfowler.com/articles/continuousIntegration.html •  Specification by Example, by Gojko Adzic - http://specificationbyexample.com/ •  Build Pipelines - http://www.magpiebrain.com/2009/12/13/a-brief-and-incomplete- history-of-build-pipelines/ 50
  • 51. Further  Reading   •  Maven Releases on Steriods, by Axel Fontaine – http://www.axelfontaine.com/2011/01/maven-releases-on-steroids- adios.html •  What is in a Name? Usually a version number, actually., by James Betteley - http://jamesbetteley.wordpress.com/2011/07/07/what-is-in-a-name- usually-a-version-number-actually/ •  Build Once, Deploy Many - http://earlyandoften.wordpress.com/2010/09/09/build-once-deploy- many/ •  Evolutionary Design - http://martinfowler.com/articles/designDead.html •  Continuous Deployment - http://timothyfitz.wordpress.com/2009/02/08/continuous-deployment/ •  Sonar’s Technical Debt Calculation - http://www.sonarsource.org/evaluate-your-technical-debt-with-sonar/ •  Gherkin - https://github.com/cucumber/cucumber/wiki/Gherkin 51
  • 52. Tools   •  Git - http://git-scm.com/ •  Subversion - http://subversion.tigris.org/ •  Mercurial - http://mercurial.selenic.com/ •  Rational ClearCase - http://www-01.ibm.com/software/awdtools/clearcase/ •  Serena Dimensions CM - http://www.serena.com/products/dimensions-cm/index.html •  Ant - http://ant.apache.org/ •  Ivy - http://ant.apache.org/ivy/ •  Maven - http://maven.apache.org/ •  Gradle - http://gradle.org/ •  JUnit – http://www.junit.org/ •  Mockito – http://code.google.com/p/mockito/ •  Hamcrest – http://code.google.com/p/hamcrest/ •  Spock – http://code.google.com/p/spock/ •  dbUnit – http://www.dbunit.org/ •  Unitils – http://unitils.org/summary.html 52
  • 53. Tools   •  Findbugs – http://findbugs.sourceforge.net/ •  PMD – http://pmd.sourceforge.net/ •  Checkstyle – http://checkstyle.sourceforge.net/ •  JIRA – http://www.atlassian.com/software/jira/overview •  GitHub – https://github.com/ •  Jenkins - http://jenkins-ci.org/ •  TeamCity – http://www.jetbrains.com/teamcity/ •  Nexus – http://www.sonatype.org/nexus/ •  Artifactory – http://www.jfrog.com/products.php •  Sonar – http://www.sonarsource.org/ •  FitNesse – •  Concordion – http://www.concordion.org/ •  Cucumber – http://cukes.info/ •  easyb – http://www.easyb.org/ •  jBehave - http://jbehave.org/ •  geb - http://www.gebish.org/ 53
  • 54. Tools   •  Liquibase – www.liquibase.org/ •  Flyway – http://code.google.com/p/flyway/ •  Escape – http://code.google.com/p/escservesconfig/ •  Puppet – http://puppetlabs.com/ •  Chef – http://www.opscode.com/chef/ •  Vagrant – http://vagrantup.com/ •  JMeter – http://jmeter.apache.org/ •  Nagios - http://www.nagios.org/ 54