Release It! Quotes

Rate this book
Clear rating
Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers) Release It!: Design and Deploy Production-Ready Software by Michael T. Nygard
3,252 ratings, 4.25 average rating, 268 reviews
Release It! Quotes Showing 1-24 of 24
“Software design as taught today is terribly incomplete. It talks only about what systems should do. It doesn’t address the converse—things systems should not do. They should not crash, hang, lose data, violate privacy, lose money, destroy your company, or kill your customers.”
Michael T. Nygard, Release It!: Design and Deploy Production-Ready Software
“First, nothing is as permanent as a temporary fix. Most of these remained in place for the next year or two.”
Michael T. Nygard, Release It!: Design and Deploy Production-Ready Software
“Bugs will happen. They cannot be eliminated, so they must be survived instead.”
Michael T. Nygard, Release It!: Design and Deploy Production-Ready Software
“Most testers I’ve known are perverse enough that if you tell them the “happy path” through the application, that’s the last thing they’ll do. It should be the same with load testing.”
Michael T. Nygard, Release It!: Design and Deploy Production-Ready Software
“The main lesson here is that not every problem can be solved at the level of abstraction where it manifests.”
Michael T. Nygard, Release It!: Design and Deploy Production-Ready Software
“Design with skepticism, and you will achieve resilience.”
Michael T. Nygard, Release It!: Design and Deploy Production-Ready Software
“Release is the beginning of the software’s true life; everything before that release is gestation. Either systems grow over time, adapting to their changing environment, or they decay until their costs outweigh their benefits and then die.”
Michael T. Nygard, Release It!: Design and Deploy Production-Ready Software
“Too many production systems are like Schrodinger’s cat—locked inside a box, with no way to observe its actual state.”
Michael T. Nygard, Release It!: Design and Deploy Production-Ready Software
“Design with skepticism, and you will achieve resilience. Ask, “What can system X do to hurt me?” and then design a way to dodge, duck, dip, dive, and dodge whatever wrench your supposed ally throws.”
Michael T. Nygard, Release It!: Design and Deploy Production-Ready Software
“Want to guarantee nasty conflicts? Take a word with multiple, fuzzy, definitions, force people to strike an agreement on it, attach large amounts of money to it, and then watch them fight about it a year or two later.”
Michael T. Nygard, Release It!: Design and Deploy Production-Ready Software
“Keep reports out of production Reports can, and should, be served elsewhere. Don’t jeopardize”
Michael T. Nygard, Release It!: Design and Deploy Production-Ready Software
“Hope is not a design method.”
Michael T. Nygard, Release It!: Design and Deploy Production-Ready Software
“At the same time, I had a deep sense of loss: all that time in the deployment army. All that wasted potential. The wasted humanity! Using people as if they were bots. Disrupting lives, families, sleep patterns...it was all such a waste.”
Michael T. Nygard, Release It!: Design and Deploy Production-Ready Software
“It should never be possible for an administrator to break objects associations inside the application [he's talking about Spring dependency injection]. That's just wearing your guts on the outside. Whenever possible, keep production configuration properties separate from the basic wiring and plumbing of the application. They should be in separate files so the administrators do not accidentally edit internals. [...] Mixing them is the equivalent of putting the ejection seat button next to the radio tuner. Sooner or later, something bad will happen.”
Michael T. Nygard, Release It!: Design and Deploy Production-Ready Software
“Most software is designed for the development lab or the testers in the Quality Assurance (QA) department.”
Michael T. Nygard, Release It!: Design and Deploy Production-Ready Software
“True utility computing centers are on the horizon, but right now, the only real ones are a pale approximation of this vision. In the world that the other 99.9% of us inhabit, production systems are deployed to some relatively fixed set of resources. Applications”
Michael T. Nygard, Release It!: Design and Deploy Production-Ready Software
“The silicon microchips themselves might be cheap (relative to times past, anyway), but CPU cycles are not cheap. Every CPU cycle consumes clock time. Clock time is latency. A wasteful application makes its users wait longer than they need to, and if there’s anything users hate, it’s waiting. For web systems, latency in the application has a dual effect. The added processing directly increases the burden on the application servers themselves. Suppose that an application takes just 250 milliseconds of extra processing per transaction. If the system processes a million transactions a day, that extra 250 milliseconds per transaction makes for an extra 69.4 hours of compute time every day. Assuming an 80% load factor on each server, you’ll need four additional servers to handle this load.”
Michael T. Nygard, Release It!: Design and Deploy Production-Ready Software
“Things happen in production—bad things that you can’t always predict. One”
Michael T. Nygard, Release It!: Design and Deploy Production-Ready Software
“I am ambivalent about cluster servers. At the same time, they are marvelous and kludgy. They can add redundancy and failover to applications that weren’t designed for it. Configuring the cluster server itself is finicky, though, and applications usually have a few small glitches when failing over. The biggest drawback is probably that these run in active/passive mode. So, redundancy is achieved, but scalability is not. I consider cluster servers a Band-Aid for applications that don’t do it themselves.”
Michael T. Nygard, Release It!: Design and Deploy Production-Ready Software
“Integration points are the number-one killer of systems. Every single one of those feeds presents a stability risk.”
Michael T. Nygard, Release It!: Design and Deploy Production-Ready Software
“See whether the DBA laughs at the queries If it doesn’t pass the laugh test, it shouldn’t go into production. Period.”
Michael T. Nygard, Release It!: Design and Deploy Production-Ready Software
“One of my favorite retailers has a release process that rivals a NASA launch sequence.”
Michael T. Nygard, Release It!: Design and Deploy Production-Ready Software
“of The TCP/IP Guide [Koz05] or TCP/IP Illustrated [Ste93] open beside you for this type of activity!”
Michael T. Nygard, Release It!: Design and Deploy Production-Ready Software
“What About Object Pooling? In early versions of Java (around the 1.2 time frame), the idea that long-lived objects were good gained currency. I specifically remember being told that “creating an object is the second most expensive thing you can do in Java” (the first being creation of a new thread). The answer, supposedly, was to avoid creating objects whenever possible. Instead, you were supposed to keep objects around and reuse them.”
Michael T. Nygard, Release It!: Design and Deploy Production-Ready Software