Is ‘Continuous Delivery with Docker and Jenkins’ right for you?
Continuous Delivery with Docker and Jenkins by Rafal Leszko is a comprehensive book that presents the requirements for successful DevOps implementation and management in organizations of all sizes.
Continuous Delivery with Docker and Jenkins is a valuable resource to have available when you need examples of organizations that practice CD methods via Docker for containers and Jenkins for CI/CD. The book contrasts traditional delivery methods and their challenges with CD, which Leszko portrays as the best solution. Leszko thoroughly familiarizes the reader with CD principles and then dives into how to use a popular DevOps tool pairing: Docker and Jenkins. Other books on CI/CD pipelines are available, but many of them are outdated.
The book is hands-on and walks its reader through tasks such as how to install Docker and configure Jenkins. It transitions into a walkthrough to set up automated testing procedures and configuration management, which is done with Ansible. Leszko seems to prefer Ansible over other configuration management tools, as evidenced by the lack of discussion on other tools in Continuous Delivery with Docker and Jenkins. Leszko’s configuration management top three list consists of Puppet, Chef and Ansible — with Ansible highlighted due to its agentless functionality. SaltStack, which also offers an agentless mode alongside its client-server setup, is not mentioned but is another strong option for configuration management that was worth covering.
Leszko dives into more advanced concepts, such as server clustering with Docker swarm mode, parallel pipeline steps, database management, zero-downtime deployments and rollback strategies. The book contains installation procedures for all major OSes and discusses the latest available software. Docker’s latest features, such as swarm mode and the docker stack command, are explained, and Leszko uses Jenkins version 2.
As well as provide a clear picture of CI/CD, Continuous Delivery with Docker and Jenkins teaches readers to make DevOps software delivery work with fewer resources than a DIY approach.
Every chapter begins with the basics to ease in novices, and the writing style is simple and straightforward. For example, the chapter on Docker first explains what it is and how it works and then provides clear instructions on installation, configuration and management procedures. A reader new to containers will be able to follow along.
Continuous Delivery with Docker and Jenkins articulates concepts such that readers don’t need additional resources to build a pipeline with these tools. Leszko goes beyond how to build a CI/CD pipeline to provide suggestions to optimize the process via examples and case studies.
Overall, this book is informative and easily digestible for developers, IT operations staff and business teams alike. It is sure to benefit organizations, and a reader should finish the book not only versed in the basics of Docker and Jenkins, but ready to take on advanced tasks: build applications that deploy with Docker swarm clusters, make database migrations and manage multiple containers.