Successfully reported this slideshow.

Continuous delivery - tools and techniques

27

Share

1 of 54
1 of 54

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

Continuous delivery - tools and techniques

  1. 1. Con$nuous  Delivery   Tools  and  Techniques   Mike  McGarr   mike.mcgarr@excella.com   h=p://earlyandoAen.wordpress.com     @jmichaelmcgarr  
  2. 2. About  Me   •  J.  Michael  (Mike)  McGarr   •  Excella  Consul$ng,  Arlington  VA   •  Lead  of  Excella’s  Java  Center  of  Excellence     2  
  3. 3. Excella  is  Hiring!   3  
  4. 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. 5
  6. 6. Goals   Quality   Cycle  Time   6
  7. 7. Con$nuous  what?   Continuous Continuous Continuous Integration Delivery Deployment 7
  8. 8. Con$nuous  Deployment   Build  Pipelines   Deployment  Automa$on   Configura$on   Con$nuous   Tes$ng   Management   Integra$on   Agile   8
  9. 9. Developers   http://flic.kr/p/5cK2 9  
  10. 10. Version  Control   10
  11. 11. Build  Automa$on   11
  12. 12. Unit  Tes$ng   12
  13. 13. JUnit,  Hamcrest  &  Mockito   13
  14. 14. 14
  15. 15. Spock   15
  16. 16. Test  Driven  Development   http://reddevnews.com/articles/2007/11/01/testdriven-development-tdd.aspx 16
  17. 17. Integra$on  Tes$ng   17
  18. 18. Sta$c  Code  Analysis   CheckStyle 18
  19. 19. The  Team   19  
  20. 20. Agile   20
  21. 21. Task  Management   21
  22. 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
  23. 23. Con$nuous  Integra$on   23
  24. 24. Jenkins   24
  25. 25. Dependency  Management   25
  26. 26. Nexus   26
  27. 27. Technical  Debt   27
  28. 28. Sonar   28
  29. 29. Specifica$on  by  Example   29
  30. 30. Spock  and  Geb   30
  31. 31. Concordion   31
  32. 32. Deployment   http://flic.kr/p/y8K 32
  33. 33. Build  Pipelines   33
  34. 34. Single  Iden$fier   34
  35. 35. Versioning   35
  36. 36. Code  Deployments   36
  37. 37. Database  Management   37
  38. 38. 38
  39. 39. Run$me  Configura$on   ESCAPE Database   39
  40. 40. Infrastructure  Management   40
  41. 41. Puppet   41
  42. 42. Vagrant   42
  43. 43. Op$mizing   http://flic.kr/p/6hDAEK 43  
  44. 44. Evolu$onary  Design   44
  45. 45. Performance  Tes$ng   45
  46. 46. Performance  Tes$ng   46
  47. 47. Monitoring   47
  48. 48. Con$nuous  Deployment   48
  49. 49. Contact  Me   Mike McGarr mike.mcgarr@excella.com http://earlyandoften.wordpress.com @jmichaelmcgarr 49
  50. 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. 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. 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. 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. 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

×