Release It! and over one million other books are available for Amazon Kindle. Learn more



or
Sign in to turn on 1-Click ordering
Sell Us Your Item
For a $2.00 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Start reading Release It! on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.
Sorry, this item is not available in
Image not available for
Color:
Image not available

To view this video download Flash Player

 

Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers) [Paperback]

Michael T. Nygard
4.6 out of 5 stars  See all reviews (33 customer reviews)

List Price: $34.95
Price: $21.56 & FREE Shipping on orders over $25. Details
You Save: $13.39 (38%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Only 6 left in stock (more on the way).
Ships from and sold by Amazon.com. Gift-wrap available.
Want it tomorrow, May 24? Choose One-Day Shipping at checkout. Details
Free Two-Day Shipping for College Students with Amazon Student

Formats

Amazon Price New from Used from
Kindle Edition $16.59  
Paperback $21.56  
Shop the new tech.book(store)
New! Introducing the tech.book(store), a hub for Software Developers and Architects, Networking Administrators, TPMs, and other technology professionals to find highly-rated and highly-relevant career resources. Shop books on programming and big data, or read this week's blog posts by authors and thought-leaders in the tech industry. > Shop now

Book Description

April 6, 2007 0978739213 978-0978739218 1

Whether it's in Java, .NET, or Ruby on Rails, getting your application ready to ship is only half the battle. Did you design your system to survivef a sudden rush of visitors from Digg or Slashdot? Or an influx of real world customers from 100 different countries? Are you ready for a world filled with flakey networks, tangled databases, and impatient users?

If you're a developer and don't want to be on call for 3AM for the rest of your life, this book will help.

In Release It!, Michael T. Nygard shows you how to design and architect your application for the harsh realities it will face. You'll learn how to design your application for maximum uptime, performance, and return on investment.

Mike explains that many problems with systems today start with the design.


Frequently Bought Together

Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers) + Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler))
Price for both: $61.87

Buy the selected items together


Editorial Reviews

About the Author

Michael Nygard has been a professional programmer and architect for over 15 years. He has delivered systems to the U. S. Government, the military, banking, finance, agriculture, and retail industries. Michael has written numerous articles and editorials, spoken at Comdex, and coauthored one of the earliest Java books. Michael has designed, built, and engineered systems for B2B exchanges, retail commerce sites, travel and leisure sites, an information brokerage, and web applications for the intelligence community. Among other exciting projects in his position as Director of Engineering for Totality Corporation, Michael led the operations team through the launch of a tier 1 retail site. His experience with the birth and infancy of this retail platform gives him a unique perspective on building software for high performance and high reliability in the face of an actively hostile environment.

Product Details

  • Paperback: 326 pages
  • Publisher: Pragmatic Bookshelf; 1 edition (April 6, 2007)
  • Language: English
  • ISBN-10: 0978739213
  • ISBN-13: 978-0978739218
  • Product Dimensions: 7 x 1.1 x 9.1 inches
  • Shipping Weight: 1.7 pounds (View shipping rates and policies)
  • Average Customer Review: 4.6 out of 5 stars  See all reviews (33 customer reviews)
  • Amazon Best Sellers Rank: #100,148 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

4.6 out of 5 stars
(33)
4.6 out of 5 stars
I tend to prefer short books, simply because it takes time to read books. Christophe Addinquy  |  8 reviewers made a similar statement
After I finished the book I felt energized to do things better. Steve Berczuk  |  3 reviewers made a similar statement
Most Helpful Customer Reviews
19 of 20 people found the following review helpful
4.0 out of 5 stars Architecture for the paranoiac (or realist) July 3, 2007
Format:Paperback
The subtitle of this book might as well be Architecture and Design for the Paranoiac. The book lays out some critical aspects to creating and rolling out stable software systems. It's directed to those working in the enterprise arena and need the utmost from stability, capacity, and overall design. Nygard's definition of "enterprise" is somewhat broad in that he considers "enterprise" to be any system providing mission-critical support to a business. Regardless of how you define your particular software, I'm sure you'll find something useful in this book.

Nygard presents the book from an anti-pattern/pattern approach: he uses case studies to illustrate how critical errors in design or implementation (anti-patterns) have caused disasterous outages. He then moves on to show how application of solid design patterns could have avoided the problems. He also spends some time going in to detail on how some of the outages have happened, including brief discussions on network packet captures and decompiling third party drivers.

There are a lot of solid fundamentals in the book: dealing with exceptions at system integration points, thread synchronization, avoid rolling your own primative feature libraries such as connection pools, and make sure to test third-party libraries which play critical roles. The general approach of discussing anti-patterns followed by patterns is also a nice way of putting forth the material.

There are a lot of more complex bits covered as well, such as thinking ahead on how you'll deal with bots and crawlers, avoiding AJAX overkill, designing ahead for and using session. I also liked that Nygard talks about the importance of involving the customer in decisions on thresholds and other critical boundaries.

Despite the great content, there is a blistering flaw, IMO: A complete lack of solid implementation specifics. Nygard doesn't provide much detail at all on actual implementation of the critical patterns he espouses, nor does he point you in the direction of other sources of information. For example, the Timeout pattern is held up as a vital aspect in many parts of the book; however, there's no practical detail on actual code to implement a Timeout, and there's only one reference to a practical implementation. The Circuit Breaker pattern, central to many of Nygard's architecture assertions, doesn't have any code or a single reference to other material where you can find implementation details.

While I find that a major gap in the book, otherwise I think it's a solid addition to one's bookshelf. The writing style's very nice, his writing voice is light and concise, and the summary bullets in each section ("Remember This") are of great value. Additionally, there are plenty of references to other useful works. (Just not for the patterns I complained about above.)
Comment | 
Was this review helpful to you?
8 of 9 people found the following review helpful
4.0 out of 5 stars Design patterns of system architecture May 4, 2007
Format:Paperback
This book is intended for architects, designers, and developers of software on which a business depends and whose failure costs money. The tone is informal and the style is easily read. Some architects may wish for more rigor and consider it too easily read but they might still benefit because it contains quite a bit of wisdom earned by experience.

The book discusses issues of uptime, failure, and maintainability with examples drawn from the author's experience and from other industries. Making the point from more than one point of view serves to drive it home.

This is not a programming book but the illumination of a problem is often improved by a snippet of code. The code is Java and is easily read by anyone familiar with programming. Having some familiarity with multi-threaded programming in following the explanations and their examples will make them a little easier to read but is not necessary to get the point. (Even if you truly have no knowledge of Java, looking up JDBC, JVM, EJB, JSP, J2EE, log4j, and servelet will not be much effort because not much knowledge of them is required.) The examples emphasize web applications because, I suppose, that's the environment most vulnerable to huge capacity requirements, more complex environments, more numerous causes of failure, and failures that are more visible.

The author's analysis of the problem space has two dimensions --- stability and capacity --- in which a given enterprise system can be located. The analysis also has two categories: general design and operations.

Stability and Capacity

A given coordinate, on the stability axis, for example, implies the presence and absence of features that improve and diminish stability. A feature that contributes to stability is the use of timeouts and one that detracts is the presence of many interfaces to other systems. The author identifies 8 such stability patterns that contribute to stability and 11 antipatterns that detract from it. Capacity has 4 patterns and 10 antipatterns.

General design and Operations

These two categories are less structured than those of stability and capacity.

"General design" contains advice about networking (integration with local and remote servers), security (principle of least privilege and managing passwords), availability (load balancing and clustering), and administration (QA vs production environments, configuration files, anticipating failure in start-up and shut-down, and an administrative interface).

"Operations" contains advice about recovery-oriented computing (surviving failure by restarting components, et al.), transparency (allowing a view of the system's internals), and adaptation (managing change).

The idea of patterns from software development is raised from the level of programming to the level of systems. I might have called them, for example, stability patterns and anti-stability patterns but the author's meaning is clear enough.

At the end of each pattern and antipattern section is a short and effective summary that begins with "Remember this". The design chapter has a summary and the operations chapter has two section summaries. The author clearly has in mind the reader's take-home lesson and the possibility that the book may be skimmed to reread a section. The book is cross-referenced, forward and back -- if an idea of current relevance is explained elsewhere in more detail, the page number is noted. For example, if an antipattern has a countermeasure identified by a pattern, then the relationship is noted with a page number.

Implementing some suggestions may make the QA phase of testing easier by making diagnosis and (white box) testing itself easier. If you want to design your software to be more reliable and easier to maintain after the QA phase of testing, then this book is for you.
Comment | 
Was this review helpful to you?
7 of 8 people found the following review helpful
Format:Paperback
It is the decisions that you make during development that will affect the quality of your release. Release It!: Design And Deploy Production-Ready Software was written to help you understand what causes good software to go bad, and to show you how to take control of the situation when it happens.

Release It! was written for architects, designers, and developers of enterprise class software systems. This includes applications, websites, web services, and EAI projects. According to the author, "enterprise class" means if the software stops, the company loses money.

All in all I found Release It! a very easy read. While the author comes from a Java and Unix perspective, the book's focus is generally neutral and grounded toward concepts and techniques that are portable across all platforms and technologies. Each of these case studies is based on real events, only the names (of people, companies, methods, and classes) have been change to protect the innocent. The detail of the information is very helpful, giving insight into the problems and their solutions.

My full review can be found over at Blogcritcs, but if you are looking for a better way to deliver your product, a way to avoid the traps and pitfalls, then Release It! is a good place to begin.
Comment | 
Was this review helpful to you?
Most Recent Customer Reviews
5.0 out of 5 stars IT in real life
This book is more then a guide to building production-ready reliable software systems.

It is filled with interesting stories, insights and sometimes boring yet valuable... Read more
Published 1 month ago by Fedor Rusak
4.0 out of 5 stars useful info and well explained
Lots of areas the think about and incorporate into the system design process not just at the last minute. Well worth the price of the book
Published 1 month ago by Mr Mark Royle
5.0 out of 5 stars Perception altering, read it!
The first section is what really shines, altering how you look at development, test, and production operations. You'll never look at an integration point the same again.
Published 3 months ago by Ed Clarke
5.0 out of 5 stars Don't judge a book by its title
This is one of those books you always wish you'd read sooner than you actually did. I have to admit I passed this book over for years due to its apparent similarity to another... Read more
Published 3 months ago by Christian Romney
5.0 out of 5 stars Good Read for those involved with Web IT Projects
Almost seems like they wrote it based on some of my experiences, still 1/2 way through, its
a good read. I'm happy with the kindle version of it.
Published 4 months ago by Mark and Julie in Waukesha
5.0 out of 5 stars Every developer should read this.
Cliche phrase, i know, but it's true. This is a quick and easy read full of practical advice that every developer should know.
Published 5 months ago by Jason Meckley
5.0 out of 5 stars Fantastic, must read for anyone in software
Release It! is a fantastic book that anyone that deals with software should read. The book speaks of the realistic view you must take when designing, developing and maintaining... Read more
Published 11 months ago by Zambonilli
5.0 out of 5 stars Should be required reading for all software developers
While the advice is not always of consistent quality, and some of the specific advice is starting to feel dated, this book is a gem in that it succinctly distills years of... Read more
Published 16 months ago by Ilya Haykinson
5.0 out of 5 stars The best book on software architecture best practices since The...
I could not put this book down. Considering that I tend to read 3-4 books at once, this is a big deal for me. It's clear from the war stories contained in "Release It!" that Mr. Read more
Published 21 months ago by Fogus
5.0 out of 5 stars Makes you think about recovery oriented software
If you ever "go live" and start getting the "oh sh#$" queasy feeling, you need to read this book.
To be perfectly clear, this is not a software design patterns book in the... Read more
Published on July 21, 2009 by Rao Venugopal
Search Customer Reviews
Only search this product's reviews


Forums

There are no discussions about this product yet.
Be the first to discuss this product with the community.
Start a new discussion
Topic:
First post:
Prompts for sign-in
 





Look for Similar Items by Category