Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Continuous Delivery with Jenkins and Wildfly (2014)

32,213 views

Published on

A presentation on a continuous delivery pipeline that leverages Jenkins Enterprise, Jenkins Operations Center, Nexus, HAProxy, and Wildfly. Pipeline components run in Docker containers along with SkyDock/SkyDNS for service discovery and NSEnter for command-line access to containers.

Published in: Technology

Continuous Delivery with Jenkins and Wildfly (2014)

  1. 1. Continuous delivery with Jenkins and Wildfly Tracy Kennedy Solution Architect ©2014 CloudBees, Inc. All Rights Reserved 1
  2. 2. • Solution Architect @ CloudBees ©2014 CloudBees, Inc. All Rights Reserved 2 Who am I? Git|Docker Hub: lavaliere Twitter: @Tracy_Kennedy
  3. 3. Who is CloudBees? ©2014 CloudBees, Inc. All Rights Reserved 3
  4. 4. Who is CloudBees? ©2014 CloudBees, Inc. All Rights Reserved 4
  5. 5. Who is CloudBees? Jenkins Operations Center ©2014 CloudBees, Inc. All Rights Reserved 5
  6. 6. What is Continuous Delivery? ©2014 CloudBees, Inc. All Rights Reserved 6
  7. 7. Target pipeline Source code On GitHub ©2013 CloudBees, Inc. All Rights Reserved ©2014 CloudBees, Inc. All Rights Reserved 7
  8. 8. ©2014 CloudBees, Inc. All Rights Reserved 8 Tools ©2013 CloudBees, Inc. All Rights Reserved
  9. 9. ©2014 CloudBees, Inc. All Rights Reserved 9 Tools ©2013 CloudBees, Inc. All Rights Reserved
  10. 10. ©2014 CloudBees, Inc. All Rights Reserved 10 Tools ©2013 CloudBees, Inc. All Rights Reserved
  11. 11. ©2014 CloudBees, Inc. All Rights Reserved 11 Tools ©2013 CloudBees, Inc. All Rights Reserved
  12. 12. Sets Base Image Sets the image ©2014 CloudBees, Inc. All Rights Reserved 12 Tools ©2013 CloudBees, Inc. All Rights Reserved author Command run in a shell Network ports to listen at runtime Adds an entry command
  13. 13. ©2014 CloudBees, Inc. All Rights Reserved 13 Tools ©2013 CloudBees, Inc. All Rights Reserved
  14. 14. ©2014 CloudBees, Inc. All Rights Reserved 14 Tools ©2013 CloudBees, Inc. All Rights Reserved
  15. 15. ©2014 CloudBees, Inc. All Rights Reserved 15 Tools ©2013 CloudBees, Inc. All Rights Reserved
  16. 16. Docker Client ©2014 CloudBees, Inc. All Rights Reserved 16 How I did it Host machine Boot2docker VM Container: skydock Image: crosbymichael/S kyDock Container: skydns Image: crosbymichael/s kydns Docker Server Docker Daemon
  17. 17. ©2014 CloudBees, Inc. All Rights Reserved 17 How I did it
  18. 18. ©2014 CloudBees, Inc. All Rights Reserved 18 How I did it
  19. 19. ©2014 CloudBees, Inc. All Rights Reserved 19 How I did it
  20. 20. ©2014 CloudBees, Inc. All Rights Reserved 20 How I did it Plugins used: • Build Pipeline(OSS)
  21. 21. ©2014 CloudBees, Inc. All Rights Reserved 21 How I did it Plugins used: • Config File Management (OSS)
  22. 22. ©2014 CloudBees, Inc. All Rights Reserved 22 How I did it Plugins used: • Credentials (OSS)
  23. 23. ©2014 CloudBees, Inc. All Rights Reserved 23 How I did it Plugins used: • Copy Artifacts (OSS)
  24. 24. ©2014 CloudBees, Inc. All Rights Reserved 24 How I did it Plugins used: • Secure Copy (JEBC)
  25. 25. ©2014 CloudBees, Inc. All Rights Reserved 25 How I did it Plugins used: • Jenkins Git Plugin (OSS)
  26. 26. ©2014 CloudBees, Inc. All Rights Reserved 26 How I did it Plugins used: • Folders (JEBC)
  27. 27. ©2014 CloudBees, Inc. All Rights Reserved 27 How I did it Plugins used: • Validated Merge (JEBC)
  28. 28. ©2014 CloudBees, Inc. All Rights Reserved 28 How I did it Plugins used: • Fast Archiving (JEBC)
  29. 29. HA Proxy Jenkins Enterprise Master-1 NAS Storage backup ©2014 CloudBees, Inc. All Rights Reserved 29 How I did it Plugins used: • High Availability (JEBC) Jenkins Enterprise Master-1 Jenkins Enterprise Master-N Jenkins Enterprise Master-N HA Proxy NAS Storage backup …
  30. 30. oc.cloudbees.com OC-master Server pushed to client master ©2014 CloudBees, Inc. All Rights Reserved 30 QA Engineering Operations Shared Roles and Security Realm oc.cloudbees.com/qa oc.cloudbees.com/eng oc.cloudbees.com/ops Attached-master client Attached-master client Attached-master client How I did it Plugins used: • Shared slaves (JOC)
  31. 31. Roadbumps ©2014 CloudBees, Inc. All Rights Reserved 31
  32. 32. Roadbumps ©2014 CloudBees, Inc. All Rights Reserved 32
  33. 33. Roadbumps ©2014 CloudBees, Inc. All Rights Reserved 33
  34. 34. Roadbumps ©2014 CloudBees, Inc. All Rights Reserved 34
  35. 35. Roadbumps ©2014 CloudBees, Inc. All Rights Reserved 35
  36. 36. Roadbumps ©2014 CloudBees, Inc. All Rights Reserved 36
  37. 37. Roadbumps ©2014 CloudBees, Inc. All Rights Reserved 37
  38. 38. Roadbumps ©2014 CloudBees, Inc. All Rights Reserved 38
  39. 39. Roadbumps ©2014 CloudBees, Inc. All Rights Reserved 39
  40. 40. Roadbumps ©2014 CloudBees, Inc. All Rights Reserved 40
  41. 41. Roadbumps ©2014 CloudBees, Inc. All Rights Reserved 41
  42. 42. Roadbumps ©2014 CloudBees, Inc. All Rights Reserved 42
  43. 43. That saying about insanity… ©2014 CloudBees, Inc. All Rights Reserved 43
  44. 44. Now the show begins! ©2014 CloudBees, Inc. All Rights Reserved 44
  45. 45. Detailed Architecture Wildfly-master Wildfly-1.wildfly.dev.beedemo.io:8080 Wildfly-1.wildfly.dev.beedemo.io:9990 ©2014 CloudBees, Inc. All Rights Reserved 45 Jenkins Operations Center joc-1.jenkins-operations-center. dev.beedemo.io:8080 Jenkins Enterprise api-team-1.jenkins-enterprise. dev.beedemo.io:8 888 Slave Slave-1.jenkins-slave. dev.beedemo.io:2 2 Slave Slave-2.jenkins-slave. dev.beedemo.io: 22 Nexus nexus.nexus.dev.beedemo.io :8081 Wildfly-slave Wildfly-2.wildfly.dev.beedemo.io:8080 Wildfly-2.wildfly.dev.beedemo.io:9990 HAProxy proxy.demo-joc-haproxy.dev.beedemo.io:80
  46. 46. Jenkins Job pipeline ©2014 CloudBees, Inc. All Rights Reserved 46
  47. 47. Jenkins Job pipeline ©2014 CloudBees, Inc. All Rights Reserved 47
  48. 48. Jenkins Job pipeline ©2014 CloudBees, Inc. All Rights Reserved 48
  49. 49. The build + Arquillian tests ©2014 CloudBees, Inc. All Rights Reserved 49
  50. 50. Jenkins Job pipeline ©2014 CloudBees, Inc. All Rights Reserved 50
  51. 51. Jenkins Job pipeline ©2014 CloudBees, Inc. All Rights Reserved 51
  52. 52. Jenkins to Nexus and Nexus to Jenkins ©2014 CloudBees, Inc. All Rights Reserved 52
  53. 53. Jenkins to Nexus and Nexus to Jenkins ©2014 CloudBees, Inc. All Rights Reserved 53
  54. 54. But what about this use case? ©2014 CloudBees, Inc. All Rights Reserved 54
  55. 55. Jenkins Job pipeline ©2014 CloudBees, Inc. All Rights Reserved 55
  56. 56. Jenkins Job pipeline ©2014 CloudBees, Inc. All Rights Reserved 56
  57. 57. Jenkins to Wildfly Wildfly Plugin ©2014 CloudBees, Inc. All Rights Reserved 57
  58. 58. Jenkins to Wildfly ©2014 CloudBees, Inc. All Rights Reserved 58
  59. 59. Future improvements • Templatized jobs and builders • Blue/green deployments to Wildfly • Pipeline as a workflow (OSS) • Workflow visualizations, checkpoints, etc (JEBC) • Hosted Docker containers • Docker slaves • Building the Wildfly application as a Docker container ©2014 CloudBees, Inc. All Rights Reserved 59
  60. 60. ©2014 CloudBees, Inc. All Rights Reserved 60 Next step • Demo repository: https://github.com/lavaliere/demo-joc
  61. 61. ©2014 Cloud Bees, Inc. All Rights Reserved ©2014 CloudBees, Inc. All Rights Reserved 61

×