Release It!: Design and Deploy Production-Ready Software

by Michael T. Nygard

On This Page

Description

A single dramatic software failure can cost a company millions of dollars - but can be avoided with simple changes to design and architecture. This new edition of the best-selling industry standard shows you how to create systems that run longer, with fewer failures, and recover better when bad things happen. New coverage includes DevOps, microservices, and cloud-native architecture. Stability antipatterns have grown to include systemic problems in large-scale systems. This is a must-have show more pragmatic guide to engineering for production systems. If you're a software developer, and you don't want to get alerts every night for the rest of your life, help is here. With a combination of case studies about huge losses - lost revenue, lost reputation, lost time, lost opportunity - and practical, down-to-earth advice that was all gained through painful experience, this book helps you avoid the pitfalls that cost companies millions of dollars in downtime and reputation. Eighty percent of project life-cycle cost is in production, yet few books address this topic. This updated edition deals with the production of today's systems - larger, more complex, and heavily virtualized - and includes information on chaos engineering, the discipline of applying randomness and deliberate stress to reveal systematic problems. Build systems that survive the real world, avoid downtime, implement zero-downtime upgrades and continuous delivery, and make cloud-native applications resilient. Examine ways to architect, design, and build software - particularly distributed systems - that stands up to the typhoon winds of a flash mob, a Slashdotting, or a link on Reddit. Take a hard look at software that failed the test and find ways to make sure your software survives. To skip the pain and get the experience...get this book. show less

Tags

Recommendations

Member Reviews

9 reviews
This book is amazing.

If you are a person who is responsible for the operations, uptime, stability, responsibity of the system you write, or you are a developer who is being told you should care, this is the book for you.

It goes into understanding your system not just as the little piece of code you write but as a large thing with many moving parts that someone has to care about. It shows what to care about in the large ,but also how you can take that care and convert it into decisions and designs to make down at the individual component level.

All this time it's filled with lived experience, and the book is 100% designed for he practical, not the idealogical or theoretical.

Like probably many people, I became a devops person because I was show more the sucker who wasn't afraid of deploying the code on a unix server or who wasn't afraid to debug a working system in the late evening. As such I didn't have a formal or even learned ops background. This book is one of the things this year that I feel has actually qualified me to say I'm an ops person and not just a dev who plays one from time to time. show less
Great companion to Continuous Delivery. Covers more of the development and architecture side of things and, again, should be required reading for every architect and senior developer.

Don't agree with everything he says about database deployment; declarative development is much more useful than trying to code state transitions, especially when structure is in transition.
It was written in 2007, and it is starting to show its age in several respects. Despite this, there is still a lot of relevant advice on how to make software work well in production.

For me, the best parts of the book were the cases studies, and the recommendations in the Stability chapters. There is some repetition in parts of the book, and it feels a bit dated at times. For example, several issues in the last chapter, like monitoring and continuous delivery seem to have become standard practice by now. Nevertheless, it is a worthwhile read, especially these days when more and more developers also operate the systems they develop.

Full review on my blog: https://henrikwarne.com/2016/10/27/book-review-release-it/
A little disorganized, but for some reason I found this to be a really engaging book. How we'd actually be able to implement and "scale down" some of these tips to an organization of the size I work for isn't entirely clear. Obviously a good framework can make debugging and troubleshooting much easier, but there's also a level of expertise needed. It would have been interesting to see what experience he recommends as well or approaches for internal training.

The author is skewed towards Java and Unix machines, but it's not at a level where it interferes with the book. (Although I've used Java and I also use Unix/Linux machines so I'm a bit of a bad sample).

I'm tempted to give this book another read.
A must-read book for any software developer.

Members

Recently Added By

Author Information

1 Work 444 Members

Awards and Honors

Series

Belongs to Publisher Series

Common Knowledge

Canonical title
Release It!: Design and Deploy Production-Ready Software
Original publication date
2007

Classifications

Genres
Technology, Nonfiction, Business, General Nonfiction
DDC/MDS
005.1Computer science, information & general worksComputer science, knowledge & systemsArtificial Intelligence/Virtual RealitySoftware development
LCC
QA76.76 .A65 .N96ScienceMathematicsMathematicsInstruments and machinesCalculating machinesElectronic computers. Computer scienceComputer software
BISAC

Statistics

Members
444
Popularity
69,342
Reviews
7
Rating
½ (4.30)
Languages
English, Japanese
Media
Paper, Ebook
ISBNs
9
UPCs
1
ASINs
1