0%

Book Description

Every day, companies struggle to scale critical applications. As traffic volume and data demands increase, these applications become more complicated and brittle, exposing risks and compromising availability. And with the popularity of software as a service, scaling has never been more important. Updated with an expanded focus on modern architecture paradigms such as microservices and cloud computing, this practical guide provides techniques for building systems that can handle huge quantities of traffic, data, and demand without affecting the quality your customers expect.

Author Lee Atchison shows architects, managers, and directors in both engineering andoperations organizations how to build applications at scale that run more smoothly and reliably and meet the needs of your customers.

  • See how scaling affects the availability of your services, why that matters, and how to improve it
  • Dive into a modern service-based application architecture that ensures high availability and reduces the effects of service failures
  • Explore the Single Team Owned Service Architecture paradigm (STOSA)—a model for scaling your development organization as your application scales
  • Understand, measure, and mitigate risk in your systems
  • Use the cloud to build highly scalable applications

Table of Contents

  1. 1.
    1. Modern Digital Customer Experiences
    2. 5 Tenets in Architecting for Scale
  2. 2.
    1. Availability Versus Reliability
    2. What Cau ses Poor Availability?
  3. 3.  
    1. What Is “Two Mistakes High”?
    2. “Two Mistakes High” in Practice
      1. Losing a Node
      2. Problems During Upgrades
      3. Data Center Resiliency
      4. Hidden Shared Failure Types
      5. Failure Loops
    3. Managing Your Applications
    4. The Space Shuttle
  4. 4.
    1. The Nines
      1. What’s Reasonable?
    2. Don’t Be Fooled
    3. Availability by the Numbers
  5. 5.
    1. Measure and Track Your Current Availability
    2. Automate Your Manual Processes
      1. Automated Deploys
      2. Configuration Management
      3. Change Experiments and High Frequency Changes
      4. Automated Change Sanity Testing
    3. Improve Your Systems
    4. Your Changing and Growing Application
    5. Keeping on Top of Availability
  6. 6.
    1. Focus #1: Build with Failure in Mind
    2. Focus #2: Always Think About Scaling
    3. Focus #3: Mitigate Risk
    4. Focus #4: Monitor Availability
    5. Focus #5: Respond to Availability Issues in a Predictable and Defined Way
    6. Being Prepared
  7. 7.  
    1. The Monolith Application vs The Service-Based Application
    2. The Ownership Benefit
    3. The Scaling Benefit
  8. 8.
    1. What Should Be a Service?
      1. Divid ing into Services
      2. Guideline #1: Specific Business Requirements
      3. Guideline #2: Distinct and Separable Team Ownership
      4. Guideline #3: Natural ly Separable Data
      5. Guideline #4: Shared Capabilities/Data
      6. Mixed Reasons
    2. Going Too Far
    3. The Right Balance
  9. 9.
    1. Stateless Services
    2. Where’s the Data?
    3. Data Partitioning
  10. 10.
    1. Cascading Service Failures
    2. Responding to a Service Failure
      1. Predictable Response
      2. Understandable Response
      3. Reasonable Response
    3. Determining Failures
    4. Appropriate Action
      1. Graceful Degra dation
      2. Grac eful Backoff
      3. Fail as Early as Possible
      4. Customer-Caused Problems
    5. Summary
  11. 11.
    1. Single Team Owned Service Architecture
    2. Advantages of a STOSA A pplication and Organization
    3. What Does it Mean to “Own” a Service?
    4. Using Core Teams and Services
  12. 12.
    1. Application Complexity
    2. What Are Service Tiers?
    3. Assigning Service Tier Labels to Services
      1. Tier 1
      2. Tier 2
      3. Tier 3
      4. Tier 4
    4. Example: Online Store
    5. What’s Next?
  13. 13.
    1. Expectations
    2. Responsiv eness
    3. Dependencies
      1. Critical Dependency
      2. Noncritical Dependency
    4. Summary
  14. 14. Chapter 22: Architecting for Scale with the Cloud
  15. 15.
    1. Level 1: Experimenting with the cloud
    2. Level 2: Securing the cloud
    3. Level 3: Using servers and applications in the cloud
    4. Level 4: Enabling value-added managed services
    5. Level 5: Enabling cloud-unique services
    6. Level 6: Cloud All In
    7. Organization vs Application Maturity Level
  16. 16.
    1. Cloud Security
    2. Cloud Migration via Lift-n-Shift
    3. The Lure of Serverless
  17. 17.
    1. AWS Architecture
      1. AWS Region
      2. AWS Availability Zone
      3. Data Center
    2. Architecture Overview
    3. Availability Zones Are Not Data Centers
    4. Maintaining Location Diversity for Availability Reasons
      1. AWS — Mapping Availability Zones in Multiple Accounts
3.146.105.194