Engineering Resilient Systems on AWS

Book description

To ensure that their applications are reliable and always available, more businesses today are moving applications to AWS. But many companies still struggle to design and build these cloud applications effectively thinking that because the cloud is resilient, their application will be too. With this practical guide, software, DevOps, and cloud engineers will learn how to implement secure designs and configurations in the cloud using hands-on independent labs.

Authors Kevin Schwarz, Jennifer Moran, and Nate Bachmeier from AWS show you how to build cloud applications by dealing with common configuration, tooling, and deployment scenarios such as back off and retry, multiregion failover, data protection, and circuit breaker. Labs are organized into categories based on complexity and topic, making it easy for you to focus on the most relevant parts of your business.

You'll learn how to:

  • Assess the trade-offs when building resilience systems, including cost, complexity, and operational burden
  • Consider multiregion designs in order to meet business requirements
  • Implement backup and restore, pilot light, warm standby, and active-active strategies
  • Configure and deploy AWS services using resilience patterns
  • Implement stateless microservices with auto-scaling policies
  • Build applications that withstand AWS Region and Availability Zone impairments
  • Use chaos engineering experiments for fault injection in order to test for resilience

Publisher resources

View/Submit Errata

Table of contents

  1. Brief Table of Contents (Not Yet Final)
  2. I. Why Resilience?
  3. 1. Introduction
    1. Shared Responsibility Model
      1. AWS Responsibility
      2. Customer Responsibility
    2. Mental Model
      1. High Availability
      2. Disaster Recovery
      3. Continuous Resilience
    3. Frameworks
      1. AWS Well-Architectured Framework
      2. AWS Resilience Analysis Framework
  4. 2. Preparing your Working Environment
    1. Hands-on Learning with Microservices
    2. AWS Account and Permissions
    3. Choosing a Development OS and IDE
    4. The Cloud 9 Environment
    5. Git and Code Samples Repository
    6. Python Environment
    7. NPM and Nodejs
    8. AWS CDK
    9. Additional Software
      1. AWS CLI
      2. Python packages
      3. Vue.js and Vite
      4. Bootstrap CSS
      5. Artillery.io
      6. curl and watch
      7. Boto3
      8. PostgreSQL
      9. Lambda Powertools
    10. Custom Domain and Route53 Hosted Zone
    11. A note about Security
    12. Cleaning up
    13. Summary
  5. II. Reliable Trading Portal
  6. 3. Serverless Message Processing
    1. Technical Requirements
    2. Architecture Overview
      1. An AWS Serverless Approach
    3. Deploy the AWS CDK Application
    4. Sunny Day Scenario
    5. Strongly Typed Service Contracts
    6. Idempotent Responses
    7. Self-Healing with Message Queue Retries
    8. STOP: Business Continuity Regional Switchover
    9. Returning to Business as Usual
    10. Load Shedding: Throttle Unanticipated Load
    11. Surviving a Poison Pill
    12. Blue-Green testing
    13. Cleaning up
    14. Summary
  7. 4. High Throughput Container API
    1. Technical Requirements
    2. Architecture Overview
    3. Deploying the Order API Microservice
    4. Database Connection Pool Proxy
    5. Container deployment circuit breakers
    6. Secret caching and rotation
    7. Circuit breakers
    8. Retry Gray Failures
    9. Database High Availability (HA)
    10. Network Chaos and Zonal Evacuation
    11. Cleaning up
    12. Summary
  8. About the Authors

Product information

  • Title: Engineering Resilient Systems on AWS
  • Author(s): Kevin Schwarz, Jennifer Moran, Nate Bachmeier
  • Release date: November 2024
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9781098162429