Release It!

Book description

Everything changes after Release 1.0. The consultants leave; key developers get reassigned to new projects, and the wild and free environment of development gets replaced by change review boards and defect reports. And the public starts beating on the system. Your application needs to be ready to live in that environment--without you.

Out in the real world, your system may have to endure the huge traffic spikes of a Slashdot posting, or a sudden influx of international customers in the middle of the night, or enjoy such popularity that you can't even take it down for maintenance.

Other books on design and architecture only tell you how to meet functional requirements. They help your software pass Quality Assurance. But painful experience has shown that "feature complete" is not even close to"production ready."

With a combination of case studies and practical advice, Release It! will help you avoid the pitfalls that cost companies hundreds of thousand--sometimes millions--of dollars.

Publisher resources

View/Submit Errata

Table of contents

  1.  Preface
    1. Who Should Read This Book?
    2. How the Book Is Organized
    3. About the Case Studies
    4. Acknowledgments
  2. 1. Introduction
    1. Aiming for the Right Target
    2. Use the Force
    3. Quality of Life
    4. The Scope of the Challenge
    5. A Million Dollars Here, a Million Dollars There
    6. Pragmatic Architecture
  3. Part I. Stability
    1. 2. Case Study: The Exception That Grounded An Airline
      1. The Outage
      2. Consequences
      3. Post-mortem
      4. The Smoking Gun
      5. An Ounce of Prevention?
    2. 3. Introducing Stability
      1. Defining Stability
      2. Failure Modes
      3. Cracks Propagate
      4. Chain of Failure
      5. Patterns and Antipatterns
    3. 4. Stability Antipatterns
    4. 5. Stability Patterns
    5. 6. Stability Summary
  4. Part II. Capacity
    1. 7. Case Study: Trampled by Your Own Customers
      1. Countdown and Launch
      2. Aiming for QA
      3. Load Testing
      4. Murder by the Masses
      5. The Testing Gap
      6. Aftermath
    2. 8. Introducing Capacity
      1. Defining Capacity
      2. Constraints
      3. Interrelations
      4. Scalability
      5. Myths About Capacity
      6. Summary
    3. 9. Capacity Antipatterns
      1. Resource Pool Contention
      2. Excessive JSP Fragments
      3. AJAX Overkill
      4. Overstaying Sessions
      5. Wasted Space in HTML
      6. The Reload Button
      7. Handcrafted SQL
      8. Database Eutrophication
      9. Integration Point Latency
      10. Cookie Monsters
      11. Summary
    4. 10. Capacity Patterns
      1. Pool Connections
      2. Use Caching Carefully
      3. Precompute Content
      4. Tune the Garbage Collector
      5. Summary
  5. Part III. General Design Issues
    1. 11. Networking
      1. Multihomed Servers
      2. Routing
      3. Virtual IP Addresses
    2. 12. Security
      1. The Principle of Least Privilege
      2. Configured Passwords
    3. 13. Availability
      1. Gathering Availability Requirements
      2. Documenting Availability Requirements
      3. Load Balancing
      4. Clustering
    4. 14. Administration
      1. “Does QA Match Production?”
      2. Configuration Files
      3. Start-up and Shutdown
      4. Administrative Interfaces
    5. 15. Design Summary
  6. Part IV. Operations
    1. 16. Case Study: Phenomenal Cosmic Powers, Itty-Bitty Living Space
      1. Peak Season
      2. Baby’s First Christmas
      3. Taking the Pulse
      4. Thanksgiving Day
      5. Black Friday
      6. Vital Signs
      7. Diagnostic Tests
      8. Call in a Specialist
      9. Compare Treatment Options
      10. Does the Condition Respond to Treatment?
      11. Winding Down
    2. 17. Transparency
      1. Perspectives
      2. Designing for Transparency
      3. Enabling Technologies
      4. Logging
      5. Monitoring Systems
      6. Standards, De Jure and De Facto
      7. Operations Database
      8. Supporting Processes
      9. Summary
    3. 18. Adaptation
      1. Adaptation Over Time
      2. Adaptable Software Design
      3. Adaptable Enterprise Architecture
      4. Releases Shouldn’t Hurt
      5. Summary
  7.  Bibliography

Product information

  • Title: Release It!
  • Author(s): Michael T. Nygard
  • Release date: March 2007
  • Publisher(s): Pragmatic Bookshelf
  • ISBN: 9780978739218