sd devops meet-up - jenkins 2.0 and pipeline-as-code

46
Jenkins 2.0 and Beyond

Upload: brian-dawson

Post on 21-Apr-2017

1.287 views

Category:

Engineering


1 download

TRANSCRIPT

Page 1: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Jenkins 2.0 and Beyond

Page 2: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

About JenkinsJenkins 2.0 is an automation engine with an unparalleled plugin ecosystem to support all of your favorite tools in your delivery pipelines, whether your goal is continuous integration, automated testing, or continuous delivery.

Page 3: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Let’s discuss●Why Jenkins 2.0 exists●What is Jenkins 2.0●Pipelines●Other stuff

Page 4: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Meet Jenkins

Page 5: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
Page 6: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Jenkins 101

6

• 2005 – Hudson (Sun)• 2008 – It becomes popular, Duke's Choice Award• 2011 – Conflict with Oracle, renaming to Jenkins

• License: MIT (core)• https://github.com/jenkinsci/

Page 7: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Why “automation”?

7

Continuous Integration

Continuous IntegrationContinuous DeliveryDevOps

Accounting automationHome AutomationCRON + WebUI

Page 8: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Jenkins weaknesses. Growth Problems

8Jenkins used to grow faster than its Dev community

Page 9: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Jenkins weaknesses. Compatibility costs

9

• More than 5 years of backward compatibility• Hudson 2 plugins still work on Jenkins!

• BUT:• Architecture design issues, complex APIs• Outdated libs• Outdated UI• Plugin integration issues

...Fixes are on the way

Page 10: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Pipelines in Jenkins 1.x●Create jobs●Trigger “downstream” jobs for next stage●Easy!

Page 11: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Pipelines in Jenkins 1.x

Page 12: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Pipelines in Jenkins 1.x

Page 13: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Pipelines in Jenkins 1.x

Page 14: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Pipelines in Jenkins 1.x

Page 15: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Pipelines in Jenkins 1.x

Page 16: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Pipelines in Jenkins 1.x

Page 17: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Classic Job Configuration UI● All the options you could ever want

○ and more!● Consistent for almost a decade

Page 18: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Low maintenance●Many users install Jenkins once●Usage pattern: “set it, and forget it!”

Page 19: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Meet Jenkins 2.0jenkins-ci.org/2.0

Page 20: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Re

serv

ed

20

• CI-to-CD with Pipeline-as-Code• Improved “out of the box” experience• Updated easier to use UI• New Jenkins.xx site

Jenkins 2.0 Themes

Page 21: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Pipeline as Code

Page 22: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Re

serv

ed

22

• Entire flow is one concise Groovy script using Workflow DSL– For loops, try-finally, fork-join, etc

• Can restart Jenkins while flow is running• Allocate build nodes and workspaces

– As many as you want, when you want• Stages throttle concurrency of builds• Human input/approval integrated into flow• Standard project concepts: SCM, artifacts, plugins

Key Pipeline Features

Page 23: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Re

serv

ed

23

Jenkins Powered CD Pipelines: Jenkins Workflow

Development Production

Commit Build Stage Deploy? ?

Pipelines Need:✓ Branching✓ Looping✓ Restarts✓ Checkpoints✓ Manual Input

Sonar Test

Selenium Test

Perf Test

Jenkins Workflow

Page 24: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Re

serv

ed

24

A Real-world CD Pipeline with Jenkins Workflow

Development Production

Jenkins Workflow

Page 25: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Pipeline as Code● Introduce “pipeline” as a new type in Jenkins● Codify an implicit series of stages into an explicit

.Jenkinsfile in your source repository● Resumability/durability of the pipeline state● Extend the DSL with your own steps

github.com/jenkinsci/pipeline-examples

Page 26: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Pipeline DSLnode('docker') { checkout scm

/* Grab the abbreviated SHA1 of our pipeline’s commit. */ sh 'git rev-parse HEAD > GIT_COMMIT' def shortCommit = readFile('GIT_COMMIT').take(6)

stage 'Build' def image = docker.build("jenkinsciinfra/bind:build-${shortCommit}")

stage 'Deploy' image.push()}

Page 27: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

© 2

015

Clou

dBee

s, In

c. A

ll Ri

ghts

Re

serv

ed

27

CloudBees Jenkins Pipeline Stage ViewJenkins Pipeline Stage View

SOURCE CODE

CONTROL SYSTEM

Code Commit

</>

Development Production

Jenkins Pipeline

Page 28: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Better Out-of-the-box UX

Page 29: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Better Out-of-the-box UI

Page 30: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

User Interface Improvements

Page 31: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

User Interface Improvements● Improved “New Item” page● More consistent terminology

Page 32: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

2.0 is a drop-in replacement for 1.x● Evolution not revolution● No need to wait

Page 33: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Better Out-of-the-box UX

Page 34: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Better Out-of-the-box UX

Page 35: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Better Out-of-the-box UI

Page 36: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

User Interface Improvements

Page 37: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

User Interface Improvements

Page 38: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

User Interface Improvements●Improved “New Item” page●More consistent terminology

Page 39: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

2.0 is a drop-in replacement for 1.x

Page 40: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Get InvolvedJenkins is made of people

Page 41: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Try out Jenkins 2.0●jenkins-ci.org/2.0●[email protected]●#jenkins on Freenode

Page 42: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Get Jenkins 2.0 (alpha) nowjenkins-ci.org/2.0

Page 43: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

New Community Site: jenkins.io (Beta) ● Modern platform and UI● Easier to use● 1-2-3-4 Quickstart ● Centralized

Documentation● Solution-oriented Use

Cases● Events listings● Launching March 22nd

Page 44: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Feedback

Page 45: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Q1 – CloudBees Jenkins Platform: Private SaaS Edition

Launched– Jenkins and CJP Certification

Later in 2016– Jenkins 2.0 Release– Jenkins 2.0 LTS Release– Updated User Interface: Blue Ocean– CloudBees Jenkins Platform 16.05 Release– Jenkins World (September)

Recent and Upcoming Activities

Page 46: SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code

Questions and Answers