Book Review: Release it! Design and Deploy Production-Ready Software“Release it!” is an excellent book that makes you and your application prepared for the harsh world of production. It talks about all kinds of things related to the most important part of development lifecycle – releasing your product and keeping it alive.

The book consists of four parts, introduced by interesting case studies, like one unhandled exception that costed an airline a day of nightmare and tons of money.

Keywords

Let me list some of the keywords from the book for better idea what the book is about:

  • Part I – Stability: scaling strategies; fail fast; SLA; timeouts; circuit breaker; bulkhead (don’t sink entire ship); common sense on log files; health checks; etc.
  • Part II – Capacity: resource pools; threads; payload sizes; db performance; cookies; caching; etc.
  • Part III – General Design Issues: load balancing; clustering; configurations; networking; security; etc.
  • Part IV – Operations: transparency; statistics; logging; monitoring systems; etc.

Pros

Things that I really liked about the book:

  • It easy to read, provided you have relevant experience
  • Real world case studies
  • “Remember This” sections after most of the chapters (better than boring summaries)
  • Realistic strategies and approaches
  • Business costs and impact discussed

There is a really nice strategy explained on zero-downtime. One, that especially boggles me, was approach related to database upgrade process for zero downtime. The strategy is relatively simple: 1) you extend the system/db and add some bits and pieces so it is backwards compatible, for db it could mean new nullable columns and triggers to fill-in data, 2) you roll out, 3) you cleanup. Easy!

Cons

Not so great things about the book:

  • Some technologies mentioned are somewhat outdated (book released in 2007)
  • Examples are in Java and frameworks mentioned are Java-world
  • At places a bit too much of Ops related things

Conclusion

The book will be most useful for developers of large enterprise applications, especially where downtime costs real money.

But, in any case, I would highly recommend any developer, and deployment engineer for that matter, to read this book!


Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInEmail this to someone