REVIEW - Release It! - Design and Deploy Production-ready Software


Release It!

Design and Deploy Production-ready Software


Michael T. Nygard


Pragmatic Bookshelf (2007)




Chris Oldwood


April 2014



Reviewed: November 2012

I’m not exactly sure how I came across this book; it had a good reputation on the grapevine and I appeared to be spending more time working on distributed systems, so seemed a suitable choice.

As Michael states in the preface, this is a book for architects, designers and developers working on enterprise-class systems. In essence the focus is on server-based and back-end systems – not desktop apps. The book is split into 4 parts: Stability, Capacity, General Design Issues and Operations with the first two parts taking a pattern language approach, whilst the latter two are more of a collection of loosely related topics.

The first two parts both start with a 10-page case study that sets the scene for the collection of patterns and anti-patterns that follow. Besides providing a back-drop for the pattern language the case study includes an attempt to put a real cost to the business on the failures in question. This provides a sobering thought that only goes to highlight how important the subject matter really is. There are also numerous side-bars throughout the book that take a far more technical look at the issues in question, such as capturing network packets.

Specifying timeouts was already on my list of essentials, but now the terms Circuit Breaker and Bulkhead also seem to be part of my regular vernacular. The key message from the Stability chapters is about de-coupling the various parts system whereas the Capacity section is about being careful with pooling and caching. The anti-patterns in the Capacity part have a definite web bias but I suspect that’s just because there are so many more different ways to host your servers.

The grab-bag of topics covered under General Design Issues includes multi-homed servers, clustering and configuration files – all interesting stuff. This leads on to the final part on Operations. Once again Michael takes a few pages to recount a story before heading into discussions around log file formats and various forms of monitoring. Chapter 18 concludes the book by proposing how to adopt a more agile approach to development so that systems will be able to mature and grow in ways that seek to minimise the chances of the anti-patterns rearing their ugly heads.

Book cover image courtesy of Open Library.

Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED

By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED

Settings can be changed at any time from the Cookie Policy page.