Take control of your SAP testing with UiPath Test Suite
DevOps World | Jenkins World 2018 and The Future of Jenkins
1. DevOps World /
Jenkins World 2018
and
The Future of Jenkins
Jenkins
Nigel Charman Alex Vitry
2. DevOps World | Jenkins World
Run by CloudBees, who were founded by Kohsuke Kawaguchi when Jenkins was
forked from Hudson.
3. ● Cloud-Native
● DevOps
● DevSecOps
● Jenkins
● Community
● Testing
● Training
● Workshops
● ...
Tracks
4. Jenkinstein
“It’s great that Jenkins has 1,400 plugins, but you’re not
supposed to install 1,400 plugins”
– CloudBees CEO Sacha Labourey
’"I've often described Jenkins as a bucket full of lego"
"... service instability"
"... brittle configuration"
"... reduced development velocity"
"As CI/CD has gone mainstream, this is no longer OK."
– CloudBees CTO Kohsuke Kawaguchi
https://jenkins.io/blog/2018/08/31/shifting-gears/
5. Have you faced these issues?
● Jenkins running out of disk space
● Plugin version mismatches causing problems during update
● Losing git webhook events during Jenkins maintenance downtime
● Difficult to upgrade and patch
● All teams on 1 master = single point of failure
8. Jenkins Pipeline
● Continued development to make it easier to create and deploy pipelines
● To be rewritten from the ground up with an emphasis on speed
● Adding extensibility to Blue Ocean, which will become core part of Jenkins
9. Jenkins Evergreen
● Automatically updating rolling distribution
● Self-healing and rollbacks
● Go from zero to productive in under five clicks and five minutes
● More defaults, less manual configuration
● Broader Plugins - eg. Github, Docker
● Open Source, Open Design, Open Development, Open Community
https://jenkins.io/projects/evergreen/
10. What if Jenkins stopped being a snowflake?
● Improve Jenkins to run on Cloud environments as a "Cloud Native" application.
● Moving towards a stateless, replicated Jenkins service with true High
Availability, rolling or canary upgrades and zero downtime.
● Move all data currently stored in the filesystem to external storage
Cloud Native Jenkins
11. Cloud Native Jenkins
There are the following main areas for the SIG:
● Pluggable storage - Externalizing data being stored in JENKINS_HOME
● Cloud Native Jenkins - Architecture changes and optimizations towards
stateless Jenkins
● Configuration as Code - Simplify creation of static Jenkins configurations
https://jenkins.io/sigs/cloud-native/
12. Pluggable Storage Status
Artifacts (stored to S3) Available
Credentials Available
Build logs (to CloudWatch) In progress
System logs Available
Task logs Not started
Configurations In progress
Test results In progress
Code coverage results In exploration
Runs Not started
Jobs Not started
Fingerprints Not started
● Improved reliability and availability
● Cheaper storage cost
● Improved scalability
13. Configuration as Code
● Stop being a snowflake
● Safely rollback failed upgrades
● Cookie cutter identical Jenkins instances
● Jenkins Configuration as YAML files stored in Git
● Able to spin up new instances using this config file
● Status - 1.0 release
Documentation
Presentation
14. Jenkins X
An open-source CI/CD solution for cloud-native apps built on Kubernetes
Created by James Strachan (Groovy, Apache Camel), James Rawlings et al
● Integrates best of breed software
● Not just build and test, but review, promote, changelog, collaborate etc
● Creates a default app, pipeline, Git repos, helm charts, environments, ….
● GitOps promotion through your environments
● Creates preview environments for pull requests
https://jenkins-x.io/
https://vimeo.com/272269313
15. Serverless Jenkins
What if we could:
● Run an ephemeral pipeline engine for each build and stop disk space filling up
● Reduce our cloud bills by only running Jenkins when needed
● Use a CI/CD process to validate new plugins (ie. CI/CD for our CI/CD process!)
● Avoid GitHub API scans reducing risk of being rate limited
https://www.cloudbees.com/blog/serverless-jenkins-jenkins-x
16. Meet Serverless Jenkins
Built on Jenkins X, Knative Build, Prow and Cloud Native Jenkins.
Each pull request or merge:
● triggers an ephemeral Jenkins in Kubernetes
● checkouts the Git revision
● configures required credentials
● runs the applications build pipeline using its Jenkinsfile
● discards the pod once finished building
While still work in progress, Serverless Jenkins is in use for building Jenkins X.
https://www.cloudbees.com/blog/serverless-jenkins-jenkins-x
17. Serverless Jenkins - Configuring
Using the Custom War Packager (CWP), different flavours of Jenkins are built with
the necessary build tools, config and plugins.
This reduces startup time to sub 5 seconds.
With the plugins stored in YAML we can create a pull request and our Jenkins
instance will go through a CI/CD pipeline.
https://www.cloudbees.com/blog/serverless-jenkins-jenkins-x
18. Since there's no static Jenkins running, there's no Jenkins UI.
● Jenkins X provides IDE and CLI tooling.
● Prow provides a ChatOps interface in Github, and also has a UI.
Logging is to standard out, so you can leverage Kubernetes centralised logging, eg
CloudWatch, StackDriver.
Pluggable storage mechanisms from Cloud Native Jenkins can store some other
artifacts (work in progress)
Serverless Jenkins - UI and logging
https://www.cloudbees.com/blog/serverless-jenkins-jenkins-x
20. DevOptics - Run Insights
Free offering that shows 7 days worth of actionable insights into Jenkins OSS and
CloudBees Core servers
● Active Runs
● Idle Executors
● Runs Waiting to Start
● Average Time Waiting to Start
● Current Time to Idle
● Runs completed per day
● Average time to complete a run
● Activity by hour of the day
● Runs by Node Label
https://www.cloudbees.com/get-started
23. CloudBees Core v3 - Preview
CloudBees Core manages Jenkins as a Service for your teams.
v3 will introduce:
● Unified Governance
● Model your software delivery organisation and processes
● Optimise them over time
https://www.youtube.com/watch?v=V5T6RKgmJEA