> whoami
@oleg_nenashev
oleg-nenashev
Dr. Nenashev / Mr. Jenkins
Community builder
Developer Tools Hacker
#RussiansAgainstPutin #StandWithUkraine
2
Slide 3
Slide 3 text
Async Q&A: Jenkins Forum
community.jenkins.io/t/cloud-friendly-jenkins/13426
Slide 4
Slide 4 text
My Open [and not so] Communities
Time
* Once a contributor, [almost] always a contributor
Neuchâtel
4
Slide 5
Slide 5 text
We talk Jenkins!
Disclaimer
● My talk does not represent my
employer’s opinion
● It is not an official position of the
Jenkins community
● It is not related to the CloudBees
announcements on HA Jenkins, but
that’s a good stuff
5
Slide 6
Slide 6 text
Disclaimer:
Taking a break in Jenkins
Away: personal events, ongoing war
I participate in governance and GSoC
(Co-)Maintainers welcome!
I will be back! CDF Statement
We stand with the people of Ukraine.
Please assist humanitarian efforts for the
Ukrainian people and those affected by the
military invasion of Ukraine by supporting
international aid organizations, including
UNICEF.
6
Slide 7
Slide 7 text
7
Slide 8
Slide 8 text
@birthmarkbart
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
Flew past like
plywood over Paris -
idiom in the Russian language
10
J'ai survolé Paris comme du contreplaqué
Slide 11
Slide 11 text
11
● Having a baby
● COVID
● War in Ukraine
● Solo Parenting
Me missing Kubecon
Slide 12
Slide 12 text
12
@oleg_nenashev
Slide 13
Slide 13 text
13
TL;DR: for your projects
Being Cloud Friendly is a must,
Cloud Native is optional
Slide 14
Slide 14 text
14
Slide 15
Slide 15 text
15
Slide 16
Slide 16 text
16
My talks on
evolution of
CI/CD
https://speakerdeck.com/onenashev/
Slide 17
Slide 17 text
Generations of CI/CD Tools (Oleg’s IMHO)
IV
III
II
I CRON
….
17
Slide 18
Slide 18 text
Generation III.
New demands
Shift
left
Generation III evolves
… but not fast enough
for early adopters
18
Slide 19
Slide 19 text
!=
Jenkins has CHANGED
19
Slide 20
Slide 20 text
Generations of CI/CD tools
IV
III
Evolution
R.I.P.
???
V
???
20
Slide 21
Slide 21 text
Modern Jenkins
• Pipeline-as-Code
• Configuration-as-Code
• New plugins and integrations
• Modern packaging
• Distributions for public clouds
21
Slide 22
Slide 22 text
Generations of CI/CD tools
IV
III
Evolution
R.I.P.
???
V
???
IV
V ???
22
Slide 23
Slide 23 text
CI/CD Tools. Generation V
● Learns from experiences of previous generations
○ Opinionated but no longer general purpose
● High specialization
○ Unix way: “Do One Thing and Do It Well”
● Mostly cloud native
● Mostly open source as a tool or as ecosystem
V
23
Slide 24
Slide 24 text
24
x.com/dastbe/status/1303858170155081728
Slide 25
Slide 25 text
CI/CD Tools. Generation V - Examples
* Oleg’s CI tool
generation definition 25
Slide 26
Slide 26 text
Example: Tekton
Cloud Native
Kubernetes Native
Everything is container
Steps and pluggability
via containers
tekton.dev
26
Slide 27
Slide 27 text
Getting out of Local Optimum
“Jenkins: Shifting gears”, Kohsuke Kawaguchi, 2018
jenkins.io/blog/2018/08/31/shifting-gears
Generation IV Generation V
* Oleg’s CI tool
generation definition 27
Slide 28
Slide 28 text
Cloud Native Jenkins
“General purpose CI/CD
engine that runs on
Kubernetes and embraces
fundamentally different
architecture & extensibility
mechanisms”
28
https://flic.kr/p/75ncBF
Kohsuke Kawaguchi, 2018
Slide 29
Slide 29 text
29
Being Cloud Native is not running
on Kubernetes
Slide 30
Slide 30 text
Being Cloud Native
● Best service for each need
● Pay per use
● “Infinite” scaling / Scale to zero
● Easy to use
● Easy to maintain
● Fast to develop
30
Controller as a SPoF Macroservice
32
Permanent agents
On-demand agents
from cloud providers
Web UI
Jenkins
Controller
Slide 33
Slide 33 text
Cloud Native Special Interest Group
● Founded in July 2018
● jenkins.io/sigs/cloud-native
● R.I.P in 2022
Goal: Improve Jenkins to run on Cloud
environments as a "Cloud Native" application
33
?
Slide 34
Slide 34 text
Cloud Native SIG Projects
34
● Pluggable Storage
● Jenkins X 1.x
● Configuration-as-Code
● OTel and Cloud Events Integrations
● Multi-tenant Jenkins Controller
● Operator for Kubernetes
● Jenkinsfile Runner (portable Pipeline)
Slide 35
Slide 35 text
35
Slide 36
Slide 36 text
Jenkins X. Out of the Box experience
• Build packs - Continuous Delivery
• GitOps
• Nexus, chartmuseum, monocular
• Environments: Local, staging, production
• IDE Integrations
36
Slide 37
Slide 37 text
Pipeline engines become a commodity
37
Static
Controllers
Serverless
build engines
Jenkinsfile
Runner
Tekton
(default)
Classic
Jenkins
https://jenkins-x.io/
Jenkins X 3.x
Slide 38
Slide 38 text
Too Opinionated?
38
Jenkins X
Not a Jenkins replacement,
Keeps evolving
Slide 39
Slide 39 text
Cloud Native Jenkins
“General purpose CI/CD
engine that runs on
Kubernetes and embraces
fundamentally different
architecture & extensibility
mechanisms”
39
https://flic.kr/p/75ncBF
Kohsuke Kawaguchi, 2018
Slide 40
Slide 40 text
(┛ಠ_ಠ)┛彡┻━┻
What if Jenkins controller
was “on-demand”?
40
Slide 41
Slide 41 text
Jenkinsfile Runner
● Binary and base Docker image
● Runs a Pipeline job and shuts down
● No Web UI*
● On-demand packaging as a container or JAR
github.com/jenkinsci/jenkinsfile-runner
41
● Not a CI/CD solution on its own
Limitations
Triggers
Webhook
receivers
Log services
Result Storage
Web UI
44
Slide 45
Slide 45 text
● Not a CI/CD solution on its own
● No Web UI
● No Queue
● No build throttling, cross-controller
communication, etc.
● Designed for a single-container use
Limitations
45
Slide 46
Slide 46 text
Foundations were not ready
46
Not a Jenkins replacement,
Keeps evolving
Slide 47
Slide 47 text
Pluggable Storage: current state
• Artifacts
• Build logs
• Configuration
• Credentials
• Builds
• Jobs
• Test results
• Code coverage
• Static analysis
• System logs
• Task logs
• Fingerprints
• ... Legend
done & available
partial
not started
jenkins.io/doc/book/using/pluggable-storage/
47
Jenkins Operator for Kubernetes
51
● Actually, two operators from
different vendors
● Core Jenkins vendors were busy
with other projects
● We tried to set up community
governance too late
Slide 52
Slide 52 text
52
Slide 53
Slide 53 text
53
Slide 54
Slide 54 text
All projects worked,
but no breakthrough
No Jenkins successor?
54
?
Slide 55
Slide 55 text
Did we FAIL?
55
Not really, but we didn't
succeed either
Slide 56
Slide 56 text
Users want to run CI, they don’t
care about infra
56
Slide 57
Slide 57 text
What they
need
57
Slide 58
Slide 58 text
58
● Infra and CI
maintenance
are overhead
● SaaS or service
● Simple for
simple cases
● Affordable for
complex
Slide 59
Slide 59 text
Система
Docs
Plugins Configs
Infra-
structure
Backend
Samples
Demos
Infra-
structure
Infra-
structure
59
?
without proper
maintenance
What they don’t want
Slide 60
Slide 60 text
60
TL;DR: for your projects
Being Cloud Friendly is a must,
Cloud Native is optional
Slide 61
Slide 61 text
Being Cloud Native
● Best service for each need
● Pay per use
● “Infinite” scaling / Scale to zero
● Easy to use
● Easy to maintain
● Fast to develop
61
Slide 62
Slide 62 text
Being Cloud Friendly
● Best service for each need
Best service for your needs
● Pay per use
● “Infinite” scaling / Scale to zero
Scales as needed
● Easy to use in the cloud
● Easy to maintain in the cloud
● Fast to develop in the cloud
62
Slide 63
Slide 63 text
Could
Cloud Native Jenkins
succeed?
63
Slide 64
Slide 64 text
There are many who
can do cloud native, but
only a few who can do
shared context services
64
Viktor Farcic
devopsparadox.com
Slide 65
Slide 65 text
Jenkins succeeded as a service,
not as SaaS
65
* Until now?
Slide 66
Slide 66 text
66
cloudbees.com/blog/revolutionize-y
our-jenkins-environment-with-ha-hs
Shared Context / HA / SaaS by CloudBees
Slide 67
Slide 67 text
67
Jenkins Contributor Summit, 02 Feb 2024
Slide 68
Slide 68 text
68
Slide 69
Slide 69 text
69
Interoperability First
Choose & Combine the best tools
* Unix way
Slide 70
Slide 70 text
OTel in
Jenkins
● Traces can go
through different
tools, not just a
single one
● OTel Tracing is a
DAG
Source:
plugins.jenkins.io/opentelemetry/
70
Slide 71
Slide 71 text
CloudEvents Plugin (GSOC ‘21)
71
Slide 72
Slide 72 text
Tekton Client Plugin
Pipeline Engine is no a commodity
Tekton provides the ability to create “k8s-style resources for
declaring CI/CD-style pipelines”. It is the go to CI/CD system
for creating Pipelines on Kubernetes.
You can create Tekton Resources from Jenkins
Recent v1 Release !
Blogpost : Easily reuse Tekton and Jenkins X from Jenkins
72
● Multiple checks
● Status reporting
● Summary and Details
● GitHub Markdown support
● Annotations
https://github.com/jenkinsci/gradle-
plugin/pull/382/checks?check_run_i
d=19876936412
75
Slide 76
Slide 76 text
The future is ahead!
“Jenkins: Shifting gears”, Kohsuke Kawaguchi, 2018
jenkins.io/blog/2018/08/31/shifting-gears
Generation IV Generation V
* Oleg’s CI tool
generation definition 76
Slide 77
Slide 77 text
Takeaways
● One doesn’t have to be Cloud Native.
Think Cloud Friendly first
● Scalability is not a goal on its own, scale
what needs to scale
● Focus on user and developer experience
● Pay your architecture debt
77
Slide 78
Slide 78 text
It’s [always] great time to contribute ;)
jenkins.io/participate
78
Slide 79
Slide 79 text
It is a great time to contribute!
jenkins.io/participate
79