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

Security Testing Mobile Applications
Security Testing Mobile ApplicationsSecurity Testing Mobile Applications
Security Testing Mobile Applications
Denim Group
 
Speculative design in govt.pptx
Speculative design in govt.pptxSpeculative design in govt.pptx
Speculative design in govt.pptx
Policy Lab
 

What's hot (20)

100+ Beautiful Slides from #CannesLions '11 from @jessedee
100+ Beautiful Slides from #CannesLions '11 from @jessedee100+ Beautiful Slides from #CannesLions '11 from @jessedee
100+ Beautiful Slides from #CannesLions '11 from @jessedee
 
Versions of Android OS
Versions of Android OSVersions of Android OS
Versions of Android OS
 
Lessons From The Tipping Point
Lessons From The Tipping PointLessons From The Tipping Point
Lessons From The Tipping Point
 
Android pentesting the hackers-meetup
Android pentesting the hackers-meetupAndroid pentesting the hackers-meetup
Android pentesting the hackers-meetup
 
Insight Generation Process
Insight Generation ProcessInsight Generation Process
Insight Generation Process
 
DevOps Workflow and Build Pipeline
DevOps Workflow and Build PipelineDevOps Workflow and Build Pipeline
DevOps Workflow and Build Pipeline
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICD
 
Android Security & Penetration Testing
Android Security & Penetration TestingAndroid Security & Penetration Testing
Android Security & Penetration Testing
 
iOS-Application-Security-iAmPr3m
iOS-Application-Security-iAmPr3miOS-Application-Security-iAmPr3m
iOS-Application-Security-iAmPr3m
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 
Software development in the modern age
Software development in the modern ageSoftware development in the modern age
Software development in the modern age
 
Security Testing Mobile Applications
Security Testing Mobile ApplicationsSecurity Testing Mobile Applications
Security Testing Mobile Applications
 
HUAWEI Developer Programs Türkiye
HUAWEI Developer Programs TürkiyeHUAWEI Developer Programs Türkiye
HUAWEI Developer Programs Türkiye
 
Keynote: Frozen DevOps? The not-so-technical Last Mile @ DevOpsDays Portugal,...
Keynote: Frozen DevOps? The not-so-technical Last Mile @ DevOpsDays Portugal,...Keynote: Frozen DevOps? The not-so-technical Last Mile @ DevOpsDays Portugal,...
Keynote: Frozen DevOps? The not-so-technical Last Mile @ DevOpsDays Portugal,...
 
Ux maturity
Ux maturityUx maturity
Ux maturity
 
CICD with Jenkins
CICD with JenkinsCICD with Jenkins
CICD with Jenkins
 
How Zenly Nailed It - Product Methods!
How Zenly Nailed It - Product Methods!How Zenly Nailed It - Product Methods!
How Zenly Nailed It - Product Methods!
 
Action.Reaction - Emotional Design
Action.Reaction - Emotional DesignAction.Reaction - Emotional Design
Action.Reaction - Emotional Design
 
DevSecOps: Security With DevOps
DevSecOps: Security With DevOpsDevSecOps: Security With DevOps
DevSecOps: Security With DevOps
 
Speculative design in govt.pptx
Speculative design in govt.pptxSpeculative design in govt.pptx
Speculative design in govt.pptx
 

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

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
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...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

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