Applying Ideas from the book "Continuous Delivery" to CASA
This page contains notes on applying ideas from the book "Continuous Delivery
: Reliable Software Releases through Build, Test, and Deployment Automation" by Jez Humble and David Farley (ISBN-10: 0321601912 | ISBN-13: 978-0321601919) to CASA
My goal is to deliver software to users more quickly and reliably, with fewer defects, while reducing delivery process pain to developers.
My notes are organized following the book's table of contents. Other than duplicating the table of contents (already publicly available
) or section titles to provide structure to my notes, I will not duplicate any contents of this book. If you want to read this book, check it out from a library or buy it.
I am writing these notes for members of the CASA development team to start discussions within the team. These notes are likely to be unreadable to those outside the CASA development team.
These notes are based on my second pass through this book.
This book is oriented more towards developing and deploying web applications on servers than desktop applications. It is also more oriented towards the current popular programming languages and tools used to develop web applications than the languages and tools used to develop CASA.
The goals, principles, and high level processes described in the book are applicable to CASA now in delivering CASA to desktop users and deploying CASA to clusters. Some of the lower level procedures and tool recommendations are not applicable to CASA now, but will become more relevant as we extend CASA to better support web interfaces to clusters (a topic I have heard discussed, but I have not seen requirements for).
Part I: Foundations
Chapter 1: The Problem of Delivering Software
Antipattern: Deploying Software Manually
Antipattern: Deploying to a Production-like Environment Only After Development is Complete
Antipattern: Manual Configuration Management of Production Environments
Chapter 2: Configuration Management
Chapter 3: Continuous Integration
Chapter 4: Implementing a Testing Strategy
Part II: The Deployment Pipeline
Part III: The Delivery Ecosystem