Slide 1

Slide 1 text

Jenkins 2022 and beyond Oleg Nenashev, Dynatrace 1

Slide 2

Slide 2 text

> whoami @oleg_nenashev oleg-nenashev 2

Slide 3

Slide 3 text

Outline Slides are public! Target audience: Jenkins users and contributors Plan: History dive My vision for Jenkins What’s next for Jenkins? Disclaimer: This presentation represent the opinions of the presenter and do not necessarily represent the official position of the Jenkins community or Dynatrace 3

Slide 4

Slide 4 text

Taking a break in Jenkins ● On sabbatical in the community ● It’s not due to leaving CloudBees ● Reasons: personal events, ongoing war ● I participate in governance and GSoC ● 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. 4

Slide 5

Slide 5 text

> whoami --jenkins @oleg_nenashev oleg-nenashev 5

Slide 6

Slide 6 text

History Dive 6

Slide 7

Slide 7 text

Jenkins Is The Way video, sponsored by CloudBees: https://youtu.be/fgd1bBlQXBE 7

Slide 8

Slide 8 text

Let’s skip 15 years… // see the presentations by Kohsuke Kawaguchi 8

Slide 9

Slide 9 text

Who is Mr. Jenkins? Automation server/framework Open-source More than 1800 plugins Big community Commercial support is available 9

Slide 10

Slide 10 text

Jenkins’ recipe of success • Extensible • General-purpose • Community 10

Slide 11

Slide 11 text

Jenkins community • Open governance • Jenkins evolution is defined by contributors • Open to any individual and company contributor • Maintainers have full freedom in their plugins 11

Slide 12

Slide 12 text

It works well! 12

Slide 13

Slide 13 text

!= 13

Slide 14

Slide 14 text

Modern Jenkins • • • • • Pipeline-as-Code Configuration-as-Code New plugins and integrations Modern packaging Distributions for public clouds 14

Slide 15

Slide 15 text

Project keeps growing https://jenkins.devstats.cd.foundation/d/15/new-prs-in-repository-groups?orgId=1&var-period=q &var-repogroup_name=All&from=now-10y&to=now 15

Slide 16

Slide 16 text

16

Slide 17

Slide 17 text

Obstacles we hit • Isolated sub-communities • Lack of transparency • Perceived lack of focus • Hard to get multiple contributors behind big initiatives • Hard to join initiatives 17

Slide 18

Slide 18 text

Jenkins community consolidation • 2011 - Open Governance, Governance Meetings • 2015 - Teams, Jenkins Officers, sub-projects • 2017 - Jenkins Enhancement Proposals • 2018 - Special interest groups (SIGs) • 2019 - Governance Board elections • 2019 - CDF Membership, founding project • 2020 - Graduation at CDF • 2020 - Public roadmap 18

Slide 19

Slide 19 text

Public Roadmap RELEASED PREVIEW CURRENT NEAR-TERM FUTURE Published on July 15, 2020 Open process (JEP-14) A bit outdated :( Target audience: • Jenkins users • Contributors • Adopters and vendors jenkins.io/project/roadmap 19

Slide 20

Slide 20 text

Roadmap Concepts ● Community-driven ● All initiatives: features, docs, infrastructure, community ● Open and transparent process ● Open data ● No commitment on dates and delivery at all github.com/jenkinsci/jep/tree/master/jep/14 20

Slide 21

Slide 21 text

Beyond 2015 Obstacles for Jenkins 21

Slide 22

Slide 22 text

Slides: https://docs.google.com/presentation/d/1FuMR2 ZxO-S6HtcIUeekym0MZIp9rn-b5ql6sYBMSgK4/ edit?usp=sharing 22

Slide 23

Slide 23 text

Generations of CI/CD Tools (Oleg’s IMHO) I CRON II III ... 23

Slide 24

Slide 24 text

Generation III. New demands Generation III evolves … but not fast enough for early adopters Shift left 24

Slide 25

Slide 25 text

Evolution of generation III III R.I.P. Evolution ??? IV 25

Slide 26

Slide 26 text

Image: dronetrest.com/t/diy-self-build-drones-or-ready-to-fly-rtf-drones/1414 26

Slide 27

Slide 27 text

Expectation 27

Slide 28

Slide 28 text

Expectation Reality 28

Slide 29

Slide 29 text

CI/CD System from Jenkins Samples Demos Configs Ba ck en d Plugins Система Infrastruc ture Infrastruc ture Infrastruc ture Docs 29

Slide 30

Slide 30 text

30

Slide 31

Slide 31 text

frameworks Samples Demos Plugins Configs Система ? Ba ck en d without proper maintenance Infrastructure Infrastructure Infrastructure Docs 31

Slide 32

Slide 32 text

It is hard to maintain Jenkins • Fine-tuning is needed • Maintenance is needed • Expertise is needed 32

Slide 33

Slide 33 text

Learning Curve Advanced features, Custom setups Plugins Scripts, CRON 33

Slide 34

Slide 34 text

>10 years of compatibility Hudson 2 plugins still work! BUT: • Architecture issues • Old libraries • Obsolete UI • Plugin compatibility issues • Regular Security-updates 34

Slide 35

Slide 35 text

Scalability Jenkins controllers handle the most of the workload Jobs run on controllers, agents just execute subtasks Controller 35

Slide 36

Slide 36 text

UI/UX is still perceived to be old but it’s not anymore! 36

Slide 37

Slide 37 text

Classic Approaches are still there Approach: Using “classic” Job types: Freestyle, Matrix, JobDSL, … Keywords: • Script steps to run the logic • Custom Tools Plugin to manage tools • Throttle Concurrent Builds and Lockable Resources to dispatch access to hardware • Naginator Plugin to restart builds on-demand • Parameterized Trigger / Copy artifacts to parallelize tests and to collect results 37

Slide 38

Slide 38 text

What’s next for Jenkins? 38

Slide 39

Slide 39 text

39

Slide 40

Slide 40 text

Shifting Gears: Making Changes Aug 31, 2018 – Kohsuke Kawaguchi, “Jenkins: Shifting Gears” https://jenkins.io/blog/2018/08/31/shifting-gears/ 40

Slide 41

Slide 41 text

https://docs.google.com/doc ument/d/1B70bAPlinLPOQ7 YGZCbg-3kN2IyIYlc9laubO MI-kMA/edit?usp=sharing 41

Slide 42

Slide 42 text

Jenkins = Community + Project Community > Project 42

Slide 43

Slide 43 text

Jenkins as community ● Making Jenkins the best place to contribute ● Focus on future. Jenkins is here to stay ● Open, not just open source ● Vendor neutral. More vendors involved ● No vendor lock-in in open source components 43

Slide 44

Slide 44 text

Jenkins as project 1. Jenkins Anywhere 2. Cloud-Friendly Architecture 3. UX is a priority 4. Jenkins as a Framework 5. Compatibility in Mind 6. Security in mind 44

Slide 45

Slide 45 text

User Experience and User Interface UI/UX Revamp: Look & Feel, Themes, Accessibility User documentation and guidelines (?) Better Pipeline browsing jenkins.io/sigs/ux 45

Slide 46

Slide 46 text

Continued evolution – Jenkins Pipeline engine • Pipeline as YAML • Jenkins Templating Engine • IDE integrations • Documentation Improvements jenkins.io/sigs/pipeline-authoring 46

Slide 47

Slide 47 text

Jenkins on Classic Platforms 47

Slide 48

Slide 48 text

Kubernetes We have to be there! 48

Slide 49

Slide 49 text

… and Cloud Platforms Kubernetes, Kubernetes, Kubernetes Operators and Helm charts Jenkinsfile Runner – Portable Pipeline engine / FaaS Support for more Pipeline engines, esp. Tekton 49

Slide 50

Slide 50 text

Jenkins Interoperability Wishlist ● Further adoption of OpenTelemetry ● Adopt CDEvents for events and triggers ● Tekton as a first class citizen Pipeline Engine ● More automation, less orchestration. Integrate with tools like Spinnaker, Jenkins X or Keptn 50

Slide 51

Slide 51 text

51

Slide 52

Slide 52 text

!= 52

Slide 53

Slide 53 text

Takeaways Jenkins in 2020 != Jenkins in 2012 Jenkins keeps changing Public roadmap Many projects are underway It worth exploring! 53

Slide 54

Slide 54 text

It’s [always] a great time to contribute ;) https://jenkins.io/participate 54

Slide 55

Slide 55 text

It’s great time to contribute! https://jenkins.io/participate 55

Slide 56

Slide 56 text

Contributing is not only about code Join special interest groups (SIGs) Let us know about your pain-points Share your stories and experiences jenkins.io/blog and other blogs community.jenkins.io Meetups Jenkins DEV list Jenkins needs you! 56

Slide 57

Slide 57 text

Join the Jenkins Contributor Summit! Thursday, June 9 (9:00 am – 5:00 pm CDT) Location: JW Marriott Austin. 57

Slide 58

Slide 58 text

QUESTIONS? Contacts: E-mail: [email protected] GitHub: oleg-nenashev Twitter: @oleg_nenashev 58