Recently I was looking for a book on Continuous Integration and Continuous Delivery practices and tools written specifically for development teams that are building new products.
I was searching for recommendations that could be applied equally in early-stage startups and in development teams working on new products in established companies.
First of all, I was interested in what CI/CD practices authors would recommend to such teams to remove or automate repetitive manual work to immediately benefit from improved velocity and agility sooner.
Secondly, I wanted to know which CI/CD tools they would recommend to use with different types of products and tech: web apps, mobile apps, JS, Ruby, .NET, Java, etc.
So, I’ve made a list of nearly 30 books on Continuous Integration and Continuous Delivery. These books cover a lot of (maybe even all) theoretical and practical aspects of CI/CD from software development practices to popular tools like Docker, Jenkins, fastlane, etc.
I’ve split the list into sections to make it easier to find a book on a particular aspect of CI/CD, such as testing, or a specific tool, such as Jenkins. For example, mobile app developers may be interested in a book about CI with fastlane and a book that provides an overview of technology-agnostic CI/CD practices. There is even a section with books that explain the benefits of CI/CD for business to non-tech managers.
Since it takes time to evaluate a book to write even a short review, I’ll be publishing the list in several posts.
Please note, this is not an “every-developer-must-read-these-books” list. You may want to pick just one, two, maybe three books relevant to your situation. I hope this list will save you a few hours and help you choose a useful book.
Books on Continuous Integration, Delivery and DevOps
These seven books provide an overview of Continuous Integration and Continuous Delivery practices and explain how to use some popular CI tools. The list starts with more introductory and practical books and finishes with more books or CI/CD concepts.
“Hands-On Continuous Integration and Delivery” book (published in 2018) provides an overview of Continuous Integration and Continuous Delivery practices and explains their business value. It explains how to install and use three popular CI servers: Jenkins, Travis CI, and CircleCI. The book also covers logging and debugging and explains some CI/CD best practices.
“Continuous Integration, Delivery, and Deployment” (published in 2017) is for engineers who would like to get started with the CI/CD processes and the tools to deliver high-quality software. The book introduces Continuous Integration, Delivery and Deployment fundamentals, then explains how to setup CI environment and configure CI pipeline for a Node.js app (an online store) using Jasmine, Karma, Selenium, Gulp, Jenkins. Then it moves on to configuring a pipeline for another example app built with C#.NET Core and PostgreSQL.
“DevOps: Continuous Delivery, Integration, and Deployment with DevOps” (published in 2018) focuses on core DevOps strategies: Continuous Integration, Delivery and Deployment. It explains how to use popular DevOps tools: Ansible, Jenkins, and Chef. The book familiarises readers with life cycle models, maturity states, progression and best practices of DevOps frameworks, teaches how to set up Jenkins, create and build jobs and perform testing, and implement infrastructure automation (Infrastructure as Code) with Chef and Ansible. In addition, it provides an overview of continuous monitoring process with Splunk and Nagios.
“Continuous Delivery and DevOps — A Quickstart Guide — Third Edition” (published in 2018) is a more comprehensive guide compared to the previous ones. In my opinion, it would be more helpful to team leads and devs in more mature startups. The ones that have already launched their product and have a mature delivery process in place but would like to know more about CI/CD and DevOps in general. The book explores those practices including more recent ones such as SecOps and DataOps. The book helps developers and managers identify the root causes of pain points in their current delivery process and improve the situation by choosing the right tools and implementing best practices. The book contains an entire chapter about potential issues that may slow down CD implementation. It covers monitoring too. The author has included a few tips and trick to help readers fully utilise modern DevOps practices.
“A Practical Guide to Continuous Delivery” (published in 2017) starts with foundations explaining what Continuous Delivery is, its values and benefits as well as what is the structure of a generic Continuous Delivery pipeline. Then it explains which tools and practices can be used to create infrastructure for Continuous Delivery. Then the author moves to Continuous Delivery pipeline explaining modern tools and practices to build automation and CI as well as looks deeper into various types of automated test that may run in CI environment. Then the author talks about deployment strategies: Blue/Green Deployments, Canary Releasing, Rollouts and Rollbacks, Continuous Deployment. Then moves on to operations: tools and practices for logging and monitoring. The last part of the book is dedicated to introduction of CD into an organisation, DevOps and optimisation of software architectures for CD.
“Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation” is an interesting one — at first I was unsure if I should include this book in the list at all. It is targeted mostly at developers doing CD in enterprise environment. However, since many developers find it useful and consider it a must-read, I decided to include it. Even though this book was published in 2010 it is still relevant as it provides a thorough conceptual overview of CI/CD principles. Some tools mentioned in the book, however, are now outdated and plenty of new ones have emerged. Please note that many readers, however, complain that this book is sometimes repetitive and difficult to read.
“Continuous Integration: Improving Software Quality and Reducing Risk” is another classic book on CI. It was published back in 2007 but is still relevant as it provides an overview of many software development practices. This book covers a lot of ground. In my opinion, it works best as a reference book when you read just parts on a specific topic which you are currently dealing with.
This is the first post in a short series. The following posts will include books on Continuous Integration and delivery for mobile apps, CI wth Docker, CI on AWS, etc.