You are previewing Release It!.
O'Reilly logo
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.

Table of Contents

  1. Release It!
    1. Copyright
    2. For the Best Reading Experience...
    3. Table of Contents
    4. What readers are saying about Release It!
    5. Preface
      1. Who Should Read This Book?
      2. How the Book Is Organized
      3. About the Case Studies
      4. Acknowledgments
    6. Chapter 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
    7. Part 1: Stability
      1. Chapter 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. Chapter 3: Introducing Stability
        1. Defining Stability
        2. Failure Modes
        3. Cracks Propagate
        4. Chain of Failure
        5. Patterns and Antipatterns
      3. Chapter 4: Stability Antipatterns
        1. 4.1 Integration Points
        2. 4.2 Chain Reactions
        3. 4.3 Cascading Failures
        4. 4.4 Users
        5. 4.5 Blocked Threads
        6. 4.6 Attacks of Self-Denial
        7. 4.7 Scaling Effects
        8. 4.8 Unbalanced Capacities
        9. 4.9 Slow Responses
        10. 4.10 SLA Inversion
        11. 4.11 Unbounded Result Sets
      4. Chapter 5: Stability Patterns
        1. 5.1 Use Timeouts
        2. 5.2 Circuit Breaker
        3. 5.3 Bulkheads
        4. 5.4 Steady State
        5. 5.5 Fail Fast
        6. 5.6 Handshaking
        7. 5.7 Test Harness
        8. 5.8 Decoupling Middleware
      5. Chapter 6: Stability Summary
    8. Part 2: Capacity
      1. Chapter 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. Chapter 8: Introducing Capacity
        1. Defining Capacity
        2. Constraints
        3. Interrelations
        4. Scalability
        5. Myths About Capacity
        6. Summary
      3. Chapter 9: Capacity Antipatterns
        1. 9.1 Resource Pool Contention
        2. 9.2 Excessive JSP Fragments
        3. 9.3 AJAX Overkill
        4. 9.4 Overstaying Sessions
        5. 9.5 Wasted Space in HTML
        6. 9.6 The Reload Button
        7. 9.7 Handcrafted SQL
        8. 9.8 Database Eutrophication
        9. 9.9 Integration Point Latency
        10. 9.10 Cookie Monsters
        11. Summary
      4. Chapter 10: Capacity Patterns
        1. 10.1 Pool Connections
        2. 10.2 Use Caching Carefully
        3. 10.3 Precompute Content
        4. 10.4 Tune the Garbage Collector
        5. Summary
    9. Part 3: General Design Issues
      1. Chapter 11: Networking
        1. Multihomed Servers
        2. Routing
        3. Virtual IP Addresses
      2. Chapter 12: Security
        1. The Principle of Least Privilege
        2. Configured Passwords
      3. Chapter 13: Availability
        1. Gathering Availability Requirements
        2. Documenting Availability Requirements
        3. Load Balancing
        4. Clustering
      4. Chapter 14: Administration
        1. “Does QA Match Production?”
        2. Configuration Files
        3. Start-up and Shutdown
        4. Administrative Interfaces
      5. Chapter 15: Design Summary
    10. Part 4: Operations
      1. Chapter 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. Chapter 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. Chapter 18: Adaptation
        1. Adaptation Over Time
        2. Adaptable Software Design
        3. Adaptable Enterprise Architecture
        4. Releases Shouldn’t Hurt
        5. Summary
    11. Bibliography