Jenkins Pipelines in Continuous Action

Jenkins Pipelines in Continuous Action

The Jenkins pipeline plugin is a good choice for realizing sophisticated continuous delivery pipelines for deploying different kinds of applications. Combined with Kubernetes it offers a premium tool chain for DevOps. On top of that, the versatility of Jenkins Pipelines has inspired us to continuously deliver lots of other things.

The talk takes you through an introductory story over to the basics and concepts of Jenkins Pipelines and finally tries to stir your fantasy by showing how we actually use Jenkins Pipelines.

875e2bcfb1dc37d05adebcf72269dc77?s=128

Oliver Milke

March 12, 2019
Tweet

Transcript

  1. // Jenkins Pipelines in Continuous Action

  2. // • > 10 Jahre Softwareentwicklung • Software Craftsman @cloudogu

    • JUG Ostfalen • Fitness / Freeletics Oliver Milke Software Craftsman https://twitter.com/OliverMilke About me https://twitter.com/cloudogu Cloudogu GmbH // 2
  3. Intro Jenkins Pipelines - Überblick und Basics Pipeline Show Case

    //Worum geht es heute? Cloudogu GmbH // 3
  4. Cloudogu GmbH // 4

  5. Cloudogu GmbH // 5

  6. Cloudogu GmbH // 6 1. Effizienz 2. Qualität 3. Spaß

    TOP 3 gute Gründe für Automatisierung
  7. Cloudogu GmbH // 7 A Knightmare on Wall Street

  8. Cloudogu GmbH // 8 Facts 3,3 Mrd. Transaktion pro Tag

    $21 Mrd. Handelsvolumen pro Tag 17% Handelsanteil an NYSE und NASDAQ $365 Mio. in Cash 31. Juli 2012
  9. Cloudogu GmbH // 9 Episches Drama Softwareentwicklung und –betrieb Dev

    + Ops Was kostet schlechte Kultur?
  10. Cloudogu GmbH // 10 Was kostet schlechte Kultur? unendlich viele

    Schweißperlen
  11. Cloudogu GmbH // 11 Was kostet schlechte Kultur? 45 Minuten

    Fehlfunktion
  12. Cloudogu GmbH // 12 Was kostet schlechte Kultur? $465 Mio.

  13. Cloudogu GmbH // 13 Was kostet schlechte Kultur? Bankrott https://dougseven.com/2014/04/17/knightmare-a-devops-cautionary-tale

  14. // “Experience is simply the name we give our mistakes.“

    Oscar Wilde Cloudogu GmbH // 14
  15. Cloudogu GmbH Continuous… ✓ Integration ✓ Delivery ✓ Deployment ✓

    Testing ✓ Inspection ✓ Monitoring ✓ Improvement // 16
  16. Cloudogu GmbH // 17

  17. Cloudogu GmbH // 18

  18. Cloudogu GmbH // 19

  19. Cloudogu GmbH // 20

  20. Cloudogu GmbH // 21

  21. Cloudogu GmbH Jenkins 2 Pipeline a.k.a. Pipeline as Code Jenkinsfile

    // 22 https://plugins.jenkins.io/workflow-aggregator https://jenkins.io/doc/book/pipeline/
  22. Cloudogu GmbH Über den Vortrag Begleitende Artikelserie // 23

  23. Cloudogu GmbH Über den Vortrag Begleitende Artikelserie // 24 https://cloudogu.com/en/blog/continuous_delivery_1_basics

    https://cloudogu.com/en/blog/continuous_delivery_2 https://cloudogu.com/en/blog/continuous_delivery_part_3 https://cloudogu.com/en/blog/continuous_delivery_4_en
  24. Grundkonzept Cloudogu GmbH // 25 ✓

  25. // Steps & Stages • Teilschritte des Build-Prozesses • scm

    checkout • mvn package • docker build • cubectl apply • sh 'magic' • Logische Gruppierung zu Stages • Build • Test • Deploy Cloudogu GmbH // 26
  26. Cloudogu GmbH // 27 http://localhost:8080/job/myPipeline/pipeline-syntax/ http://localhost:8080/job/myPipeline/pipeline-syntax/html http://localhost:8080/job/myPipeline/pipeline-syntax/globals * https://github.com/jenkinsci/pipeline-plugin/blob/master/COMPATIBILITY.md Plugins

    erweitern den Funktionsumfang*
  27. Pro Tip #1 Replay Cloudogu GmbH // 28

  28. Jenkins Architektur Cloudogu GmbH // 29

  29. Pro Tip #2 Workspace finden Cloudogu GmbH // 30

  30. lange Build Jobs Parallelisierung 1 Agent* n Agents ⚠️ 1

    Workspace ⚠️ Setup Synchronisierung - Beispiel Cloudogu GmbH // 31
  31. lange Build Jobs nightly ⚠️ @midnight ⚠️ currentBuild.getBuildCauses() ⚠️ Feedback

    Cloudogu GmbH // 32
  32. Pro Tip #3 Cloudogu GmbH // 33 http://www.cronmaker.com/ CronMaker is

    a utility which helps you to build cron expressions.
  33. Ähnliche Pipelines a.k.a Don‘t Repeat Yourself Wiederverwendung load Shared Lib

    ⚠️ Pipeline Repository ⚠️ Groovy Script Cloudogu GmbH // 34
  34. Shared Libs • Tests! • Deklaration erforderlich • Include erforderlich

    Cloudogu GmbH // 35
  35. Jenkins Architektur Cloudogu GmbH // 36

  36. Build Agents Cloudogu GmbH // 37

  37. Build Agents ⚠️ Kopplung zwischen Build und Build Agents Cloudogu

    GmbH // 38
  38. Build Agents Cloudogu GmbH // 39

  39. Docker ⚠️ Cloudogu GmbH // 40

  40. Build Agents Cloudogu GmbH // 41

  41. // Credentials • Secrets niemals ins Jenkinsfile - never •

    eingebaute Sicherheitsbehandlung https://jenkins.io/doc/book/using/using-credentials/ Cloudogu GmbH // 42
  42. Continuous Delivery …nur noch ein zusätzlicher Step ? Cloudogu GmbH

    // 43
  43. Beispielhafte Pipeline Cloudogu GmbH // 44

  44. Cloudogu GmbH // 45

  45. Cloudogu GmbH // 46 Cloudogu Schulungen EcoSystem Beratung

  46. Dogus Cloudogu GmbH // 47 Lint Setup Build Integration Tests

    Provision Wait 4 Dependencies Verify Clean Checkout ~ 10 Minuten
  47. cloudogu.com Cloudogu GmbH // 48 Build Checkout Deploy ~ 5

    Minuten
  48. k8s Schulungsfolien Cloudogu GmbH // 49 Build Checkout Deploy Nexus

    package Deploy Kubernetes ~ 3 Minuten
  49. Interne PDF Dokumentation Cloudogu GmbH // 50 Meta Data Checkout

    Deploy Build ~ 1 Minute
  50. demo.cloudogu.net Cloudogu GmbH // 51 Decide Color Apply Demo Content

    Destroy Old Instance Checkout Create New Instance Switch DNS Record ~ 22 Minuten
  51. private CES Demo-Instanzen Cloudogu GmbH // 52 Apply or Destroy

    Demo Content Checkout Verify ~ 3 Minuten
  52. // Wrap Up • Jenkins Pipelines ist Classic Jenkins as

    Code • Steps in Stages inhaltlich gliedern • Code Generator für Neueinsteiger • Don‘t Repeat Yourself • Testautomatisierung gehört dazu • ggf. parallelisieren • Ausführung auf Docker-Build-Agents Cloudogu GmbH // 53
  53. // Wrap Up • Delivery in einer Container-Welt ist einfacher

    • Automatisierung ist extrem wertvoll ☺ • aus Fehlern lernen ist entscheidend Cloudogu GmbH // 54
  54. Danke https://cloudogu.com | https://twitter.com/cloudogu Wir sehen uns an unserem Stand!

    Oliver Milke