Название: Engineering Resilient Systems on AWS: Design, Build, and Test for Resilience Автор: Kevin Schwarz, Jennifer Moran, Nate Bachmeier Издательство: O’Reilly Media, Inc. Год: 2025 Страниц: 394 Язык: английский Формат: epub Размер: 10.1 MB
To ensure that 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 applications will be too. With this practical guide, software, DevOps, and cloud engineers will learn how to implement resilient designs and configurations in the cloud using hands-on independent labs.
Authors Kevin Schwarz, Jennifer Moran, and Dr. Nate Bachmeier from AWS teach you how to build cloud applications that demonstrate resilience with patterns like back off and retry, multi-Region failover, data protection, and circuit breaker with common configuration, tooling, and deployment scenarios. 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:
Configure and deploy AWS services using resilience patterns Implement stateless microservices for high availability Consider multi-Region designs to meet business requirements Implement backup and restore, pilot light, warm standby, and active-active strategies Build applications that withstand AWS Region and Availability Zone impairments Use chaos engineering experiments for fault injection to test for resilience Assess the trade-offs when building resilient systems, including cost, complexity, and operational burden
Python has a useful feature called a “virtual environment,” which helps you avoid compatibility issues when loading dependencies for a project. We suggest using a Python virtual environment with the projects for this book to avoid “dependency collisions” where other Python projects you may be working on require different dependency versions.
If you plan to run the microservice resilience lessons in this book, you’ll need several other third-party software frameworks. Those include Python packages, which will be installed in your virtual environment so that they will not affect other projects you may be running. Additionally, you’ll need a few other command-line tools to run the lessons from your terminal. You’ll install the AWS CLI using your operating system’s package management system. The CLI commands in this book are written for AWS CLI version 2.
Typically, when developing microservices, each team owning a service can take a polyglot approach; they can choose the programming language and tools of choice. This means that creating a Python virtual environment would be done on a per-service basis. To simplify working through the lessons in this book, create your virtual environment at the root of the book project. This will make it easier to jump around between chapters once you’ve activated your virtual environment. However, if you’d like to create separate virtual environments for each module, feel free to do so.
You’ll need to install the Node.js package manager to install or update the CDK to install packages, and test the web portal that will be introduced in later lessons. You can update to the latest or install Node.js and npm for your OS by visiting the node and npm site. If you have not used Node.js and npm before, the file that configures dependencies and commands is the package.json file. When you are working in a project directory with a package.json file, the command npm install will install the dependencies defined for that project. Additionally, in the file, you’ll see a section called scripts. These are commands you can run for the project. Common examples are npm run dev to run a development server or npm run build to package an application for deployment.
The brokerage single-page web application (SPA) is built with the popular open source responsive web framework Vue.js. The lessons use Vite for local testing and packaging your web application for deployment. The Vite tooling will be installed when you run npm install, via the package.json dependencies you’ll install with npm in the frontend chapters. The brokerage web application is styled to work both in a desktop browser and in a mobile phone browser. We chose Bootstrap to simplify CSS styling, building forms, and designing standard UI components. You can choose to install Bootstrap locally with npm; however, for simplicity and to keep the application light, we reference Bootstrap over a public CDN link.
One key area where applications fail is when they are exposed to an excessive load. We have chosen to use Artillery.io, a load testing framework that is focused on HTTP endpoints and is straightforward to configure and install. An alternative Python open source load testing tool we like is Locust.io. Artillery.io tests are defined in a YAML file, and any load tests you need to run in the lessons in this book have already been defined for you.
You will need an Amazon Route 53 domain for the hands-on exercises in Chapter 7. To deploy these components, activate your Python virtual environment and set environment variables for the CDK solution. Before doing so, be sure to review the env.sh file for the primary and secondary regions you’ve selected. You must also enter your domain name (if you have one), confirm that you have the required permissions, and use the correct AWS account.
In this chapter, you will deploy and test a synchronous microservice that reliably executes trades for the AvailableTrade application. After deploying the prebuilt service, you will incrementally apply native Amazon Elastic Container Service (Amazon ECS) and Amazon Aurora PostgreSQL resilience features, and apply software development resilience patterns. Working through these scenarios, you’ll learn to identify and mitigate common failure modes. In each lesson, you’ll induce distributed systems failures and then apply mitigations to either prevent failure modes or quickly self-heal and recover from them. You’ll gain a thorough understanding of Amazon ECS and Amazon Aurora PostgreSQL built-in resilience features as well as how to implement code-level design patterns to achieve high availability.
Preface I. Foundations 1. Introduction 2. Prepare Your Working Environment II. Reliable Trading Portal 3. Frontend Web Application 4. Serverless Account Open API 5. Containerized Trade Stock API 6. Integrated AvailableTrade Frontend with APIs 7. When Recovery Is Required III. Discovering Trading Opportunities 8. Real-Time Market Data Analytics 9. Building Reliable News Feed Ingestion and Search APIs 10. Building Resilient Multi-Region Architectures 11. Putting It All Together Index
Внимание
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.