Cloud Friendly(?) Jenkins. How we failed to make Jenkins cloud native and what we learned

What worked and what failed when making Jenkins cloud native, and why cloud friendly is enough.

Tags: jenkins cloud-native architecture ci-cd

Slides

Abstract

Key takeaway: Being Cloud Friendly is a must, Cloud Native is optional. Likely YAGNI in your projects

Jenkins has been one of the most popular automation servers in the world. It is widely used for CI/CD purposes in cloud environments. You may have heard that Jenkins is not cloud native, and of course it is true. You may have heard that Jenkins controllers are a legacy monolith from the 2000s. That is not true, it is quite cloud friendly if used right. And yes we tried to make Jenkins cloud native, but it didn’t quite work. Why?

I have been involved in Jenkins architecture projects for more than ten years, including pluggable storage, multi-tenant Jenkins, cloud-native agents, breaking down the controller monolith, Kubernetes integrations, etc. Some of these efforts worked, some didn’t. But it was a great learning experience that can be used by developers and maintainers of other projects that consider re-platforming them to make cloud- and Kubernetes-native. I'll talk about the technical assumptions and mistakes we made in Jenkins, and how it worked. What to keep in mind when doing the re-platforming? And do you even need it?

References

Presented at

  • CNCF Meetup in Bilbao, 2023
  • Cloud Native Rejekts EU, 2024
  • Cloud Native Bern, 2024