Table of Contents
Chapter 1 What Is Availability?
- Availability Versus Reliability
- What Causes Poor Availability?
Chapter 2 Five Focuses to Improve Application Availability
- Focus #1: Build with Failure in Mind
- Focus #2: Always Think About Scaling
- Focus #3: Mitigate Risk
- Focus #4: Monitor Availability
- Focus #5: Respond to Availability Issues in a Predictable and Defined Way
- Being Prepared
Chapter 3 Measuring Availability
- The Nines
- Don’t Be Fooled
- Availability by the Numbers
Chapter 4 Improving Your Availability When It Slips
- Measure and Track Your Current Availability
- Automate Your Manual Processes
- Improve Your Systems
- Your Changing and Growing Application
- Keeping on Top of Availability
Chapter 5 What Is Risk Management?
- Managing Risk
- Identify Risk
- Remove Worst Offenders
- Review Regularly
- Managing Risk Summary
Chapter 6 Likelihood Versus Severity
- The Top 10 List: Low Likelihood, Low Severity Risk
- The Order Database: Low Likelihood, High Severity Risk
- Custom Fonts: High Likelihood, Low Severity Risk
- T-Shirt Photos: High Likelihood, High Severity Risk
Chapter 7 The Risk Matrix
- Scope of the Risk Matrix
- Creating the Risk Matrix
- Using the Risk Matrix for Planning
- Maintaining the Risk Matrix
Chapter 8 Risk Mitigation
- Recovery Plans
- Disaster Recovery Plans
- Improving Our Risk Situation
Chapter 9 Game Days
- Staging Versus Production Environments
- Concerns with Running Game Days in Production
- Game Day Testing
Chapter 10 Building Systems with Reduced Risk
- Examples of Idempotent Interfaces
- Redundancy Improvements That Increase Complexity
- Operational Processes
Services and Microservices
Chapter 11 Why Use Services?
- The Monolith Application
- The Service-Based Application
- The Ownership Benefit
- The Scaling Benefit
Chapter 12 Using Microservices
- What Should Be a Service?
- Going Too Far
- The Right Balance
Chapter 13 Dealing with Service Failures
- Cascading Service Failures
- Responding to a Service Failure
- Determining Failures
- Appropriate Action
Chapter 14 Two Mistakes High
- What Is “Two Mistakes High”?
- “Two Mistakes High” in Practice
- Managing Your Applications
- The Space Shuttle
Chapter 15 Service Ownership
- Single Team Owned Service Architecture
- Advantages of a STOSA Application and Organization
- What Does it Mean to Be a Service Owner?
Chapter 16 Service Tiers
- Application Complexity
- What Are Service Tiers?
- Assigning Service Tier Labels to Services
- Example: Online Store
- What’s Next?
Chapter 17 Using Service Tiers
Chapter 18 Service-Level Agreements
- What are Service-Level Agreements?
- External Versus Internal SLAs
- Why Are Internal SLAs Important?
- SLAs as Trust
- SLAs for Problem Diagnosis
- Performance Measurements for SLAs
- How Many and Which Internal SLAs?
- Additional Comments on SLAs
Chapter 19 Continuous Improvement
- Examine Your Application Regularly
- Service Ownership
- Stateless Services
- Where’s the Data?
- Data Partitioning
- The Importance of Continuous Improvement
Chapter 20 Change and the Cloud
- What Has Changed in the Cloud?
- Change Continues
Chapter 21 Distributing the Cloud
- AWS Architecture
- Architecture Overview
- Availability Zones Are Not Data Centers
- Maintaining Location Diversity for Availability Reasons
Chapter 22 Managed Infrastructure
- Structure of Cloud-Based Services
- Implications of Using Managed Resources
- Implications of Using Non-Managed Resources
- Monitoring and CloudWatch
Chapter 23 Cloud Resource Allocation
- Allocated-Capacity Resource Allocation
- Usage-Based Resource Allocation
- The Pros and Cons of Resource Allocation Techniques
Chapter 24 Scalable Computing Options
- Cloud-Based Servers
- Compute Slices
- Dynamic Containers
- Now What?
Chapter 25 AWS Lambda
- Using Lambda
- Advantages and Disadvantages of Lambda
Chapter 26 Putting It All Together
- Risk Management
- Architecting for Scale