Jenkins World

70
Jenkins World State of Jenkins 2016 Kohsuke Kawaguchi Creator of Jenkins CTO, CloudBees, Inc. © 2016 CloudBees, Inc. All Rights Reserved

Transcript of Jenkins World

Page 1: Jenkins World

Jenkins World

State of Jenkins 2016 Kohsuke Kawaguchi Creator of Jenkins CTO, CloudBees, Inc.

© 2016 CloudBees, Inc. All Rights Reserved

Page 2: Jenkins World

Jenkins World

Has your company’s use of Jenkins increased over the past year?

89%

11% Increased

No Change

Decreased

Page 3: Jenkins World

Jenkins World

Is Jenkins mission critical?

2013 Survey 2015 Survey

Page 4: Jenkins World

Jenkins World

What types of tasks do you use Jenkins for?

2013 2015

Build 95% 97%

Test 86% 90%

Deployment 48% 58%

Operations 15% 24%

Page 5: Jenkins World

Jenkins World

What level of automation have you implemented in Jenkins?

11%

30% 59%

CD with fully automatic production deployment CD with manual deployment CI only

Page 6: Jenkins World

Jenkins World

Con$nuousDeliveryishereandreal

Page 7: Jenkins World

Jenkins World

Page 8: Jenkins World

Jenkins World

Adoption of Jenkins 2

0% 5%

10% 15% 20% 25% 30% 35% 40% 45%

April May June July August © 2016 CloudBees, Inc. All Rights Reserved

Page 9: Jenkins World

Jenkins World

Pipeline Jobs

0

20,000

40,000

60,000

80,000

100,000

120,000

Jan Feb Mar Apr May Jun Jul Aug © 2016 CloudBees, Inc. All Rights Reserved

Page 10: Jenkins World

Jenkins World

Better from the beginning

• 80% of use cases out of the box • Guide users to best practice • Start with recommended set of plugins

Page 11: Jenkins World

Jenkins World

Page 12: Jenkins World

Jenkins World

Page 13: Jenkins World

Jenkins World

Guide users to best practice

ü Git ü Folder ü Pipeline ü Email ext ü Build timeout ü Credentials ü Timestamper ü …

© 2016 CloudBees, Inc. All Rights Reserved

Page 14: Jenkins World

Jenkins World

© 2016 CloudBees, Inc. All Rights Reserved

Page 15: Jenkins World

Jenkins World

Credit:h*ps://flic.kr/p/nrFHFz

Page 16: Jenkins World

Jenkins World

Pipeline makes Jenkins robust

• Tolerates a restart • Tolerates plugin updates • Tolerates loss of master/agent communication

© 2016 CloudBees, Inc. All Rights Reserved

Page 17: Jenkins World

Jenkins World

Jenkinsfile

node('java8'){//Checkoutoursourcecodestage('Checkout'){checkoutscm}//Buildourprojectstage('Build'){sh'mvncleaninstall'}//Runourtesttargetstage('Test'){sh'./test.sh'//ArchiveourartifactsarchiveArtifacts'target/**/*.jar'}}

Page 18: Jenkins World

Jenkins World

Definition in repository

• Bring transparency to changes • Capture intent, not just outcome • Help remove state from Jenkins

Page 19: Jenkins World

Jenkins World

#1 Tell Jenkins about your GitHub Org

Page 20: Jenkins World

Jenkins World

#2 Add Jenkinsfile

node('java8'){//Checkoutoursourcecodestage('Checkout'){checkoutscm}//Buildourprojectstage('Build'){sh'mvncleaninstall'}//Runourtesttargetstage('Test'){sh'./test.sh'//ArchiveourartifactsarchiveArtifacts'target/**/*.jar'}}

© CommitStrip

Page 21: Jenkins World

Jenkins World

#3 Sit & Watch

Page 22: Jenkins World

Jenkins World

#3 Sit & Watch

Page 23: Jenkins World

Jenkins World

Pipeline Visualization

Page 24: Jenkins World

Jenkins World

fabric8 = Kubernetes + Jenkins Pipeline

• fabric8 is microservices platform based on Docker, Kubernetes, and Jenkins Pipeline

© 2016 CloudBees, Inc. All Rights Reserved

Page 25: Jenkins World

Jenkins World

Page 26: Jenkins World

Jenkins World

© 2016 CloudBees, Inc. All Rights Reserved

Page 27: Jenkins World

Jenkins World#JenkinsWorld

© 2016 CloudBees, Inc. All Rights Reserved

Page 28: Jenkins World

Jenkins World

© 2016 CloudBees, Inc. All Rights Reserved

Page 29: Jenkins World

Jenkins World

• Contributors • Users • Companies

2016 : One Big Party For Everyone

© 2016 CloudBees, Inc. All Rights Reserved

© CommitStrip

Page 30: Jenkins World

Jenkins World

Contributors from everywhere are here

Page 31: Jenkins World

Jenkins World

Google Summer of Code

© 2016 CloudBees, Inc. All Rights Reserved

• 9 detailed project ideas • 15 mentors, 3 admins • Dozens of applications • 5 accepted

Page 32: Jenkins World

Jenkins World

One of them is here!

• External workspace manager for Pipeline – Student: Alex Somai – Mentors: Martin d’Anjou & Oleg Nenashev

© 2016 CloudBees, Inc. All Rights Reserved

Page 33: Jenkins World

Jenkins World

JAM : Jenkins Area Meetup

• Let’s have more local meetups • We help local leaders

– Swag, speaker referrals, promotion, …

© 2016 CloudBees, Inc. All Rights Reserved

Page 34: Jenkins World

Jenkins World

© 2016 CloudBees, Inc. All Rights Reserved

Page 35: Jenkins World

Jenkins World

Jenkins Online Meetup

• On Google Hangout

© 2016 CloudBees, Inc. All Rights Reserved

Page 36: Jenkins World

Jenkins World

Number of JAM leaders are here!

• Khai Do & Tim Condit from Seattle • Casey Vega & Jon Hermansen from Los Angeles • Tracy Ragan from Albuquerque • Mor Lajb from Tel Aviv, Israel • Kenichiro Ohta from Tokyo, Japan • Susie Hernandez & Hazzim Anaya from Guadalajara, Mexico • Eddu Melendez & Edson Chavez from Lima, Peru

© 2016 CloudBees, Inc. All Rights Reserved

Page 37: Jenkins World

Jenkins World

Project Voltron

© 2016 CloudBees, Inc. All Rights Reserved

Page 38: Jenkins World

Jenkins World

New Plugin Site in Jenkins.io

• A project is underway to hopefully replace the current one

© 2016 CloudBees, Inc. All Rights Reserved

Page 39: Jenkins World

Jenkins World

Demo New Plugin Site

© 2016 CloudBees, Inc. All Rights Reserved

Page 40: Jenkins World

Jenkins World

Security Team

• 1 year of Daniel Beck as security officer! • Coordinated vulnerability reporting, fixing, & releasing process • Involves plugin developers and other security organizations

© 2016 CloudBees, Inc. All Rights Reserved ©DaveBleasdale|h*ps://flic.kr/p/6UKyJq

Page 41: Jenkins World

Jenkins World

© 2016 CloudBees, Inc. All Rights Reserved

Infra Team

h*ps://flic.kr/p/qCoDG

Page 42: Jenkins World

Jenkins World

60TB/month of goodness delivered!

© 2016 CloudBees, Inc. All Rights Reserved

Page 43: Jenkins World

Jenkins World

Jenkins + Microsoft = Love

© 2016 CloudBees, Inc. All Rights Reserved

Page 44: Jenkins World

Jenkins World

We are moving to Azure

• More consistent, uniform infra

• Support the growing needs of the community

• Practice what we preach; kick-ass DevOps for infra

© 2016 CloudBees, Inc. All Rights Reserved

Page 45: Jenkins World

Jenkins World

© 2016 CloudBees, Inc. All Rights Reserved

Page 46: Jenkins World

Jenkins World

46

Page 47: Jenkins World

Jenkins World

47

Page 48: Jenkins World

Jenkins World

© 2016 CloudBees, Inc. All Rights Reserved h*ps://flic.kr/p/opw1JR

Page 49: Jenkins World

Jenkins World

Blue Ocean Project Goals

• Complete rethink of Jenkins UX • Focused initially on developer UI around pipelines

– Gradually take over the whole UI over time

• Personalized – Is it safe to go home today?

• And just like other projects in Jenkins… – Extensible by plugins – Design Language to help plugin developers build great UI

© 2016 CloudBees, Inc. All Rights Reserved

Page 50: Jenkins World

Jenkins World

Demo Blue Ocean

© 2016 CloudBees, Inc. All Rights Reserved

Page 51: Jenkins World

Jenkins World

© 2016 CloudBees, Inc. All Rights Reserved

Blue Ocean 1.0 beta

Page 52: Jenkins World

Jenkins World

Credit:h*ps://flic.kr/p/nrFHFz

Page 53: Jenkins World

Jenkins World

Next round of efforts focused on ease of use

• Simplified model of pipeline that’s easy to explain & understand • No more snowflake Jenkinsfile • Look less like programming, more declarative • Fails when Jenkins reads it, not when it runs it • Cater to both point-and-click people & vi/emacs people

© 2016 CloudBees, Inc. All Rights Reserved

Page 54: Jenkins World

Jenkins World

© 2016 CloudBees, Inc. All Rights Reserved

Page 55: Jenkins World

Jenkins World

Jenkinsfile, simplified

pipeline { agent docker:"node_js:0.10" stages { stage(’build') { sh './build.sh' } stage('test') { sh './run-test.sh' } } }

© 2016 CloudBees, Inc. All Rights Reserved

Page 56: Jenkins World

Jenkins World

Common idioms, simplified

environment { SAUCE_USERNAME = 'bootstrap' SAUCE_PASSWORD = secret("pJkBwnuae9dKU5tEcCqccfS1QQw7/…") } notifications { failure { mail to: '[email protected]' } }

© 2016 CloudBees, Inc. All Rights Reserved

Page 57: Jenkins World

Jenkins World

© 2016 CloudBees, Inc. All Rights Reserved h*ps://flic.kr/p/FZsYJD

Walled garden of idiom

Page 58: Jenkins World

Jenkins World

More ease of use

• New documentation site – Search – Use-case driven examples

• Better error handling & reporting • Security sandbox improvements • Language discrepancy

© 2016 CloudBees, Inc. All Rights Reserved

Page 59: Jenkins World

Jenkins World

Page 60: Jenkins World
Page 61: Jenkins World

Jenkins World

Imagine the world where …

You install new plugins & modify security setting through pull requests

© 2016 CloudBees, Inc. All Rights Reserved

Page 62: Jenkins World

Jenkins World

Meet Jenkins Config as Code

• Plugins, global configuration, views, jobs, agents, credentials configured via $JENKINS_HOME/conf.d/*.conf • Covers all plugins dynamically without custom code for each • Machine generated reference manual & syntax checks

© 2016 CloudBees, Inc. All Rights Reserved

Page 63: Jenkins World

Jenkins World

Imagine the world where …

You never have to throw away any build records

© 2016 CloudBees, Inc. All Rights Reserved

Page 64: Jenkins World

Jenkins World

Storage Pluggability

• Reduce & eventually eliminate local disk usage • Benefits

– Better scalability for larger deployments – Better index & data analysis – Better fail-over and disaster recovery – Faster startup time

© 2016 CloudBees, Inc. All Rights Reserved

Page 65: Jenkins World

Jenkins World

Imagine the world where …

Single Jenkins master handles your global workload

© 2016 CloudBees, Inc. All Rights Reserved

Page 66: Jenkins World

Jenkins World

Cloud Native Jenkins

• Single master that spans across multiple JVMs on multiple machines • 24/7 Availability without down time

• Attractive but big disruptive changes

© 2016 CloudBees, Inc. All Rights Reserved

Page 67: Jenkins World
Page 68: Jenkins World

Jenkins World

We are ALL IN! What are you waiting for?

• Jenkins 2 – Upgrade!

• Blue Ocean – Install it and tell us what you think!

• Pipeline – Have one job converted during JW!

• More exciting projects coming down the road

© 2016 CloudBees, Inc. All Rights Reserved

Page 69: Jenkins World

Jenkins World

© 2016 CloudBees, Inc. All Rights Reserved

Page 70: Jenkins World

Jenkins World

© 2016 CloudBees, Inc. All Rights Reserved ImageCredit:h*p://bit.ly/2cGFLq7