Architecting for Scale, 2nd Edition

Architecting for Scale, 2nd Edition

Read it now on the O’Reilly learning platform with a 10-day free trial.

O’Reilly members get unlimited access to books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.

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. 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. Architects, managers, and directors in engineering and operations organizations will learn how to build applications at scale that run more smoothly and reliably to meet the needs of customers.

Show and hide more

Publisher resources

Table of contents Product information

Table of contents

  1. Forewords
    1. Foreword for Second Edition
    2. Foreword for First Edition
    1. Who Should Read This Book
    2. Why I Wrote This Book
    3. A Word on Scale Today
    4. What’s New in the Second Edition
    5. Using the Cloud
    6. Services Versus Microservices
    7. Modern Digital Customer Experiences
    8. Navigating This Book
      1. Tenet 1. Availability: Maintaining Availability in Modern Applications
      2. Tenet 2. Modern Application Architecture: Using Services
      3. Tenet 3. Organization: Scaling Your Organization for Modern Applications
      4. Tenet 4. Risk: Risk Management for Modern Applications
      5. Tenet 5. Cloud: Utilizing the Cloud
      1. Availability Versus Reliability
      2. What Causes Poor Availability?
      3. Measuring Availability
        1. The Nines
        2. Planned Outages Are Still Outages
        3. Availability by the Numbers
        1. Measure and Track Your Current Availability
        2. Automate Your Manual Processes
        3. Improve Your Systems
        4. Keep on Top of Availability in Your Changing and Growing Application
        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
        1. Two Mistakes High
          1. Scenario #1: Losing a Node
          2. Scenario #2: Problems During Upgrades
          3. Scenario #3: Data Center Resiliency
          4. Scenario #4: Hidden Shared Failure Types
          5. Scenario #5: Failure Loops
          1. The Monolith Application Versus the Service-Based Application
            1. The Ownership Benefit
            2. The Scaling Benefit
            1. What Should Be a Service?
            1. Guideline #1: Specific Business Requirements
            2. Guideline #2: Distinct and Separable Team Ownership
            3. Guideline #3: Naturally Separable Data
            4. Guideline #4: Shared Capabilities/Data
            5. Mixed Reasons
            1. Stateless Services—Services Without Data
            2. Stateful Services—Services with Data
            3. Data Partitioning
            4. Timely Handling of Growing Pains
            1. Cascading Service Failures
            2. Responding to a Service Failure
              1. Predictable Response
              2. Understandable Response
              3. Reasonable Response
              1. Graceful Degradation
              2. Graceful Backoff
              3. Fail as Early as Possible
              4. Customer-Caused Problems
              1. Single Team Owned Service Architecture
              2. Advantages of a STOSA Application and Organization
              3. What Does It Mean to “Own” a Service?
              4. Using Core Teams and Services
              5. Summary
              1. Application Complexity
              2. What Are Service Tiers?
                1. Assigning Service Tier Labels to Services
                1. Expectations
                2. Responsiveness
                3. Dependencies
                1. What Are SLAs?
                2. External Versus Internal SLAs
                  1. Why Are Internal SLAs Important?
                  1. Limit SLAs
                  2. Top Percentile SLAs
                  3. SLA Conditionals
                  1. Identify Risk
                    1. Remove Worst Offenders
                    2. Mitigate
                    3. Review Regularly
                    4. Managing Risk Summary
                    1. The Top 10 List: Low Likelihood, Low Severity Risk
                    2. The Order Database: Low Likelihood, High Severity Risk
                    3. Custom Fonts: High Likelihood, Low Severity Risk
                    4. T-Shirt Photos: High Likelihood, High Severity Risk
                    1. Scope of the Risk Matrix
                    2. Creating the Risk Matrix
                    3. Using the Risk Matrix for Planning
                    4. Maintaining the Risk Matrix
                    1. Staging Versus Production Environments
                      1. Staging/Test Environments
                      2. Production Environments
                      1. Technique #1: Introduce Redundancy
                        1. Idempotent Interfaces
                        2. Redundancy Improvements That Increase Complexity
                        1. Six Levels of Cloud Maturity
                          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 Versus Application Maturity Level
                          1. Trap #1: Not Trusting Cloud Security
                          2. Trap #2: Performing Cloud Migration via Lift-and-Shift
                          3. Trap #3: The Lure of Serverless—Depending Too Much on the Hype
                          1. Defining What We Mean by Multiple Clouds
                          2. Which Model? Which Cloud?
                          1. What Has Changed in the Cloud?
                            1. Change #1: Acceptance of Microservice-Based Architectures
                            2. Change #2: Smaller, More Specialized Cloud Services
                            3. Change #3: Greater Focus on the Application
                            4. Change #4: The Micro Startup
                            5. Change #5: Security and Compliance Has Matured
                            1. Comparing Managed Hosting and Different Types of SaaS
                              1. Managed Hosting
                              2. Multi-Tenant SaaS
                              3. Single-Tenant SaaS
                              1. AWS Architecture
                                1. AWS Region
                                2. AWS Availability Zone
                                3. Data Center
                                1. AWS—Mapping Availability Zones in Multiple Accounts
                                1. Structure of Cloud-Based Services
                                  1. Raw Resource
                                  2. Server-Based Managed Resource
                                  3. Serverless Managed Resource
                                  1. Usage-Based Resources Allocation
                                  2. Allocated-Capacity Resource Allocation
                                    1. Changing Allocations
                                    2. Automated Allocation of Resource Capacity
                                    3. Issues with Automatic Allocation
                                    4. Dynamic Allocation, Dynamic Cost
                                    1. Example Application #1: Event Processing
                                    2. Example Application #2: Mobile Backend
                                    3. Example Application #3: Internet of Things Data Intake
                                    4. Advantages and Disadvantages of FaaS
                                    5. Serverless Hype and the Future of FaaS
                                    1. Edge Computing Today
                                    2. Why We Care
                                    3. What Should Be in the Edge Versus the Cloud?
                                      1. How Do We Decide? The Driverless Car
                                      1. Criteria for Using Edge Versus Cloud
                                      1. #1: Be Smart About What Goes on the Edge
                                      2. #2: Don’t Ignore DevOps Principles in the Edge
                                      3. #3: Nail a Highly Distributed Deployment Strategy
                                      4. #4: Reduce Versioning as Much as Possible
                                      5. #5: Reduce Per Node Provisioning and Configuration Options
                                      6. #6: Scaling Is an Edge Issue, Not Just a Cloud Issue
                                      7. #7: Nail Monitoring and Analytics
                                      8. #8: The Edge Is Not Magic
                                      1. Cloud Matters Everywhere, But at Different Levels
                                      2. Replacement Mentality Impacts How You Adopt Cloud
                                      3. Which Cloud Is Most Important?
                                      4. Important Technologies Differ
                                      5. Data Sovereignty Is Universal
                                      6. My Take
                                      1. Tenet #1—Availability
                                      2. Tenet #2—Architecture
                                      3. Tenet #3—Organization
                                      4. Tenet #4—Risk
                                      5. Tenet #5—Cloud
                                      6. Architecting for Scale
                                      Show and hide more

                                      Product information

                                      • Title: Architecting for Scale, 2nd Edition
                                      • Author(s): Lee Atchison
                                      • Release date: March 2020
                                      • Publisher(s): O'Reilly Media, Inc.
                                      • ISBN: 9781492057178

                                      You might also like

                                      Check it out now on O’Reilly

                                      Dive in for free with a 10-day trial of the O’Reilly learning platform—then explore all the other resources our members count on to build skills and solve problems every day.