The essential handbook on how to build, use and improve your Continuous Delivery Pipeline.
If you want to create Better Software Faster, then you need Continuous Delivery, and at the heart of Continuous Delivery is the Deployment Pipeline.
You may already have one, or be thinking about building your first! Either way, this book offers a step-by-step guide to get the best Deployment Pipeline for your software.
Written by the inventor of the Deployment Pipeline and author of the award-winning book "Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation", Dave Farley, shares his advice and experience in this practical handbook.
Table of Contents
Preface Deployment Pipeline Foundations
Chapter 1 - Introduction to Continuous Delivery What is Continuous Delivery? Three Key Ideas Seven Essential Techniques
Chapter 2 - What is a Deployment Pipeline? Scope and Purpose Key Stages of a Deployment Pipeline Key Practices for a Deployment Pipeline Working Efficiently Small, Autonomous Teams The Deployment Pipeline is a Lean Machine Summary
Chapter 3 - How to Build a Deployment Pipeline Getting Started Create a Commit Stage Create an Artifact Repository Create an Acceptance Stage Create a Simple Version of Production Next Steps
Chapter 4 - Test Driven Development What is TDD? Test First Test All the Time The Impact of Test-First on Design Using ‘Testability’ to Improve Design
Chapter 5 - Automate Nearly Everything An Essential Element of Continuous Delivery. Test Automation Build and Deployment Automation Automate Data Migration Automate Monitoring and Reporting Infrastructure Automation Benefits of Automation Tips for Automation
Chapter 6 - Version Control A Key Requirement for Deployment Pipelines What to Version Control? Reproducible Systems The Route to Production Branching Deployment Pipeline Anatomy
Chapter 7 - The Development Environment Paving the Way for the Deployment Pipeline.
Chapter 8 - The Commit Cycle The Gateway to the Deployment Pipeline Commit Stage Tests Feedback in Five Minutes Working in Small Steps Continuous Integration Generating Release Candidates Summary
Chapter 9 - The Artifact Repository The Heart of the Deployment Pipeline Scope and Purpose Storage Management Next Steps
Chapter 10 - The Acceptance Stage Confidence to Release Aims of the Acceptance Stage Steps in Running Acceptance Tests What are Acceptance Tests? How to Write Acceptance Tests The Four-Layer Approach Automating the Acceptance Stage Scaling Up Tips for Writing Acceptance Tests
Chapter 11 - Manual Testing The Role of Manual Testing When to Add Manual Testing?
Chapter 12 - Performance Testing Evaluating the Performance of our System Pass/Fail Performance Tests Testing Usability Component-Based Performance Testing System-Level Performance Testing High-Performance, Low-Latency Systems Long-Running Tests Control the Variables
Chapter 13 - Testing Non-Functional Requirements What are Non-Functional Requirements? Scalability Testing Failure Compliance and Regulation Provenance Audit and Traceability Security Testing Team Responsibility Summary
Chapter 14 - Testing Data and Data Migration Continuous Delivery and Data Data Migration Data Migration Testing Stage Data Management Limits of Deployment-Time Migration Testing and Test Data Summary
Chapter 15 - Release Into Production The Production Environment When to Release? Release Strategies Feedback from Production In Production Making Evidence-Based Decisions Whole Pipeline Considerations
Chapter 16 - Infrastructure As Code What is Infrastructure As Code? Infrastructure Configuration Management Recommended Principles Recommended Practices Infrastructure As Code and the Cloud
Chapter 17 - Regulation and Compliance Responding to Regulatory Requirements Techniques that Facilitate Regulatory Compliance What Can Go Wrong? The Deployment Pipeline as a Tool for Compliance Continuous Compliance
Chapter 18 - Measuring Success Making Evidence-Based Decisions Purpose Quality Efficiency Throughput and Stability Calculating Lead Time Improving Lead Time Follow a Lean approach
Appendices Appendix A - More Information The Continuous Delivery Book The Continuous Delivery YouTube Channel Continuous Delivery Training
This is a quick read, and a nice summary of the concept, relative to the original CD book. It's mostly direct advice, with very little of the backing theory.
If you're new to CD and want to know what it's about, this is a good way to get an overview. If you're skeptical about CD, this definitely won't convince you. If you're an expert already, you probably won't learn much. If, like me, you read the original a number of years ago and need a refresher, it's fairly effective.
This is a great short read on deployment pipelines and how they help power continuous delivery. You'll get the concepts really quickly and understand practical things you can do to make it happen.
Book by the person who coined the term Delivery Pipeline. It’s a quick read - I read it over a 2h flight -, written in an easy and approachable style. The book contains some good sound advice on how to build pipelines, though the content doesn’t go far beyond the basics. For more in depth content, the book contains many references. But by the end of the book, you’ll end with a solid (high level) understanding of what Delivery Pipelines are all about. Though I have to say: I read nothing that I didn’t know already.
What I will fault the author for, is missed opportunities: - The content on integration testing is far too lightweight. Considering the amount of times TDD is pitched, there was a big opportunity here to talk in depth about Behaviour Driven Development (BDD). - That also applies to security testing: Shifting Security Left should be everyone’s focus, yet there is no content in the book on that. Sure, security testing as a concept is mentioned, but at a 30000 ft level.
At the end of the day, would I recommend it? If you are new to the concept, yes. This can serve as your easy reading entry point, it’ll cover the general concept and the basics. But for people with experience on the topic, this book will add nothing new.
This book provides a refreshing perspective on CI/CD that isn't solely focused on technical implementations. Offers a comprehensive overview of CI/CD best practices, guiding readers on how to implement them step by step. It doesn't delve deep into technical details but instead focuses on the overarching principles of creating effective CI/CD pipelines.
As a software engineer who values clean code and code reviews, I appreciated how the book emphasized these aspects within the context of CI/CD.
However, it's important to note that this book isn't a technical manual. It doesn't provide in-depth technical implementations. Instead, it gives a clear vision of an excellent CI/CD process and how to approach it methodically.
In summary, "Continuous Delivery Pipelines" offers a non-technical yet valuable perspective on CI/CD, guiding readers towards best practices and a structured approach. It's a recommended read for those looking to grasp the holistic concept of CI/CD and its implementation.
This book does a good job of explaining continuous delivery pipelines, highlighting the benefits and importance of having an automated system for ensuring that apps are ready to be released and actually releasing them. It also gives some practical tips.
But at around 140 pages, it kind of just brushes the surface of some practices and ideas. It goes through each part of the pipeline, but not in much depth, which might leave you feeling either overfamiliar or confused. It's probably more handy as a checklist or a quick reference for those who are already experts in this area.
As someone who's worked a bit on setting up CI/CD pipelines, I would appreciate if the book can provide more concrete examples or explanations on some topics.
Personally, I only got a couple of new ideas, to me it worked more as a positive reinforcement for my experiences and ideas :-)
BUT... I think this book can definitely be mindblowing for people without real-life experiences (or limited ones) with Continuous Delivery/Deployment pipelines or to grab "selling pitch ideas" (that's why I rate it with four stars and not with two).
I missed having specific examples (e.g. a public CD pipeline with an example in order to land what the author really meant at some points which were "blurry").
Very quick and practical read with strong core concepts to apply when building a pipeline. It could only be better with more concrete examples instead of only theory, but that wasn't the purpose of the book. It's more like a handbook on what should be on your mind if you want to build a continuous delivery pipeline.
Great concise book on Continuous Delivery (CD) from the author of the original definitive book! It captures all the essence, principles, techniques required to implement CD from scratch and what important things to note for. Highly recommended for reference!
With around 200 pages it can be read rather quickly but contains lots of useful information. It combines agile software development, continuous delivery and tdd techniques in the book.
What I missed were some more in-depth details at some points. But overall a good read!
Some sentences had typos that hindered understanding. Some content was repeated. That said, the book is a good primer for implementing CI/CD pipelines, a condensed version of the author's previous book "Continuous Delivery" that gives similar advice such as doing test-driven development.
Short intro to all key parts of the great delivery pipeline: from test, through commits to the release and after. Good point to start exploring and introducing into your own projects.
Great introduction to Continuous Delivery, or a great condensed refresher for one who has previously read the much longer Continuous Delivery book. The final chapter on LMAX is itself a great review of all the CD ideas put into practice and an indication of the sorts of things that can be accomplished if building such a Deployment Pipeline is adopted as an approach. (They key may be having buy-in from stakeholders?)
The book deliberately I imagine avoids getting into technology specifics, but it would be interesting to know more about how the DSL for acceptance tests might be implemented.