What this book covers
This book represents the amalgamation of a decade's worth of professional research, development, and automation engineering at numerous organizations with diverse technology disciplines. I wrote this book in an effort to provide a practical implementation guide for continuous integration, continuous delivery, and continuous deployment. With this book, my objective was to provide readers with some of the tools they will need while architecting, evangelizing, and implementing complete end-to-end build pipeline solutions at organizations of varying sizes and engineering topologies.
Chapter 1, Setup and Configuration of Jenkins, aims to teach reader how to manage instances of Jenkins of any size or scale. This is not an easy feat because Jenkins is highly diverse and supports almost any platform. You will learn about the initial setup, backup strategies, configuration techniques, best practices, and how to horizontally scale and properly manage the service.
Chapter 2, Distributed Builds – Master/Slave Mode, provides you with a complete guide on how to set up distributed build solutions and slave agents. This is a critical implementation and helps you understand when Jenkins needs to expand and support larger audiences and more diverse technology stacks.
In Chapter 3, Creating Views and Jobs in Jenkins, and Chapter 4, Managing Views and Jobs in Jenkins, we aim at documenting the knobs and dials that Jenkins provides on the dashboard, and the contained views and jobs. This is fundamental Jenkins knowledge and the goal here is to provide a solid understanding of the Jenkins platform.
Chapter 5, Advanced Automated Testing, talks about how to improve quality assurance efficiency. It teaches you how to architect and implement automated testing solutions that provide business value. This is crucial to any continuous solution because the pipeline must remain efficient and free of bottlenecks. Implementing automated testing is always a gentle balancing act. There is a trade-off between the time spent executing test automation and ensuring the rapid velocity of delivery.
Automated deployments are a cornerstone of continuous practices and build pipelines. Chapter 6, Software Deployments and Delivery, discusses how to implement scalable automated deployment jobs in Jenkins. This includes upstream and downstream jobs and how to manage them through naming conventions. In this chapter, we will discover some tips and tricks aimed at helping to keep deployments nimble and releases efficient.
Chapter 7, Build Pipelines, introduces the concept of a build pipeline and teaches you how to develop and scale them. Build pipelines are a foundational requirement of continuous delivery and continuous deployment. This chapter has been written in an effort to provide you with a set of scalable practices that can be applied across a multitude of technology stacks.
Chapter 8, Continuous Practices, defines continuous integration, continuous delivery, and continuous deployment. It provides a practice implementation guide for each. Jenkins has evolved and extended dramatically and now supports a complete array of continuous practices. This chapter aims to convey a set of defined implementation approaches to continuous integration, continuous delivery, and continuous deployment with examples for each. Jenkins integrates extraordinarily well with hundreds of diverse technologies.
Chapter 9, Integrating Jenkins with Other Technologies, introduces some of the more exciting automation technologies, such as Docker, Ansible, Selenium, Artifactory, and Jira. This chapter shows you how to interconnect them through Jenkins. The ability to extend Jenkins through its plugin architecture is one of the primary reasons that it has become so popular.
Chapter 10, Extending Jenkins, aims at writing a set of basic how-to articles. It describes how to begin to write plugins, how to extend Jenkins with extension points, and how to manipulate the Jenkins system even further.
I hope you will embark on a journey with me in discovering Jenkins, mastering the concepts that surround build pipelines and implementing automation at scale. Writing a book is something I have dreamed of doing for many years. I hope that you will gain as much in reading the book as I have gained by writing it.