Jenkins Pipelines in Continuous Action (english)

Jenkins Pipelines in Continuous Action (english)

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. 2.

    // • > 10 years of software developement • Software

    Craftsman @cloudogu • JUG Ostfalen • Fitness / Freeletics Oliver Milke Software Craftsman https://twitter.com/OliverMilke About me https://twitter.com/cloudogu Cloudogu GmbH // 2
  2. 3.

    Intro Jenkins Pipelines - overview and basics Pipeline Show Case

    //Where the journey goes Cloudogu GmbH // 3
  3. 6.

    Cloudogu GmbH // 6 1. Efficiency 2. Quality 3. Fun

    ☺ TOP 3 good reasons for automation
  4. 8.

    Cloudogu GmbH // 8 Facts 3.3B transactions per day $21B

    trade volumne per day 17% of the trades on NYSE and NASDAQ $365M in cash 31st July 2012
  5. 9.

    Cloudogu GmbH // 9 Epic Drama software development and operations

    Dev + Ops What is the cost of bad culture?
  6. 10.

    Cloudogu GmbH // 10 What is the cost of bad

    culture? infinite amount of sweat beads
  7. 11.

    Cloudogu GmbH // 11 What is the cost of bad

    culture? 45 minutes of malfunction
  8. 13.

    Cloudogu GmbH // 13 What is the cost of bad

    culture? bankruptcy https://dougseven.com/2014/04/17/knightmare-a-devops-cautionary-tale
  9. 15.

    Cloudogu GmbH Continuous… ✓ Integration ✓ Delivery ✓ Deployment ✓

    Testing ✓ Inspection ✓ Monitoring ✓ Improvement // 16
  10. 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/
  11. 23.

    Cloudogu GmbH About the Talk accompanying article series // 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
  12. 25.

    // Steps & Stages • Steps of the build process

    • scm checkout • mvn package • docker build • cubectl apply • sh 'magic‘ • Logic clustering to stages • Build • Test • Deploy Cloudogu GmbH // 26
  13. 30.

    Long Build Jobs parallelization 1 Agent* n Agents ⚠️ 1

    Workspace ⚠️ Setup synchronization exmaple Cloudogu GmbH // 31
  14. 32.

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

    a utility which helps you to build cron expressions.
  15. 33.

    Similar Pipelines a.k.a Don‘t Repeat Yourself re-use load Shared Lib

    ⚠️ Pipeline Repository ⚠️ Groovy Script Cloudogu GmbH // 34
  16. 41.

    // Credentials • Secrets do not belong in the Jenkinsfile

    - never • Inbuilt security handling https://jenkins.io/doc/book/using/using-credentials/ Cloudogu GmbH // 42
  17. 46.

    Dogus Cloudogu GmbH // 47 Lint Setup Build Integration Tests

    Provision Wait 4 Dependencies Verify Clean Checkout ~ 10 minutes
  18. 48.

    k8s training slides Cloudogu GmbH // 49 Build Checkout Deploy

    Nexus package Deploy Kubernetes ~ 3 minutes
  19. 50.

    demo.cloudogu.net Cloudogu GmbH // 51 Decide Color Apply Demo Content

    Destroy Old Instance Checkout Create New Instance Switch DNS Record ~ 22 minutes
  20. 51.

    private CES demo instances Cloudogu GmbH // 52 Apply or

    Destroy Demo Content Checkout Verify ~ 3 minutes
  21. 52.

    // Wrap Up • Jenkins Pipelines is Classic Jenkins as

    Code • Steps grouped in Stages • Code Generator for exploration • Don‘t Repeat Yourself • Test automation is part of the story • Parallise if needed • Use Docker build agents for step execution Cloudogu GmbH // 53
  22. 53.

    // Wrap Up • Delivery in a containerized world is

    much easier • Automation is extremely valuable ☺ • Learning from mistakes is essential Cloudogu GmbH // 54