Book Image

Implementing Cloud Design Patterns for AWS - Second Edition

By : Sean Keery, Clive Harber, Marcus Young
Book Image

Implementing Cloud Design Patterns for AWS - Second Edition

By: Sean Keery, Clive Harber, Marcus Young

Overview of this book

Whether you're just getting your feet wet in cloud infrastructure or already creating complex systems, this book will guide you through using the patterns to fit your system needs. Starting with patterns that cover basic processes such as source control and infrastructure-as-code, the book goes on to introduce cloud security practices. You'll then cover patterns of availability and scalability and get acquainted with the ephemeral nature of cloud environments. You'll also explore advanced DevOps patterns in operations and maintenance, before focusing on virtualization patterns such as containerization and serverless computing. In the final leg of your journey, this book will delve into data persistence and visualization patterns. You'll get to grips with architectures for processing static and dynamic data, as well as practices for managing streaming data. By the end of this book, you will be able to design applications that are tolerant of underlying hardware failures, resilient against an unexpected influx of data, and easy to manage and replicate.
Table of Contents (20 chapters)
Title Page
Dedication
About Packt
Contributors
Preface
Free Chapter
1
Introduction to Amazon Web Services
Index

Fault tolerance


Power outages, hardware failures, and data center upgrades are just a few of the many problems that still bubble up to the engineering teams responsible for systems. Data center upgrades are common, and given enough time at AWS, your product team will get an email or notification stating that some servers will shut down, or experience brownouts, or small outages of power. We've shown that the best way to handle these is to span across data centers (AZs) so that, if a single location experiences issues, the systems will continue to respond. Your services should be configured in an N+1 configuration. If a single frontend is acceptable, then it should be configured for two. Spanning AZs gives us further protection from large-scale outages while keeping latency low. This allows for hiccups and brownouts, as well as an influx of traffic into the system with minimal impact to the end users.

An example of this architecture can be seen in the reference architecture for Cloud Foundry...