Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[R]Evolution of Open Source CI/CD Tools

[R]Evolution of Open Source CI/CD Tools

How do Open Source and DevOps cultures impact Continuous Integration (and maybe not CD for once)? "Open source is eating the world". The same happens with the automation tools domain, including CI. There are many open source CI tools or open ecosystems on the market: Jenkins, Dagger, Argo projects, GitLab CI, Tekton, Dagger, GitHub Actions, etc., etc. There are many generations of these tools, with their architectures and use cases. We will talk about these tools and their evolution, from monolith services to cloud-native CI and Linux-way split to building blocks and interoperability.

What changed since CI was introduced 20 years ago? How do Open Source, InnerSource, and DevOps impact the landscape? What's next for the tools: cloud-native environments, machine learning, etc.? And how do open source foundations and other collaborations participate in the evolution of open source tools and facilitate it?

Oleg Nenashev

December 18, 2024
Tweet

More Decks by Oleg Nenashev

Other Decks in Technology

Transcript

  1. 3 Agenda • Why do WE need CI/CD? • Generations

    of CI/CD tools • What’s now and what’s next? • What can you do after the talk? Ask me later: • How do we adjust as a company? • Jenkins roadmap These slides: @oleg_nenashev community.jenkins.io/t/new-t alk-evolution-of-open-source- ci-cd-tools/207 Discussion bit.ly/devoops2021-cicd
  2. Disclaimer • Opinions are my own, happy to discuss •

    My talk does not represent opinions of my employer, the Continuous Delivery Foundation, or the Jenkins community • I present only open source projects today
  3. CI or not CI? Code Pom.xml Tests git clone mvn

    clean verify $? != 0 : sendmail SCM CRONTAB Your Email Inbox
  4. ✔ Fast issue discovery? – Yes… ✔ Increased product quality?

    – Yes… ✔ Project transparency? – Yes… 11 Why do WE need CI/CD?
  5. Managers • CI/CD works • Less resources spent by the

    team • Cool data and screenshots for slides
  6. 14 We do NOT want • Merging changes • Reviewing

    broken code • Reviewing codestyle and code smells • Manually checking dependencies (licenses, security, etc.)
  7. CI/CD Horrors 15 • Many notifications • Going through zillions

    of links • Digging into reports • Infrastructure failures • Flaky test • UI!
  8. 17 An engineer does not want to study Jenkins. He

    wants “build successful” What do developers want? Luigi is an automation engineer
  9. 18 We do NOT want • Maintain CI/CD infrastructure •

    Troubleshoot infra failures • Think about the infra at all
  10. ✔ Fast issue discovery? – Yes… ✔ Increased product quality?

    – Yes… ✔ Project transparency? – Yes… ✔ Contributor Experience (aka User Experience aka Developer Experience) 19 CI and CD 2021
  11. • Continuous Integration and Continuous Delivery are about processes not

    tools • CI and CD are about you => Developer experience • Tools are here to help with implementing processes • Tools are about automation 20 Takeaways
  12. 24 Types of CI/CD tools Frameworks “Semi-manufactures” • Many features

    provided out of the box • Can be extended • Maximum flexibility • Needs configuration “Ready to fly” • Everything available out of the box • Opinionated • Hard to customize
  13. Система Docs Plugins Configs Infra- structure Backend Samples Demos Infra-

    structure Infra- structure 26 ? without proper maintenance Generation III. Complexity, mostly frameworks
  14. Generation III. Complexity Spaghetti Automation • A lot of customization

    • Duplication • Complexity • Lack of expertise • Difficult to maintain • Mistakes 27
  15. 28 Generation III. New demands Shift left Generation III evolves

    … but not fast enough for early adopters
  16. • Takes experiences of Generation III into account • Targets

    new environments • Scalability and public clouds in mind • Opinionated BUT: • Has to catch-up feature wise • Too opinionated for many 30 Generation IV IV
  17. [X] as code – part of CD and DevOps 32

    [X] – Configuration, Documentation, Pipeline… Everything! Store [X] along with the project Versioning changes Testing [X] along with the project
  18. Configuration as Code in CI/CD 33 Managing automation jobs (Pipeline

    as Code) Managing the system itself (infrastructure as code)
  19. 41 Scripted Pipeline #!groovy def imageName = 'jenkinsciinfra/ircbot’ node('docker') {

    checkout scm // Немного магии для получения тэга Docker-образа sh 'git rev-parse HEAD > GIT_COMMIT' shortCommit = readFile('GIT_COMMIT').take(6) def imageTag = "build${shortCommit}» stage 'Build ircbot' withMavenEnv (["BUILD_NUMBER=${env.BUILD_NUMBER}:${shortCommit}"]) { sh 'make bot' // Make вызывает Maven } stage 'Build container' def whale = docker.build("${imageName}:${imageTag}”) stage 'Deploy container' whale.push() } https://github.com/jenkins-infra/ircbot
  20. 42

  21. 43 Example - Jenkins Job DSL Jenkins Scripted Pipeline Jenkins

    Job Builder Groovy Groovy YAML … Jenkins Declarative Pipeline Groovy
  22. Modern Jenkins • Pipeline-as-Code • Configuration-as-Code • New plugins and

    integrations • Modern packaging • Distributions for public clouds 47
  23. CI/CD Tools. Generation V 49 • 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
  24. Keptn // Sandbox project in the CNCF • Control plane,

    admin frontend/CLI • Observability, dashboards & alerting • SLO-driven multi-stage delivery • Operations & remediation 52 https://keptn.sh
  25. Keptn • Sandbox project in the CNCF • Observability, dashboards

    & alerting • SLO-driven multi-stage delivery • Operations & remediation 53 https://keptn.sh
  26. CI/CD Tools • Battle of generations, continued ◦ Generation 3

    and 4 tools should keep evolving… or die ◦ Generation 5 keeps emerging 56
  27. Getting out of Local Optimum 57 “Jenkins: Shifting gears”, Kohsuke

    Kawaguchi, 2018 jenkins.io/blog/2018/08/31/shifting-gears Generation IV Generation V
  28. Pipeline engines become a commodity 59 Static Controllers Serverless build

    engines Jenkinsfile Runner Tekton (default) Classic Jenkins https://jenkins-x.io/ Jenkins X 3.x
  29. CI/CD Tools • Battle of generations, continued • Automation/Pipeline engines

    become a commodity • Focus on emerging environments and use-cases ◦ Cloud native environments ◦ Container environments ◦ Kubernetes, Kubernetes, Kubernetes 60
  30. Being Cloud Native • Best service for each need •

    Pay per use • “Infinite” scaling • Easy to use • Easy to maintain • Fast to develop 61
  31. Example: Tekton https://tekton.dev/ Tekton is a powerful and flexible open-source

    framework for creating CI/CD systems, allowing developers to build, test, and deploy across cloud providers and on-premise systems. 62
  32. Example: Tekton • Cloud Native • Kubernetes Native • Everything

    is in container • Steps and pluggability via containers https://tekton.dev/ 63
  33. CI/CD Tools • Battle of generations, continued • Automation/Pipeline engines

    become a commodity • Focus on emerging environments and use-cases ◦ Cloud native environments ◦ Container environments ◦ Kubernetes, Kubernetes, Kubernetes • Focus on developer experience 64
  34. Jenkins X. Out of the Box experience • Build packs

    - Continuous Delivery • GitOps • Nexus, chartmuseum, monocular • Environments: Local, staging, production • IDE Integrations 66
  35. CI/CD Tools • Battle of generations, continued • Automation/Pipeline engines

    become a commodity • Focus on emerging environments and use-cases ◦ Cloud native environments ◦ Container environments ◦ Kubernetes, Kubernetes, Kubernetes • Focus on developer experience • Software as a Service 67
  36. Software as a Service (SaaS) • Ongoing switch to SaaS

    • SaaS does will no longer block you from using local resources ◦ GitHub Runner ◦ Gitlab Runner ◦ … • Internal SaaS Platforms ◦ Social coding and Inner Source ◦ Same principles as SaaS 68
  37. 70 Culture shift • Not just developers anymore • All

    roles are involved • Cross functional communications • TeamWork 💪
  38. Culture Impact of DevOps • “Shift left” ◦ Developers manage

    pipelines ◦ Developers take more control • Focus on developer experience ◦ Continued evolution of Declarative syntax ◦ Imperative syntax for advanced users • Focus on interoperability • Being open source is an advantage 71
  39. Culture Impact of Inner Source • Open Source culture gets

    adopted internally by the companies • Collaboration is key • Internal code collaboration platforms • CI/CD tools are critical to ensure developer experience and quality 72 https://innersourcecommons.org/
  40. Going alone is no longer an option! Competing against communities,

    partnerships and foundations? Good luck! 74 Source: https://www.freshboxx.in/blog/technolo gy/free-and-open-source-software-foss -a-general-introduction
  41. 80 https://cd.foundation/ CD Foundation is an open-source community improving the

    world's ability to deliver software with security and speed
  42. CDF Mission • CDF believes in the power of Continuous

    Delivery to empower developers and teams and to produce high quality software more rapidly • CDF believes in the open-source solutions collectively addressing the whole Software Delivery LifeCycle • CDF fosters and sustains the ecosystem of open-source, vendor neutral projects through collaborations and interoperability • CDF advocates this idea and encourages collaborations among practitioners to share and improve their practices 81
  43. 82 CDF Interoperability SIG • Focus on developer experience and

    their goals, not particular tools • How? ◦ Clarify what interoperability means for CI/CD ◦ Provide a neutral forum for projects ◦ Highlight and promote the needs of the users ◦ Explore synergies between, and enable collaboration across, the CI/CD projects ◦ Pursue solutions which are; loosely coupled, scalable, flexible, and technology agnostic ◦ Reduce the need to implement in-house solutions ◦ Attract/assist projects focused on interoperability github.com/cdfoundation/sig-interoperability
  44. CDF Events SIG • Helping CI/CD systems to talk to

    each other in a standardized way • Goal: Provide interoperability through better communication and abstraction • How? ◦ Facilitate adoption of communication standards ◦ Promote adoption ◦ CDEvents - new standard for CD events over CloudEvents 83 https://github.com/cdfoundation/sig-events github.com/eiffel-community cloudevents.io
  45. Takeaways • Automation “is eating the world” • Continuous Integration

    is an industry standard • Continuous Delivery is an industry standard • CI and CD are not just about tools • Tools are there, and they are evolving • The Continuous Delivery Foundation is here to help
  46. Get ready to the era of open source tools •

    Become a good open source citizen! • Go beyond FOSS side projects, adapt your core business • Start an Open Source Program Office • Adopt InnerSource internally • Participate in foundations 86
  47. What to do after the talk? 1. Take an open

    source CI/CD tool 2. Automate one of your projects 3. Try out another tool! 4. ...
  48. Contributing to the CDF • Join special interest groups! ◦

    MLOps, Security,Events ◦ Interoperability, Best Practices • Spread the Word! • Join Ambassador program • Extend Landscape • Contribute to the CI/CD projects, not only member projects 89
  49. And Keptn too! https://keptn.sh/community/contributing/ • Code • Advocacy • Adoption

    and Feedback • Integrations • CloudEvents Ecosystem 91
  50. 94 Risks for ${COMPANY_NAME} • Perceived as classic enterprises focused

    company, risk of becoming legacy • Low adoption in the rapidly growing cloud native domain (aka “high performers”) • Increasing cost of traditional top-to-bottom sales • Growing competition from FOSS and Cloud Native vendors • Higher risk of churn by DevOps adopters and high performers (need to have control) ${COMPANY_ NAME} logo
  51. Low adoption + Competition + Churn 95 * Not yet,

    but soon to become one for many companies
  52. ${COMPANY_NAME}. Getting out of Local Optimum 96 “Jenkins: Shifting gears”,

    Kohsuke Kawaguchi, 2018 jenkins.io/blog/2018/08/31/shifting-gears Enterprises High performers
  53. Going alone is no longer an option! Competing against communities,

    partnerships and foundations? Good luck! 97 Source: https://www.freshboxx.in/blog/technolo gy/free-and-open-source-software-foss -a-general-introduction
  54. Key ideas • Become a good open source citizen! •

    Make ongoing open source participation visible • Embrace open source participation by your employees • Go beyond FOSS side projects, adapt your core business • Start an Open Source Program Office • Join and participate in foundations • Adopt InnerSource internally 99
  55. OSPO - Projects and programs 102 • Define Open Source

    Usage Strategy • Define Open Source Investment Strategy - public or not • Open Source Stewardship • Foundation memberships representation, e.g. CDF, CNCF, Linux Foundation, OpenSSF, Apache Foundation, Eclipse Foundation • Facilitate community marketing and developer advocacy • Adopt open source culture and best practices for internal product development and collaboration. Be InnerSource!
  56. Open Source Strategy • Public ◦ Communicate the vision to

    customers, end users and the community ◦ Improve the company’s image ◦ Communicate the vision to potential employees • Internal ◦ FOSS Usage guidelines and Licensing strategy ◦ Clear decision making and boundaries for FOSS work ◦ Minimum obstacles for open source contribution when reasonable ◦ ... 103
  57. InnerSource at ${COMPANY_NAME}. Why? • Share best open source practices

    and knowledge with the teams • Improve cross-functional and cross-project communications • Remove barriers and break down silos via better collaboration • Improve overall employee experiences. Happy engineers do not quit (c) 104 innersourcecommons.org
  58. InnerSource at ${COMPANY_NAME}. How? • Create public channels within the

    company for inner source and open source culture discussions • Start internal InnerSource Best Practices knowledge base • Start a regular internal newsletter with tips and links. Could reuse materials from InnerSource Commons and contribute back (see below) • Start regular internal meetups / office hours • Start a regular internal Hackergarten event for study and experiences sharing. Focus on internal products • …. 105 innersourcecommons.org
  59. Social media is your friend! • Dedicated ${COMPANY_NAME} Community channels

    • Promote internal and external contributions • Collaboration with marketing, cross-posting and guerilla marketing • Life @ ${COMPANY_NAME} includes Open Source! • Same for the careers site! 106
  60. More CDF and project SIGs • Security SIG • MLOps

    SIG • Best Practices SIG • Project SIGs and working groups ◦ jenkins.io/sigs ◦ jenkins.io/projects 107
  61. CDF. Other Entities • Governing board ◦ Budgeting, staffing, etc.

    ◦ Infra sponsorships • Technical Oversight Committee ◦ Defining technical direction • Outreach Committee ◦ Marketing, events ◦ Ambassador program 108