The motivation behind writing this book
When the second edition of Learning Continuous Integration with Jenkins was published in 2017, the landscape of Continuous Integration/Continuous Deployment (CI/CD) was noticeably different from today’s. As 2024 approaches, it’s become clear that the practices and tools I discussed have evolved substantially, making many sections of the previous edition less relevant. This shift in the CI/CD realm inspired me to write this updated edition, bridging the gap between then and now, especially in terms of Jenkins’ application.
Jenkins itself has undergone significant evolution. The advent of Jenkins Configuration as Code (JCasC) and the trend toward deploying Jenkins using Helm charts on Kubernetes exemplify these major shifts. While the core syntax of Jenkins pipeline code has remained mostly stable, the ecosystem surrounding CI/CD has been transformed. The emergence of GitOps, the heightened focus on software composition analysis, and the trend toward container-based applications underscore a broader shift, from monolithic to more modular and scalable architectures.
Another catalyst for this edition has been the confusion and misinformation I’ve witnessed on social media about Agile, CI/CD, GitOps, Infrastructure as Code (IaC), and DevOps. Misinterpretations and partial truths, often spread by less experienced professionals, have clouded the understanding of those new to these practices. This edition aims to dispel these myths, offering a lucid and comprehensive guide to CI/CD methodologies. It focuses not only on tools but also on the principles and practices essential for successful implementation.