Continuous delivery - tools and techniques

Mike McGarr
Mike McGarr(NOW HIRING) Manager, Developer Productivity and Insights, Netflix at Netflix
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
1 of 54

Recommended

Choose your own adventure Chaos Engineering - QCon NYC 2017 by
Choose your own adventure Chaos Engineering - QCon NYC 2017 Choose your own adventure Chaos Engineering - QCon NYC 2017
Choose your own adventure Chaos Engineering - QCon NYC 2017 Nora Jones
1.4K views69 slides
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023 by
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023Steve Pember
1.9K views73 slides
The aggregate is dead! Long live the aggregate! - SpringIO.pdf by
The aggregate is dead! Long live the aggregate! - SpringIO.pdfThe aggregate is dead! Long live the aggregate! - SpringIO.pdf
The aggregate is dead! Long live the aggregate! - SpringIO.pdfSara Pellegrini
168 views229 slides
Nightwatch JS for End to End Tests by
Nightwatch JS for End to End TestsNightwatch JS for End to End Tests
Nightwatch JS for End to End TestsSriram Angajala
691 views13 slides
Chaos Engineering with Kubernetes - Berlin / Hamburg Chaos Engineering Meetup... by
Chaos Engineering with Kubernetes - Berlin / Hamburg Chaos Engineering Meetup...Chaos Engineering with Kubernetes - Berlin / Hamburg Chaos Engineering Meetup...
Chaos Engineering with Kubernetes - Berlin / Hamburg Chaos Engineering Meetup...Ana Medina
672 views41 slides
Microservice Architecture 101 by
Microservice Architecture 101Microservice Architecture 101
Microservice Architecture 101Kochih Wu
4.8K views29 slides

More Related Content

What's hot

Hexagonal architecture with Spring Boot [EPAM Java online conference] by
Hexagonal architecture with Spring Boot [EPAM Java online conference]Hexagonal architecture with Spring Boot [EPAM Java online conference]
Hexagonal architecture with Spring Boot [EPAM Java online conference]Mikalai Alimenkou
1.3K views27 slides
Chaos Engineering: Why the World Needs More Resilient Systems by
Chaos Engineering: Why the World Needs More Resilient SystemsChaos Engineering: Why the World Needs More Resilient Systems
Chaos Engineering: Why the World Needs More Resilient SystemsC4Media
546 views97 slides
SRE-iously! Reliability! by
SRE-iously! Reliability!SRE-iously! Reliability!
SRE-iously! Reliability!New Relic
412 views18 slides
Chaos Engineering Kubernetes by
Chaos Engineering KubernetesChaos Engineering Kubernetes
Chaos Engineering KubernetesAlex Soto
563 views50 slides
Vertical Slicing by
Vertical SlicingVertical Slicing
Vertical SlicingBen Clay, CSP (IoT - Expert)
7.2K views9 slides
Site reliability engineering - Lightning Talk by
Site reliability engineering - Lightning TalkSite reliability engineering - Lightning Talk
Site reliability engineering - Lightning TalkMichae Blakeney
237 views8 slides

What's hot(20)

Hexagonal architecture with Spring Boot [EPAM Java online conference] by Mikalai Alimenkou
Hexagonal architecture with Spring Boot [EPAM Java online conference]Hexagonal architecture with Spring Boot [EPAM Java online conference]
Hexagonal architecture with Spring Boot [EPAM Java online conference]
Mikalai Alimenkou1.3K views
Chaos Engineering: Why the World Needs More Resilient Systems by C4Media
Chaos Engineering: Why the World Needs More Resilient SystemsChaos Engineering: Why the World Needs More Resilient Systems
Chaos Engineering: Why the World Needs More Resilient Systems
C4Media546 views
SRE-iously! Reliability! by New Relic
SRE-iously! Reliability!SRE-iously! Reliability!
SRE-iously! Reliability!
New Relic412 views
Chaos Engineering Kubernetes by Alex Soto
Chaos Engineering KubernetesChaos Engineering Kubernetes
Chaos Engineering Kubernetes
Alex Soto563 views
Site reliability engineering - Lightning Talk by Michae Blakeney
Site reliability engineering - Lightning TalkSite reliability engineering - Lightning Talk
Site reliability engineering - Lightning Talk
Michae Blakeney237 views
Kubernetes architecture by Janakiram MSV
Kubernetes architectureKubernetes architecture
Kubernetes architecture
Janakiram MSV13.6K views
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer... by Simplilearn
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...
Simplilearn594 views
DEVSECOPS: Coding DevSecOps journey by Jason Suttie
DEVSECOPS: Coding DevSecOps journeyDEVSECOPS: Coding DevSecOps journey
DEVSECOPS: Coding DevSecOps journey
Jason Suttie1.3K views
Cloud-Native Observability by Tyler Treat
Cloud-Native ObservabilityCloud-Native Observability
Cloud-Native Observability
Tyler Treat888 views
Introduction to CI/CD by Hoang Le
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
Hoang Le1K views
How Can We Better Sell DevOps? by Gene Kim
How Can We Better Sell DevOps?How Can We Better Sell DevOps?
How Can We Better Sell DevOps?
Gene Kim11.7K views
Refactoring, Emergent Design & Evolutionary Architecture by Brad Appleton
Refactoring, Emergent Design & Evolutionary ArchitectureRefactoring, Emergent Design & Evolutionary Architecture
Refactoring, Emergent Design & Evolutionary Architecture
Brad Appleton2.5K views
Funny stories and anti-patterns from DevOps landscape by Mikalai Alimenkou
Funny stories and anti-patterns from DevOps landscapeFunny stories and anti-patterns from DevOps landscape
Funny stories and anti-patterns from DevOps landscape
Mikalai Alimenkou4.3K views
chaos-engineering-Knolx by Knoldus Inc.
chaos-engineering-Knolxchaos-engineering-Knolx
chaos-engineering-Knolx
Knoldus Inc.154 views
Introduction to DevOps and the AWS Code Services by Amazon Web Services
Introduction to DevOps and the AWS Code ServicesIntroduction to DevOps and the AWS Code Services
Introduction to DevOps and the AWS Code Services
Amazon Web Services2.1K views
Chaos Engineering: Why Breaking Things Should Be Practiced - AWS Developer Wo... by Amazon Web Services
Chaos Engineering: Why Breaking Things Should Be Practiced - AWS Developer Wo...Chaos Engineering: Why Breaking Things Should Be Practiced - AWS Developer Wo...
Chaos Engineering: Why Breaking Things Should Be Practiced - AWS Developer Wo...
Amazon Web Services1.1K views
An Introduction to Chaos Engineering by Gremlin
An Introduction to Chaos EngineeringAn Introduction to Chaos Engineering
An Introduction to Chaos Engineering
Gremlin281 views

Viewers also liked

Using CI for continuous delivery Part 1 by
Using CI for continuous delivery Part 1Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1Vishal Biyani
19.9K views22 slides
#CPBR7 - Métricas para startups by
#CPBR7 - Métricas para startups#CPBR7 - Métricas para startups
#CPBR7 - Métricas para startupsSaulo Arruda
2.4K views42 slides
Melhores Práticas no Uso da Nuvem AWS by
Melhores Práticas no Uso da Nuvem AWSMelhores Práticas no Uso da Nuvem AWS
Melhores Práticas no Uso da Nuvem AWSAmazon Web Services LATAM
3.8K views33 slides
Geospatial Indexing and Querying with MongoDB by
Geospatial Indexing and Querying with MongoDBGeospatial Indexing and Querying with MongoDB
Geospatial Indexing and Querying with MongoDBGrant Goodale
10.4K views33 slides
Arquiteturas de Alta Disponibilidade na AWS by
Arquiteturas de Alta Disponibilidade na AWSArquiteturas de Alta Disponibilidade na AWS
Arquiteturas de Alta Disponibilidade na AWSAmazon Web Services LATAM
5K views125 slides
Conhecendo as Opcoes de Bancos de Dados na Nuvem da AWS by
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 AWSAmazon Web Services LATAM
10.8K views31 slides

Viewers also liked(20)

Using CI for continuous delivery Part 1 by Vishal Biyani
Using CI for continuous delivery Part 1Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1
Vishal Biyani19.9K views
#CPBR7 - Métricas para startups by Saulo Arruda
#CPBR7 - Métricas para startups#CPBR7 - Métricas para startups
#CPBR7 - Métricas para startups
Saulo Arruda2.4K views
Geospatial Indexing and Querying with MongoDB by Grant Goodale
Geospatial Indexing and Querying with MongoDBGeospatial Indexing and Querying with MongoDB
Geospatial Indexing and Querying with MongoDB
Grant Goodale10.4K views
Continuous Delivery Applied (Agile Richmond) by Mike McGarr
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)
Mike McGarr2.6K views
CCMS_Launching_Presentation by Fareed Fattal
CCMS_Launching_PresentationCCMS_Launching_Presentation
CCMS_Launching_Presentation
Fareed Fattal119 views
Developing for Multiple Platforms by Daniel Pfeiffer
Developing for Multiple PlatformsDeveloping for Multiple Platforms
Developing for Multiple Platforms
Daniel Pfeiffer974 views
Continuous delivery applied (DC CI User Group) by Mike McGarr
Continuous delivery applied (DC CI User Group)Continuous delivery applied (DC CI User Group)
Continuous delivery applied (DC CI User Group)
Mike McGarr2.2K views
Software architecture8 by Ahmad Zee
Software architecture8Software architecture8
Software architecture8
Ahmad Zee321 views
pengurusan masa by babymee_u
pengurusan masapengurusan masa
pengurusan masa
babymee_u228 views
Jose victor patiño duran - curriculum by Omar ALI
Jose victor patiño duran -  curriculumJose victor patiño duran -  curriculum
Jose victor patiño duran - curriculum
Omar ALI413 views

Similar to Continuous delivery - tools and techniques

Continuous delivery applied by
Continuous delivery appliedContinuous delivery applied
Continuous delivery appliedMike McGarr
2.9K views57 slides
Continuous Delivery Applied (AgileDC) by
Continuous Delivery Applied (AgileDC)Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)Mike McGarr
1.4K views60 slides
Continuous Delivery Applied by
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery AppliedExcella
1.4K views68 slides
Continuous Delivery Applied by
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery AppliedDC Agile Engineering Conference
1.3K views68 slides
Continuous delivery applied (RJUG) by
Continuous delivery applied (RJUG)Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)Mike McGarr
4.2K views66 slides
DevOps: Sprinkle Dev, Sprinkle Ops, Let's make Cake, not Mud Pies by
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 PiesCentric Consulting
405 views39 slides

Similar to Continuous delivery - tools and techniques(20)

Continuous delivery applied by Mike McGarr
Continuous delivery appliedContinuous delivery applied
Continuous delivery applied
Mike McGarr2.9K views
Continuous Delivery Applied (AgileDC) by Mike McGarr
Continuous Delivery Applied (AgileDC)Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)
Mike McGarr1.4K views
Continuous Delivery Applied by Excella
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
Excella1.4K views
Continuous delivery applied (RJUG) by Mike McGarr
Continuous delivery applied (RJUG)Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)
Mike McGarr4.2K views
DevOps: Sprinkle Dev, Sprinkle Ops, Let's make Cake, not Mud Pies by Centric Consulting
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
Centric Consulting405 views
Ci for i-os-codemash-01.2013 by Kevin Munc
Ci for i-os-codemash-01.2013Ci for i-os-codemash-01.2013
Ci for i-os-codemash-01.2013
Kevin Munc1.9K views
10 Things You Probably Didn't Know About Plone by Jazkarta, Inc.
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
Jazkarta, Inc.1K views
Introduction to Continuous Delivery (BBWorld/DevCon 2013) by Mike McGarr
Introduction to Continuous Delivery (BBWorld/DevCon 2013)Introduction to Continuous Delivery (BBWorld/DevCon 2013)
Introduction to Continuous Delivery (BBWorld/DevCon 2013)
Mike McGarr4.8K views
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra... by Daniel Bryant
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...
Daniel Bryant606 views
Cloud native development without the toil by Ambassador Labs
Cloud native development without the toilCloud native development without the toil
Cloud native development without the toil
Ambassador Labs3.1K views
Continuous integration with jenkins by Pei-Tang Huang
Continuous integration with jenkinsContinuous integration with jenkins
Continuous integration with jenkins
Pei-Tang Huang1.8K views
10 Things About Plone - Software Freedom Day 2008 by Jazkarta, Inc.
10 Things About Plone - Software Freedom Day 200810 Things About Plone - Software Freedom Day 2008
10 Things About Plone - Software Freedom Day 2008
Jazkarta, Inc.843 views
11 Tools for your Open Source devops stack by Kris Buytaert
11 Tools for your Open Source devops stack 11 Tools for your Open Source devops stack
11 Tools for your Open Source devops stack
Kris Buytaert13.5K views
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa... by Marcin Grzejszczak
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...
Marcin Grzejszczak2.5K views
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac... by Daniel Bryant
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...
Daniel Bryant153 views
Continuous Integration, the minimum viable product by Julian Simpson
Continuous Integration, the minimum viable productContinuous Integration, the minimum viable product
Continuous Integration, the minimum viable product
Julian Simpson4.3K views
Qcon beijing 2010 by Vonbo
Qcon beijing 2010Qcon beijing 2010
Qcon beijing 2010
Vonbo566 views
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter... by CloudBees
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...
CloudBees2.1K views

More from Mike McGarr

Better DevEx at Netflix (QCon NY 2018) by
Better DevEx at Netflix (QCon NY 2018)Better DevEx at Netflix (QCon NY 2018)
Better DevEx at Netflix (QCon NY 2018)Mike McGarr
1.2K views102 slides
Productivity Engineering: Surviving DevOps by
Productivity Engineering: Surviving DevOpsProductivity Engineering: Surviving DevOps
Productivity Engineering: Surviving DevOpsMike McGarr
655 views136 slides
Engineering change: leading a transformation by
Engineering change: leading a transformationEngineering change: leading a transformation
Engineering change: leading a transformationMike McGarr
471 views110 slides
Dependencies, distributed code and engineering velocity by
Dependencies, distributed code and engineering velocityDependencies, distributed code and engineering velocity
Dependencies, distributed code and engineering velocityMike McGarr
531 views72 slides
Continuous Delivery at Netflix, and beyond by
Continuous Delivery at Netflix, and beyondContinuous Delivery at Netflix, and beyond
Continuous Delivery at Netflix, and beyondMike McGarr
1.6K views56 slides
Build and deploy to the cloud using NetflixOSS (Gradle Summit 2016) by
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)Mike McGarr
1.7K views67 slides

More from Mike McGarr(13)

Better DevEx at Netflix (QCon NY 2018) by Mike McGarr
Better DevEx at Netflix (QCon NY 2018)Better DevEx at Netflix (QCon NY 2018)
Better DevEx at Netflix (QCon NY 2018)
Mike McGarr1.2K views
Productivity Engineering: Surviving DevOps by Mike McGarr
Productivity Engineering: Surviving DevOpsProductivity Engineering: Surviving DevOps
Productivity Engineering: Surviving DevOps
Mike McGarr655 views
Engineering change: leading a transformation by Mike McGarr
Engineering change: leading a transformationEngineering change: leading a transformation
Engineering change: leading a transformation
Mike McGarr471 views
Dependencies, distributed code and engineering velocity by Mike McGarr
Dependencies, distributed code and engineering velocityDependencies, distributed code and engineering velocity
Dependencies, distributed code and engineering velocity
Mike McGarr531 views
Continuous Delivery at Netflix, and beyond by Mike McGarr
Continuous Delivery at Netflix, and beyondContinuous Delivery at Netflix, and beyond
Continuous Delivery at Netflix, and beyond
Mike McGarr1.6K views
Build and deploy to the cloud using NetflixOSS (Gradle Summit 2016) by Mike McGarr
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)
Mike McGarr1.7K views
Beyond the Culture Deck: What you don't already know about Netflix by Mike McGarr
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
Mike McGarr4.4K views
Shepherding change: leading your DevOps transformation by Mike McGarr
Shepherding change: leading your DevOps transformationShepherding change: leading your DevOps transformation
Shepherding change: leading your DevOps transformation
Mike McGarr5.7K views
Zero to the Cloud with @NetflixOSS by Mike McGarr
Zero to the Cloud with @NetflixOSSZero to the Cloud with @NetflixOSS
Zero to the Cloud with @NetflixOSS
Mike McGarr4.2K views
Engineering Tools at Netflix: Enabling Continuous Delivery by Mike McGarr
Engineering Tools at Netflix: Enabling Continuous DeliveryEngineering Tools at Netflix: Enabling Continuous Delivery
Engineering Tools at Netflix: Enabling Continuous Delivery
Mike McGarr5.9K views
Implementing DevOps by Mike McGarr
Implementing DevOpsImplementing DevOps
Implementing DevOps
Mike McGarr4.8K views
Infrastructure as Code (BBWorld/DevCon13) by Mike McGarr
Infrastructure as Code (BBWorld/DevCon13)Infrastructure as Code (BBWorld/DevCon13)
Infrastructure as Code (BBWorld/DevCon13)
Mike McGarr6.7K views
Continuous Delivery by Mike McGarr
Continuous DeliveryContinuous Delivery
Continuous Delivery
Mike McGarr15.1K views

Recently uploaded

Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... by
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...ShapeBlue
138 views18 slides
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ... by
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...ShapeBlue
79 views17 slides
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates by
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesKeynote Talk: Open Source is Not Dead - Charles Schulz - Vates
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesShapeBlue
210 views15 slides
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti... by
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...ShapeBlue
98 views29 slides
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ... by
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...ShapeBlue
144 views12 slides
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool by
Extending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPoolExtending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPool
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPoolShapeBlue
84 views10 slides

Recently uploaded(20)

Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... by ShapeBlue
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
ShapeBlue138 views
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ... by ShapeBlue
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
ShapeBlue79 views
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates by ShapeBlue
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesKeynote Talk: Open Source is Not Dead - Charles Schulz - Vates
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates
ShapeBlue210 views
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti... by ShapeBlue
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
ShapeBlue98 views
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ... by ShapeBlue
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
ShapeBlue144 views
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool by ShapeBlue
Extending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPoolExtending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPool
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool
ShapeBlue84 views
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT by ShapeBlue
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
ShapeBlue166 views
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue by ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
ShapeBlue163 views
NTGapps NTG LowCode Platform by Mustafa Kuğu
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform
Mustafa Kuğu365 views
Why and How CloudStack at weSystems - Stephan Bienek - weSystems by ShapeBlue
Why and How CloudStack at weSystems - Stephan Bienek - weSystemsWhy and How CloudStack at weSystems - Stephan Bienek - weSystems
Why and How CloudStack at weSystems - Stephan Bienek - weSystems
ShapeBlue197 views
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc160 views
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue by ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
ShapeBlue179 views
Business Analyst Series 2023 - Week 4 Session 7 by DianaGray10
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7
DianaGray10126 views
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T by ShapeBlue
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
ShapeBlue112 views
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... by ShapeBlue
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
ShapeBlue123 views
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or... by ShapeBlue
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
ShapeBlue158 views
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
ShapeBlue94 views
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava... by ShapeBlue
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
ShapeBlue101 views
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue by ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
ShapeBlue222 views
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R... by ShapeBlue
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
ShapeBlue132 views

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