© 2016 CloudBees, Inc. All Rights Reserved 1 Jenkins 2.0 and Beyond Nigel Harniman, Senior Solution Architect
© 2016 CloudBees, Inc. All Rights Reserved 2 About me Nigel Build Engineer, Devops and Architect DevOps, Infra as Code, Continuous Delivery
© 2016 CloudBees, Inc. All Rights Reserved 3 About you Jenkins? CI? CD? Code Jenkins plugin?
© 2016 CloudBees, Inc. All Rights Reserved 4 About you Developer?
© 2016 CloudBees, Inc. All Rights Reserved 5 About you Operations?
© 2016 CloudBees, Inc. All Rights Reserved 6 About you Tester?
© 2016 CloudBees, Inc. All Rights Reserved 7 About you Build Engineer?
© 2016 CloudBees, Inc. All Rights Reserved 8 About you Project Manager?
© 2016 CloudBees, Inc. All Rights Reserved 9 About you Doing CI?
© 2016 CloudBees, Inc. All Rights Reserved 10 About you Doing CD?
© 2016 CloudBees, Inc. All Rights Reserved 11 About you Who uses Jenkins?
© 2016 CloudBees, Inc. All Rights Reserved 12 Meet Jenkins Who are CloudBees Jenkins 1.x What is Jenkins 2.0 Road beyond 2.0 Let’s discuss
© 2016 CloudBees, Inc. All Rights Reserved 13 © 2016 CloudBees, Inc. All Rights Reserved 13 Meet Jenkins
© 2016 CloudBees, Inc. All Rights Reserved 14 About Jenkins Jenkins is the most widely adopted continuous integration server with the most extensive plugin ecosystem
© 2016 CloudBees, Inc. All Rights Reserved 15 What is Jenkins? Continuous Integration? DevOps? Continuous Delivery? DevOps? Automation!
© 2016 CloudBees, Inc. All Rights Reserved 16 Key Facts Extensible Open SourceEasy to Start
© 2016 CloudBees, Inc. All Rights Reserved 17 Jenkins Popularity is Through the Roof
© 2016 CloudBees, Inc. All Rights Reserved 18 ….in a recent report by Perforce and Evens Research “Continuous Delivery: The New Normal for Software Development” 65% of respondents have started down the path to implementation of CD with 37% adopting it on some projects, and 28% on all projects. Of respondents to the “2015 Jenkins Community Survey, 41% use Jenkins for continuous delivery.
© 2016 CloudBees, Inc. All Rights Reserved 19 Easy to Download and Start
© 2016 CloudBees, Inc. All Rights Reserved 20 Extensible Over 1100 Jenkins Plugins Integration with over 100 DevOps Tools Orchestration of the DevOps Toolchain End-to-End CD Pipeline Management Code & CommitBuild & ConfigScan & TestReleaseDeploy
© 2016 CloudBees, Inc. All Rights Reserved 21 About CloudBees WE ARE The Enterprise Jenkins Company OUR GOAL To be the automation leader helping organizations develop and deliver better software faster. WE OFFER Continuous delivery solutions powered by Jenkins at enterprise scale with enterprise support. OUR BUSINESS VALUE We enable IT to deliver better software faster by optimizing their use of Jenkins on premise or in the cloud.
© 2016 CloudBees, Inc. All Rights Reserved 22 Open Source Innovation Meets Enterprise Strength Jenkins OSS Community Powered CI/CD Innovation Jenkins for the Enterprise Jenkins Platform
© 2016 CloudBees, Inc. All Rights Reserved 23 Requirements of Enterprise CD
© 2016 CloudBees, Inc. All Rights Reserved 24 How CloudBees Jenkins Platform Makes Life Better Jenkins Sprawl Do you know who is using Jenkins and where? ! Uncontrolled Plugin Usage Do you have issues with users installing random plugins? ! Lack of Security Can you control who is doing what in Jenkins? ! Impact of Downtime 92% of Jenkins survey respondents say Jenkins is mission critical. Is it for you? ! Performance / Scalability Issues Do you need your builds to run faster? Do you need to run at scale? ! Lack of Monitoring Would you like to measure performance for both Jenkins and your builds? ! No Technical Support Need experts to call for Jenkins Tech Support? ! Manage Jenkins Sprawl With CloudBees Jenkins Operations Center. ! Control Plugin Usage With Custom Plugin Update Centers. ! Apply Security to Jenkins With RBAC and folders for managing your organization. ! Make Jenkins Highly Available HA and cluster operations features. ! Speed Up and Scale Jenkins Optimized performance, shared agent pools. ! Monitoring and Visualization CloudBees Jenkins Operations Center and Analytics. ! Expert Technical Support CloudBees has the Jenkins experts on staff. !
© 2016 CloudBees, Inc. All Rights Reserved 25 Jenkins Master Server with additional advanced enterprise-grade features High availability Large installations Security Optimized utilization Continuous Delivery Jenkins Agent CloudBees Jenkins Platform – Enterprise Edition Jenkins Operations Center Plugin Update Centers Cluster Operations Analytics Shared Agents Jenkins Enterprise Master z TEAM A Jenkins Enterprise Master z TEAM B Jenkins Enterprise Master z TEAM C
© 2016 CloudBees, Inc. All Rights Reserved 26 CloudBees Jenkins Platform Editions Platinum SupportGold Support Enterprise Edition Cloud/Container Support Private SaaS Edition Self-Service Elastic Resilient Private Cloud Analytics Shared Resources
© 2016 CloudBees, Inc. All Rights Reserved 27 © 2016 CloudBees, Inc. All Rights Reserved Jenkins 1.x
© 2016 CloudBees, Inc. All Rights Reserved 28 Easy to download wget mirrors.jenkins-ci.org/war/latest/jenkins.warmirrors.jenkins-ci.org/war/latest/jenkins.war java -jar jenkins.war Open up
© 2016 CloudBees, Inc. All Rights Reserved 29 Then what
© 2016 CloudBees, Inc. All Rights Reserved 30 Helpful pre-installed plugins CVS Subversion Ant Maven JUnit Javadoc LDAP OWASP Markup Formatter PAM Authentication Translation Assistance Windows/SSH Agent
© 2016 CloudBees, Inc. All Rights Reserved 31 © 2016 CloudBees, Inc. All Rights Reserved 31 Build and release some software
© 2016 CloudBees, Inc. All Rights Reserved 32 Pipelines in Jenkins 1.x Create jobs Trigger “downstream” jobs for next stage Easy!
© 2016 CloudBees, Inc. All Rights Reserved 33 Pipelines in Jenkins 1.x
© 2016 CloudBees, Inc. All Rights Reserved 34 Pipelines in Jenkins 1.x
© 2016 CloudBees, Inc. All Rights Reserved 35 Pipelines in Jenkins 1.x
© 2016 CloudBees, Inc. All Rights Reserved 36 Pipelines in Jenkins 1.x
© 2016 CloudBees, Inc. All Rights Reserved 37 Pipelines in Jenkins 1.x
© 2016 CloudBees, Inc. All Rights Reserved 38 Pipelines in Jenkins 1.x
© 2016 CloudBees, Inc. All Rights Reserved 39 Easy!
© 2016 CloudBees, Inc. All Rights Reserved 40 Classic Job Configuration UI All the options you could ever want –and more! Consistent for almost a decade
© 2016 CloudBees, Inc. All Rights Reserved 41 Low maintenance Many users install Jenkins once Usage pattern: “set it, and forget it!”
© 2016 CloudBees, Inc. All Rights Reserved 42
© 2016 CloudBees, Inc. All Rights Reserved 43 Launched on 26 April 2016 Jenkins 2.0
© 2016 CloudBees, Inc. All Rights Reserved Themes Pipeline as code: front and center Improved “out of the box” user experience User interface improvements jenkins-ci.org/content/jenkins-20-proposals
© 2016 CloudBees, Inc. All Rights Reserved 45 © 2016 CloudBees, Inc. All Rights Reserved 45 Pipeline as Code
© 2016 CloudBees, Inc. All Rights Reserved 46 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
© 2016 CloudBees, Inc. All Rights Reserved 47 Pipeline DSL node('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() }
© 2016 CloudBees, Inc. All Rights Reserved 48 Pipeline DSL
© 2016 CloudBees, Inc. All Rights Reserved 49 Scan repository for new branches and automatically create / remove Jenkins jobs –Git, SVN, Mercurial BitBucket (Stash) Scan SCM organisation for new repositories and create new MultiBranch pipelines –GitHub, BitBucket (Stash) Automatically create a branch and job when a developer performs a Pull Request –GitHub, BitBucket (Stash) Pipeline MultiBranch and Repo Scanning
© 2016 CloudBees, Inc. All Rights Reserved 50 Pipeline MultiBranch Master Feature Branch 1 Feature Branch 2 Master Pipeline Job FB 1 Pipeline Job FB 2 Pipeline Job
© 2016 CloudBees, Inc. All Rights Reserved 51
© 2016 CloudBees, Inc. All Rights Reserved 52 Pipeline Org-Scanning
© 2016 CloudBees, Inc. All Rights Reserved 53 Pipeline Stage View
© 2016 CloudBees, Inc. All Rights Reserved 54 © 2016 CloudBees, Inc. All Rights Reserved 54 Better Out-of-the-box UX
© 2016 CloudBees, Inc. All Rights Reserved 55 Secure by default
© 2016 CloudBees, Inc. All Rights Reserved 56 Better Out-of-the-box UX
© 2016 CloudBees, Inc. All Rights Reserved 57 Better Out-of-the-box UI
© 2016 CloudBees, Inc. All Rights Reserved 58 © 2016 CloudBees, Inc. All Rights Reserved 58 User Interface Improvements
© 2016 CloudBees, Inc. All Rights Reserved 59 Jenkins 2.0: UI ●New Items Page ●Configuration Tabs
© 2016 CloudBees, Inc. All Rights Reserved 60 © 2016 CloudBees, Inc. All Rights Reserved 60 Demos
© 2016 CloudBees, Inc. All Rights Reserved 61 New Jenkins.io ●Modern platform and UI ●Easier to use ● Quickstart ●Centralized Documentation ●Solution-oriented Use Cases ●Events listings
© 2016 CloudBees, Inc. All Rights Reserved 62 © 2016 CloudBees, Inc. All Rights Reserved is a drop-in replacement for 1.x
© 2016 CloudBees, Inc. All Rights Reserved 63 © 2016 CloudBees, Inc. All Rights Reserved 63 Release Candidate Feedback
© 2016 CloudBees, Inc. All Rights Reserved Feedback
© 2016 CloudBees, Inc. All Rights Reserved Pipeline as Code Feedback ●Pipeline well received in JAM ●Many users eager to try Pipeline ●Foundation of new CD development
© 2016 CloudBees, Inc. All Rights Reserved 66 Jenkins 2.0 Online Meetup - Wednesday, May 4 Registration: meetup/events/ / meetup/events/ / Tentative Agenda: ●9:00AM PST - Jenkins 2.0 Keynote ●9:30AM PST - Pipeline as Code Overview ●10:00AM PST - Pipeline Deep-Dive (Multibranch, GitHub Integration, etc.) ●10:30AM PST - New UX Changes in 2.0 ●11:00AM PST - Documentation Lightning Talk ●12:00PM PST - Close
© 2016 CloudBees, Inc. All Rights Reserved 67 © 2016 CloudBees, Inc. All Rights Reserved Road beyond 2.0
© 2016 CloudBees, Inc. All Rights Reserved 68 © 2016 CloudBees, Inc. All Rights Reserved Retrospective
© 2016 CloudBees, Inc. All Rights Reserved Retrospective Discussing “2.0” started conversations about much bigger and involved changes The “weekly incremental release” model has left big challenges unaddressed Aging user interface layer is difficult to substantially improve
© 2016 CloudBees, Inc. All Rights Reserved 70 ten·ta·tive (tĕn′t ə -tĭv) adj. Not fully worked out, concluded, or agreed upon; provisional
© 2016 CloudBees, Inc. All Rights Reserved 71 Themes Continuous Delivery Scalability & Availability User Experience
© 2016 CloudBees, Inc. All Rights Reserved 72 © 2016 CloudBees, Inc. All Rights Reserved 72 Continuous Delivery
© 2016 CloudBees, Inc. All Rights Reserved 73 Continuous Delivery Model “Application” and “Environments” in Jenkins Inform Jenkins of what happens with them –synchronous: build owns the deployment –asynchronous: external reporters/deployment tools notify Jenkins upon completion Expose what’s “in” Environments –Differences between deployments, e.g. commits, tickets, etc
© 2016 CloudBees, Inc. All Rights Reserved 74 Continuous Delivery Grow dataset of available Application/Environment information Close the feedback loop from “production” with monitoring/alerting tooling
© 2016 CloudBees, Inc. All Rights Reserved 75 © 2016 CloudBees, Inc. All Rights Reserved 75 Scalability & Availability
© 2016 CloudBees, Inc. All Rights Reserved 76 Storage & Availability Configurations, build records, logs, fingerprints and artifacts all currently live on master node Reduce local disk dependency on master node Storage backend pluggability –BYODB (bring your own data backend)
© 2016 CloudBees, Inc. All Rights Reserved 77 Storage & Availability: Clustering Break a single-JVM master node into a conceptual “master” across multiple JVMs Prevent need for “hard downtime” to modify, etc Must still run as a single instance Evaluate multi-tenancy via: –Access controls –Per-folder configuration separation –?–?
© 2016 CloudBees, Inc. All Rights Reserved 78 Storage & Availability: Clustering Defer more “master” work out to separate JVMs Develop more “stateless” components which can scale horizontally
© 2016 CloudBees, Inc. All Rights Reserved 79 © 2016 CloudBees, Inc. All Rights Reserved 79 User Experience #ItsABigBlueOcean
© 2016 CloudBees, Inc. All Rights Reserved 80
© 2016 CloudBees, Inc. All Rights Reserved 81 © 2016 CloudBees, Inc. All Rights Reserved Get Involved Jenkins is made of people
© 2016 CloudBees, Inc. All Rights Reserved 82 Participate in the community Core Plugins jenkins-ci.org / documentation Events Infrastructure
© 2016 CloudBees, Inc. All Rights Reserved 83 Try out Jenkins 2.0 jenkins-ci.org/2.0 #jenkins on Freenode
© 2016 CloudBees, Inc. All Rights Reserved 84 © 2016 CloudBees, Inc. All Rights Reserved Get Jenkins 2.0 now jenkins.io/2.0
© 2016 CloudBees, Inc. All Rights Reserved 85 © 2016 CloudBees, Inc. All Rights Reserved Questions and Answers ish