Release Quality Products Frequently And Predictably
Dimension: 5" x 8" (12.7 x 20.32 cm)
We all agree that Continuous Delivery and DevOps are important.
However, Continuous Delivery is not a discipline on its own (not yet), and the science behind it is rarely covered in schools. I have worked in Continuous Delivery projects for yet-to-be-famous tech startups and with well-established companies like Apple, Yahoo!, GoPro, ThoughtWorks, Walmart.com and PricewaterhouseCoopers Ltd. I share my experience of releasing software from a source code control repository to Production, and how the manual processes can be fully automated with good design and smart decisions.
In this book, I zoom in on the choking points, so that my readers can accelerate through their own design and implementations.
This is how I have structured the book:
Chapter 1: Introduction
Eases my readers into understanding and appreciating a Continuous Delivery Pipeline, removes confusion between Continuous Integration and Continuous Delivery, gives a brief introduction about me and who I am grateful to.
Chapter 2: Pipeline Architecture and Design
Establishes basic definitions, explains how CD’s success depends on the Product Architecture, designs the CD Pipeline Architecture, designs the various stages of the Pipeline from Git to Production, talks about Pipeline Visualization and the emphasizes the importance of managing Pipeline artifacts.
Chapter 3: Continuous Testing - Choking Points
Discusses the types of tests that need to be done in the Pipeline, the tests that are not types by themselves but just concepts, a three-tier Test Framework Design that improves maintainability, Test Data Strategy and Data Generation techniques, the downside of traditional Test Case Repositories and Test Reporting as part of Continuous Delivery.
Chapter 4: Continuous Deployment - Choking Points
Discusses dependency management, pre-deploy hooks and post-deploy hooks, anxiety about deployment to Production and Immutable Infrastructure.
Chapter 5: Code Promotion - One Stage At A Time
Discusses institution of software gates that allow/disallow the flow of code from one stage of the Pipeline to the next, all the way to Production through a Continuous Delivery environment.
Chapter 6: Release and Change Management
Discusses Feature Branches, respecting the Mainline, Feature Toggles, Release Toggles, Business Toggles, Rollback Strategy, A/B tests and Canary Releases.
Chapter 7: The Magnificent Seven
Discusses the seven areas, which have tripped Continuous Delivery teams in the past, namely Cloud, Big Data, Data Science, Databases, Mobile, People and Budget.
Chapter 8: Continuous Delivery Analytics
Detailed discussion on success metrics, pre-production signals, post-production signals, Stability Index and its relationship to signals and designing Continuous Delivery dashboards that measure ROI.
Chapter 9: CD-as-a-Service
Talks about designing a CD Minimum Viable Product, discusses offering the CD platform as a PaaS such that teams can sign a Pipeline Contract and hop on, discusses the structure of the Pipeline Contract and how to make CD-as-a-Service secure.
Chapter 10: Continuous Delivery in an Agile Framework
Discusses the importance of having a single, prioritized Product Backlog, Sprint Backlog, Feature Team, Product Owner and their roles in CD, Scrum Master, Tech Lead, DoD - Definition Of Done, Impediment Backlog and how code is the new documentation, unless it's spaghetti.
Chapter 11: The Beginning
Discusses CD patterns and anti-patterns and illustrates how Continuous Delivery can be applied to industries other than software.
Chapter 12: Resources
Lists a set of resources where you can find great information.
Overall, this book discusses Continuous Delivery Pipeline design and implementation aspects from a software engineer/architect’s perspective and provides thought leadership for teams starting out to build a Continuous Delivery Pipeline. This also helps teams fine-tune and improve ROI for their existing pipelines. Tools is an evolving area and this book focuses on the big picture, instead of making strong recommendations on any tool. While I mention a lot of different tools that I have used in the industry, my readers are encouraged to do their own research.