SlideShare une entreprise Scribd logo
1  sur  68
Continuous Delivery
                           Applied

Mike McGarr
jmcgarr@gmail.com
@jmichaelmcgarr
http://earlyandoften.wordpress.com
http://www.meetup.com/DC-continuous-integration/
About Me
• J. Michael (Mike) McGarr
• 11 years as an IT consultant
• Director of DevOps for Learn, Blackboard
• Founder of the DC Continuous
  Integration, Delivery, and Deployment
  Meetup




                                             2
Continuous Delivery is…

…a set of practices and principles aimed
at, building, testing, and releasing software
faster and more frequently.




                                            3
4
5
“Our highest priority is to satisfy the
customer through early and
continuous delivery of valuable
software.”
                            - First of the Twelve
          Principles behind the Agile Manifesto




                                                    6
Quality   or Speed



                     7
Cycle Time

“How long would it take your organization to
deploy a change [to production] that involves
just one single line of code? Do you do this on a
repeatable, reliable basis?”
                          - Mary and Tom Poppendieck,
                 Implementing Lean Software Development




                                                      8
The Last Mile

        Manual Deployments
Insufficient Configuration Management
Infrequent, Error Prone Deployments



                                        9
Stressful
Releases




       10
Frequent Automated
Deployments




                     http://flic.kr/p/29Ree
                                       11
Always Production Ready




                          12
Continuous Deployment

           Deployment Pipelines

         Deployment Automation



Configuration   Continuous
Management
                                  Testing
                Integration


                   Agile

                                            13
Deployment Pipelines




http://www.fotopedia.com/users/chmehl   14
Deployment Pipelines

A Deployment Pipeline is an automated
manifestation of your process for getting
software from version control into the
hands of your users.




                     15
Deployment Pipelines
  (aka Build Pipelines)




                          16
Continuous what?


Continuous     Continuous   Continuous
Integration     Delivery    Deployment




                                     17
Where do I start?
Understand your Process




  http://www.michaelnygard.com/blog/2008/02/outrunning_your_headlights.html
                                                                       19
Understand your Organization




                               20
Developers




         http://flic.kr/p/5cK2
                                 21
Test Driven Development




http://reddevnews.com/articles/2007/11/01/testdriven-development-tdd.aspx   22
Evolutionary Design




                      23
Automate the Build




                     24
Static Code Analysis




       CheckStyle


                       25
Technical Debt




                 26
The Team




           27
Agile




        28
Continuous Integration




                         29
Continuous Integration
  Check-in Daily
  Commit to Trunk
  Automate the Build
  Keep the Build Fast
  Every Commit results in Build
  Test in Clone of Production
  Automate Deployment

                                  30
Build Pipeline in Jenkins




                            31
Testing




          32
Types of Tests




                 33
Test Strategy




Taken from Growing Object-Oriented Software, Guided by Tests
                                                               34
Testing is not a Phase




                         http://flic.kr/p/6bcg   35
Specification by Example




                           36
Specification by Example




                           37
Automated Performance Testing




                                38
Configuration Management




                           39
Version Control




                  40
Build Once, Deploy Many




                          41
Externalize Configuration



 ESCAPE           Database




                             42
Artifact Repositories




                        43
Traceability




               44
Versioning Numbers




                     45
Branch by Abstraction




                        46
Deploying
        47
Automated Deployments




                        48
Code Deployments
       1.   Push New Binary to Server
       2.   Stop Server
       3.   Archive Old Binary
       4.   Deploy New Binary
       5.   Start Server




                                   49
Version your Database




                        50
Database Deployments

                      HTML    .sql
                                     Production
                DBA



  DB
Change                                  Test

  DB
           Version        Build
Change
           Control       Server

 DB                                     Dev
Change




                                                  51
52
DevOps




http://www.agileweboperations.com/lean-agile-devops-related

                                                              53
DevOps: it’s about culture




http://dev2ops.org/2012/10/devops-transformation-workshop-for-technical-managers/
                                                                           54
Infrastructure as Code




                         55
Puppet




         56
Vagrant




          57
Monitoring (sucks)




  https://github.com/monitoringsucks

                                       58
Continuous Deployment




                        59
Contact Me


Mike McGarr
jmcgarr@gmail.com
@jmichaelmcgarr
http://earlyandoften.wordpress.com




                                     60
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
• Continuous Integration, By Paul M Duvall -
  http://www.amazon.com/Continuous-Integration-Improving-Software-
  Reducing/dp/0321336380
• Refactoring Databases, By Scott Ambler and Pramod Sadalage -
  http://www.amazon.com/Refactoring-Databases-Evolutionary-
  paperback-Addison-Wesley/dp/0321774515
• Refactoring, By Martin Fowler - http://www.amazon.com/Refactoring-
  Improving-Design-Existing-Code/dp/0201485672
• Growing Object-Oriented Software, Guided by Tests, by Steven
  Freeman and Nat Pryce - http://www.amazon.com/Growing-Object-
  Oriented-Software-Guided-Tests/dp/0321503627


                                                                        61
Further Reading
• Extreme Programming Explained, by Kent Beck -
  http://www.amazon.com/Extreme-Programming-Explained-Embrace-
  Change/dp/0201616416
• Release It!, by Michael Nygard -
  http://pragprog.com/book/mnee/release-it
• xUnit Test Patterns, by Gerard Meszaros -
  http://www.amazon.com/xUnit-Test-Patterns-Refactoring-
  Code/dp/0131495054
• Working Effectively with Legacy Code, by Michael Feathers -
  http://www.amazon.com/Working-Effectively-Legacy-Michael-
  Feathers/dp/0131177052
• Agile Testing, by Lisa Crispin and Janet Gregory -
  http://www.amazon.com/Agile-Testing-Practical-Guide-
  Testers/dp/0321534468



                                                                 62
Further Reading
• 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/
• Implementing Lean Software Development, by Mary and Tom
  Poppendieck - http://www.amazon.com/Implementing-Lean-Software-
  Development-Concept/dp/0321437381



                                                                         63
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


                                                                           64
Further Reading
• Branch by Abstraction, by Paul Hammant
  http://paulhammant.com/blog/branch_by_abstraction.html
• Making Large Scale Changes Incrementally with Branch by
  Abstraction, by Jez Humble -
  http://continuousdelivery.com/2011/05/make-large-scale-changes-
  incrementally-with-branch-by-abstraction/
• What is DevOps?, by Damon Edwards -
  http://dev2ops.org/2010/02/what-is-devops/
• Monitoring Sucks - https://github.com/monitoringsucks




                                                                    65
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
                                                                        66
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 – http://fitnesse.org/
•   Concordion – http://www.concordion.org/
•   Cucumber – http://cukes.info/
•   easyb – http://www.easyb.org/
•   jBehave - http://jbehave.org/
•   geb - http://www.gebish.org/

                                                             67
Tools
•   Liquibase – www.liquibase.org/
•   Flyway – http://code.google.com/p/flyway/
•   Escape – http://code.google.com/p/escservesconfig/
•   Capistrano - https://github.com/capistrano/capistrano
•   Deployinator - https://github.com/etsy/deployinator
•   Puppet – http://puppetlabs.com/
•   Chef – http://www.opscode.com/chef/
•   Ansible - http://ansible.cc/
•   Vagrant – http://vagrantup.com/
•   JMeter – http://jmeter.apache.org/
•   Nagios - http://www.nagios.org/
•   Logstash - http://logstash.net/
•   StatsD – https://github.com/etsy/statsd
•   Metrics – http://metrics.codahale.com/
•   Ganglia – http://ganglia.sourceforge.net/
•   Graphite - http://graphite.wikidot.com/

                                                            68

Contenu connexe

Tendances

Continuous integration
Continuous integrationContinuous integration
Continuous integration
amscanne
 
02 - Build and Deployment Management
02 - Build and Deployment Management02 - Build and Deployment Management
02 - Build and Deployment Management
Sergii Shmarkatiuk
 
Continuous delivery applied
Continuous delivery appliedContinuous delivery applied
Continuous delivery applied
Mike McGarr
 
Automating development-operations-v1
Automating development-operations-v1Automating development-operations-v1
Automating development-operations-v1
Sumanth Vepa
 

Tendances (20)

Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
NIWeek 2012: Fire and Forget / Bulletproof Builds Using Continuous Integratio...
NIWeek 2012: Fire and Forget / Bulletproof Builds Using Continuous Integratio...NIWeek 2012: Fire and Forget / Bulletproof Builds Using Continuous Integratio...
NIWeek 2012: Fire and Forget / Bulletproof Builds Using Continuous Integratio...
 
2012 01-jenkins-udeploy
2012 01-jenkins-udeploy2012 01-jenkins-udeploy
2012 01-jenkins-udeploy
 
Continuous Delivery at Oracle Database Insights
Continuous Delivery at Oracle Database InsightsContinuous Delivery at Oracle Database Insights
Continuous Delivery at Oracle Database Insights
 
02 - Build and Deployment Management
02 - Build and Deployment Management02 - Build and Deployment Management
02 - Build and Deployment Management
 
Continuous delivery-with-maven
Continuous delivery-with-mavenContinuous delivery-with-maven
Continuous delivery-with-maven
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svn
 
Unified Deployment: Including the Mainframe in Enterprise DevOps
Unified Deployment: Including the Mainframe in Enterprise DevOpsUnified Deployment: Including the Mainframe in Enterprise DevOps
Unified Deployment: Including the Mainframe in Enterprise DevOps
 
Ordina Accelerator program 2019 - DevOps CI-CD
Ordina Accelerator program 2019 - DevOps CI-CDOrdina Accelerator program 2019 - DevOps CI-CD
Ordina Accelerator program 2019 - DevOps CI-CD
 
NIWeek 2012: Secret Sauce / Tools to Make You a Better LabVIEW Developer
NIWeek 2012: Secret Sauce / Tools to Make You a Better LabVIEW DeveloperNIWeek 2012: Secret Sauce / Tools to Make You a Better LabVIEW Developer
NIWeek 2012: Secret Sauce / Tools to Make You a Better LabVIEW Developer
 
Scaling Continuous Integration Practices to Teams with Parallel Development
Scaling Continuous Integration Practices to Teams with Parallel DevelopmentScaling Continuous Integration Practices to Teams with Parallel Development
Scaling Continuous Integration Practices to Teams with Parallel Development
 
Build Trust in Your Build-to-Deployment Flow!
Build Trust in Your Build-to-Deployment Flow!Build Trust in Your Build-to-Deployment Flow!
Build Trust in Your Build-to-Deployment Flow!
 
Ordina Accelerator program 2019 - Jenkins blue ocean pipelines
Ordina Accelerator program 2019 - Jenkins blue ocean pipelinesOrdina Accelerator program 2019 - Jenkins blue ocean pipelines
Ordina Accelerator program 2019 - Jenkins blue ocean pipelines
 
Jenkins Meetup Pune
Jenkins Meetup PuneJenkins Meetup Pune
Jenkins Meetup Pune
 
Adapting Deployment Pipelines for Complex Applications
Adapting Deployment Pipelines for Complex ApplicationsAdapting Deployment Pipelines for Complex Applications
Adapting Deployment Pipelines for Complex Applications
 
Continuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfestContinuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfest
 
Continuous delivery applied
Continuous delivery appliedContinuous delivery applied
Continuous delivery applied
 
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...
 
Automating development-operations-v1
Automating development-operations-v1Automating development-operations-v1
Automating development-operations-v1
 
Top DevOps tools
Top DevOps toolsTop DevOps tools
Top DevOps tools
 

En vedette

IoT and Management Systems: new dimensions for research and didactics towards...
IoT and Management Systems: new dimensions for research and didactics towards...IoT and Management Systems: new dimensions for research and didactics towards...
IoT and Management Systems: new dimensions for research and didactics towards...
Scatol8
 
Virtual dj 7 audio setup guide
Virtual dj 7   audio setup guideVirtual dj 7   audio setup guide
Virtual dj 7 audio setup guide
tmgtz007
 
Pengenalan soft coral
Pengenalan soft coralPengenalan soft coral
Pengenalan soft coral
Baim Husain
 
Wyewoluowane moduły ludzkiego umysłu, na których opiera się religia
Wyewoluowane moduły ludzkiego umysłu, na których opiera się religiaWyewoluowane moduły ludzkiego umysłu, na których opiera się religia
Wyewoluowane moduły ludzkiego umysłu, na których opiera się religia
Łukasz Budzicz
 
Scatol8 UUDD livello A_2
Scatol8 UUDD livello A_2Scatol8 UUDD livello A_2
Scatol8 UUDD livello A_2
Scatol8
 
ACUG 12 Clouds - Cloud Formation
ACUG 12 Clouds - Cloud FormationACUG 12 Clouds - Cloud Formation
ACUG 12 Clouds - Cloud Formation
joehack3r
 
его глазами
его глазамиего глазами
его глазами
dasha_maz
 
Scatol8 UUDD livello A_6
Scatol8 UUDD livello A_6Scatol8 UUDD livello A_6
Scatol8 UUDD livello A_6
Scatol8
 

En vedette (20)

IoT and Management Systems: new dimensions for research and didactics towards...
IoT and Management Systems: new dimensions for research and didactics towards...IoT and Management Systems: new dimensions for research and didactics towards...
IoT and Management Systems: new dimensions for research and didactics towards...
 
Ad mark presentation1
Ad mark presentation1Ad mark presentation1
Ad mark presentation1
 
Virtual dj 7 audio setup guide
Virtual dj 7   audio setup guideVirtual dj 7   audio setup guide
Virtual dj 7 audio setup guide
 
Working with Legacy Code
Working with Legacy CodeWorking with Legacy Code
Working with Legacy Code
 
Pengenalan soft coral
Pengenalan soft coralPengenalan soft coral
Pengenalan soft coral
 
Wyewoluowane moduły ludzkiego umysłu, na których opiera się religia
Wyewoluowane moduły ludzkiego umysłu, na których opiera się religiaWyewoluowane moduły ludzkiego umysłu, na których opiera się religia
Wyewoluowane moduły ludzkiego umysłu, na których opiera się religia
 
Scatol8® system for education on Sustainability. Design and implementation of...
Scatol8® system for education on Sustainability. Design and implementation of...Scatol8® system for education on Sustainability. Design and implementation of...
Scatol8® system for education on Sustainability. Design and implementation of...
 
The Scatol8® for Sustainability: an update on the remote sensing system of en...
The Scatol8® for Sustainability: an update on the remote sensing system of en...The Scatol8® for Sustainability: an update on the remote sensing system of en...
The Scatol8® for Sustainability: an update on the remote sensing system of en...
 
W poszukiwaniu swojej drogi - webinar
W poszukiwaniu swojej drogi - webinarW poszukiwaniu swojej drogi - webinar
W poszukiwaniu swojej drogi - webinar
 
Unindented Code Cannot Possibly Work
Unindented Code Cannot Possibly WorkUnindented Code Cannot Possibly Work
Unindented Code Cannot Possibly Work
 
Agile Engineering and Software Craftsmanship
Agile Engineering and Software CraftsmanshipAgile Engineering and Software Craftsmanship
Agile Engineering and Software Craftsmanship
 
Scatol8 UUDD livello A_2
Scatol8 UUDD livello A_2Scatol8 UUDD livello A_2
Scatol8 UUDD livello A_2
 
Improving Design through TDD
Improving Design through TDDImproving Design through TDD
Improving Design through TDD
 
Parasitosis
ParasitosisParasitosis
Parasitosis
 
Weddings and beyond
Weddings and beyondWeddings and beyond
Weddings and beyond
 
ACUG 12 Clouds - Cloud Formation
ACUG 12 Clouds - Cloud FormationACUG 12 Clouds - Cloud Formation
ACUG 12 Clouds - Cloud Formation
 
его глазами
его глазамиего глазами
его глазами
 
[CLP] Game industry Day 3 - 1
[CLP] Game industry Day 3 - 1[CLP] Game industry Day 3 - 1
[CLP] Game industry Day 3 - 1
 
Banje u Vojvodini
Banje u VojvodiniBanje u Vojvodini
Banje u Vojvodini
 
Scatol8 UUDD livello A_6
Scatol8 UUDD livello A_6Scatol8 UUDD livello A_6
Scatol8 UUDD livello A_6
 

Similaire à Continuous Delivery Applied

Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
Atlassian
 

Similaire à Continuous Delivery Applied (20)

Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)
 
Continuous delivery - tools and techniques
Continuous delivery - tools and techniquesContinuous delivery - tools and techniques
Continuous delivery - tools and techniques
 
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...
 
Introduction to Continuous Integration
Introduction to Continuous IntegrationIntroduction to Continuous Integration
Introduction to Continuous Integration
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
Quality management in continuous delivery and dev ops world pm footprints v1
Quality management in continuous delivery and dev ops world  pm footprints v1Quality management in continuous delivery and dev ops world  pm footprints v1
Quality management in continuous delivery and dev ops world pm footprints v1
 
Relational Database CI/CD
Relational Database CI/CDRelational Database CI/CD
Relational Database CI/CD
 
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthPittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
 
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
 
Continuous Integration and Delivery using TeamCity and Jenkins
Continuous Integration and Delivery using TeamCity and JenkinsContinuous Integration and Delivery using TeamCity and Jenkins
Continuous Integration and Delivery using TeamCity and Jenkins
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
 
DevOps in Practice
DevOps in PracticeDevOps in Practice
DevOps in Practice
 
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
 
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...
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own words
 
How to go from waterfall app dev to secure agile development in 2 weeks
How to go from waterfall app dev to secure agile development in 2 weeks How to go from waterfall app dev to secure agile development in 2 weeks
How to go from waterfall app dev to secure agile development in 2 weeks
 
Back To Basics
Back To BasicsBack To Basics
Back To Basics
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
 
A Continuous Delivery Safety Net for Databases
A Continuous Delivery Safety Net for DatabasesA Continuous Delivery Safety Net for Databases
A Continuous Delivery Safety Net for Databases
 

Dernier

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
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...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
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...
 
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
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

Continuous Delivery Applied

  • 1. Continuous Delivery Applied Mike McGarr jmcgarr@gmail.com @jmichaelmcgarr http://earlyandoften.wordpress.com http://www.meetup.com/DC-continuous-integration/
  • 2. About Me • J. Michael (Mike) McGarr • 11 years as an IT consultant • Director of DevOps for Learn, Blackboard • Founder of the DC Continuous Integration, Delivery, and Deployment Meetup 2
  • 3. Continuous Delivery is… …a set of practices and principles aimed at, building, testing, and releasing software faster and more frequently. 3
  • 4. 4
  • 5. 5
  • 6. “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.” - First of the Twelve Principles behind the Agile Manifesto 6
  • 7. Quality or Speed 7
  • 8. Cycle Time “How long would it take your organization to deploy a change [to production] that involves just one single line of code? Do you do this on a repeatable, reliable basis?” - Mary and Tom Poppendieck, Implementing Lean Software Development 8
  • 9. The Last Mile Manual Deployments Insufficient Configuration Management Infrequent, Error Prone Deployments 9
  • 11. Frequent Automated Deployments http://flic.kr/p/29Ree 11
  • 13. Continuous Deployment Deployment Pipelines Deployment Automation Configuration Continuous Management Testing Integration Agile 13
  • 15. Deployment Pipelines A Deployment Pipeline is an automated manifestation of your process for getting software from version control into the hands of your users. 15
  • 16. Deployment Pipelines (aka Build Pipelines) 16
  • 17. Continuous what? Continuous Continuous Continuous Integration Delivery Deployment 17
  • 18. Where do I start?
  • 19. Understand your Process http://www.michaelnygard.com/blog/2008/02/outrunning_your_headlights.html 19
  • 21. Developers http://flic.kr/p/5cK2 21
  • 25. Static Code Analysis CheckStyle 25
  • 27. The Team 27
  • 28. Agile 28
  • 30. Continuous Integration Check-in Daily Commit to Trunk Automate the Build Keep the Build Fast Every Commit results in Build Test in Clone of Production Automate Deployment 30
  • 31. Build Pipeline in Jenkins 31
  • 32. Testing 32
  • 34. Test Strategy Taken from Growing Object-Oriented Software, Guided by Tests 34
  • 35. Testing is not a Phase http://flic.kr/p/6bcg 35
  • 47. Deploying 47
  • 49. Code Deployments 1. Push New Binary to Server 2. Stop Server 3. Archive Old Binary 4. Deploy New Binary 5. Start Server 49
  • 51. Database Deployments HTML .sql Production DBA DB Change Test DB Version Build Change Control Server DB Dev Change 51
  • 52. 52
  • 54. DevOps: it’s about culture http://dev2ops.org/2012/10/devops-transformation-workshop-for-technical-managers/ 54
  • 56. Puppet 56
  • 57. Vagrant 57
  • 58. Monitoring (sucks) https://github.com/monitoringsucks 58
  • 61. 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 • Continuous Integration, By Paul M Duvall - http://www.amazon.com/Continuous-Integration-Improving-Software- Reducing/dp/0321336380 • Refactoring Databases, By Scott Ambler and Pramod Sadalage - http://www.amazon.com/Refactoring-Databases-Evolutionary- paperback-Addison-Wesley/dp/0321774515 • Refactoring, By Martin Fowler - http://www.amazon.com/Refactoring- Improving-Design-Existing-Code/dp/0201485672 • Growing Object-Oriented Software, Guided by Tests, by Steven Freeman and Nat Pryce - http://www.amazon.com/Growing-Object- Oriented-Software-Guided-Tests/dp/0321503627 61
  • 62. Further Reading • Extreme Programming Explained, by Kent Beck - http://www.amazon.com/Extreme-Programming-Explained-Embrace- Change/dp/0201616416 • Release It!, by Michael Nygard - http://pragprog.com/book/mnee/release-it • xUnit Test Patterns, by Gerard Meszaros - http://www.amazon.com/xUnit-Test-Patterns-Refactoring- Code/dp/0131495054 • Working Effectively with Legacy Code, by Michael Feathers - http://www.amazon.com/Working-Effectively-Legacy-Michael- Feathers/dp/0131177052 • Agile Testing, by Lisa Crispin and Janet Gregory - http://www.amazon.com/Agile-Testing-Practical-Guide- Testers/dp/0321534468 62
  • 63. Further Reading • 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/ • Implementing Lean Software Development, by Mary and Tom Poppendieck - http://www.amazon.com/Implementing-Lean-Software- Development-Concept/dp/0321437381 63
  • 64. 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 64
  • 65. Further Reading • Branch by Abstraction, by Paul Hammant http://paulhammant.com/blog/branch_by_abstraction.html • Making Large Scale Changes Incrementally with Branch by Abstraction, by Jez Humble - http://continuousdelivery.com/2011/05/make-large-scale-changes- incrementally-with-branch-by-abstraction/ • What is DevOps?, by Damon Edwards - http://dev2ops.org/2010/02/what-is-devops/ • Monitoring Sucks - https://github.com/monitoringsucks 65
  • 66. 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 66
  • 67. 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 – http://fitnesse.org/ • Concordion – http://www.concordion.org/ • Cucumber – http://cukes.info/ • easyb – http://www.easyb.org/ • jBehave - http://jbehave.org/ • geb - http://www.gebish.org/ 67
  • 68. Tools • Liquibase – www.liquibase.org/ • Flyway – http://code.google.com/p/flyway/ • Escape – http://code.google.com/p/escservesconfig/ • Capistrano - https://github.com/capistrano/capistrano • Deployinator - https://github.com/etsy/deployinator • Puppet – http://puppetlabs.com/ • Chef – http://www.opscode.com/chef/ • Ansible - http://ansible.cc/ • Vagrant – http://vagrantup.com/ • JMeter – http://jmeter.apache.org/ • Nagios - http://www.nagios.org/ • Logstash - http://logstash.net/ • StatsD – https://github.com/etsy/statsd • Metrics – http://metrics.codahale.com/ • Ganglia – http://ganglia.sourceforge.net/ • Graphite - http://graphite.wikidot.com/ 68

Notes de l'éditeur

  1. Cycle Time is a measure of Continuous Delivery maturity
  2. Collaboration (DEV + Customer, DEV + Operations)Talking early and often…break down walls. [DevOps]Automation. Automate Everything! Build, Test, Deploy!Frequency. Frequent means small. Easier to troubleshoot, rollback. Reduces Risk.Feedback. Change triggers feedback. Feedback is fast. Team acts on it.
  3. Manual DeploymentsInsufficient Configuration ManagementInfrequent, Error Prone Deployments