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

What's hot (20)

Tripwire Marketing Ideas and Examples with Premiums
Tripwire Marketing Ideas and Examples with PremiumsTripwire Marketing Ideas and Examples with Premiums
Tripwire Marketing Ideas and Examples with Premiums
 
An Introduction to Lightning Web Components
An Introduction to Lightning Web ComponentsAn Introduction to Lightning Web Components
An Introduction to Lightning Web Components
 
Intro to GitHub Actions
Intro to GitHub ActionsIntro to GitHub Actions
Intro to GitHub Actions
 
API Strategy Introduction
API Strategy IntroductionAPI Strategy Introduction
API Strategy Introduction
 
Kubernetes security
Kubernetes securityKubernetes security
Kubernetes security
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineAnatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
 
Deploy Application on Kubernetes
Deploy Application on KubernetesDeploy Application on Kubernetes
Deploy Application on Kubernetes
 
How To Create The Perfect Offer
How To Create The Perfect OfferHow To Create The Perfect Offer
How To Create The Perfect Offer
 
Lwc presentation
Lwc presentationLwc presentation
Lwc presentation
 
Brian Balfour: Building A Growth Machine
Brian Balfour: Building A Growth MachineBrian Balfour: Building A Growth Machine
Brian Balfour: Building A Growth Machine
 
Managing Global Teams - Perry Belcher
Managing Global Teams - Perry BelcherManaging Global Teams - Perry Belcher
Managing Global Teams - Perry Belcher
 
Cypress - Best Practices
Cypress - Best PracticesCypress - Best Practices
Cypress - Best Practices
 
Kubernetes or OpenShift - choosing your container platform for Dev and Ops
Kubernetes or OpenShift - choosing your container platform for Dev and OpsKubernetes or OpenShift - choosing your container platform for Dev and Ops
Kubernetes or OpenShift - choosing your container platform for Dev and Ops
 
User authentication and authorizarion in Kubernetes
User authentication and authorizarion in KubernetesUser authentication and authorizarion in Kubernetes
User authentication and authorizarion in Kubernetes
 
GitOps Toolkit (Cloud Native Nordics Tech Talk)
GitOps Toolkit (Cloud Native Nordics Tech Talk)GitOps Toolkit (Cloud Native Nordics Tech Talk)
GitOps Toolkit (Cloud Native Nordics Tech Talk)
 
Data driven Automation Framework with Selenium
Data driven Automation Framework with Selenium Data driven Automation Framework with Selenium
Data driven Automation Framework with Selenium
 
Growth Hacking: A Crash Course
Growth Hacking: A Crash CourseGrowth Hacking: A Crash Course
Growth Hacking: A Crash Course
 
GitHub Actions with Node.js
GitHub Actions with Node.jsGitHub Actions with Node.js
GitHub Actions with Node.js
 
API as-a-Product with Azure API Management (APIM)
API as-a-Product with Azure API Management (APIM)API as-a-Product with Azure API Management (APIM)
API as-a-Product with Azure API Management (APIM)
 

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

Recently uploaded (20)

"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
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...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 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...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 

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