Шаблоны устойчивостиResiliency patterns

Устойчивость — это способность системы надлежащим образом обрабатывать сбои и восстанавливаться после них.Resiliency is the ability of a system to gracefully handle and recover from failures. Характер облачного размещения увеличивает вероятность возникновения временных и постоянных проблем: приложения здесь часто являются мультитенантными, используют общие службы платформы, конкурируют за ресурсы и пропускную способность, обмениваются данными через Интернет и выполняются на стандартном оборудовании.The nature of cloud hosting, where applications are often multi-tenant, use shared platform services, compete for resources and bandwidth, communicate over the Internet, and run on commodity hardware means there is an increased likelihood that both transient and more permanent faults will arise. Для обеспечения устойчивости важно обнаруживать сбои, а также быстро и эффективно выполнять восстановление после них.Detecting failures, and recovering quickly and efficiently, is necessary to maintain resiliency.

ШаблонPattern СводкаSummary
Распределительный блокBulkhead Изоляция элементов приложения в пулах, чтобы в случае сбоя одного элемента остальные продолжали функционировать.Isolate elements of an application into pools so that if one fails, the others will continue to function.
Автоматическое выключениеCircuit Breaker Обработка ошибок при подключении к удаленной службе или ресурсу, устранение которых может занять непредсказуемое количество времени.Handle faults that might take a variable amount of time to fix when connecting to a remote service or resource.
Компенсирующие транзакцииCompensating Transaction Отмена работы с выполнением серии шагов, которые вместе определяют согласованную в конечном счете операцию.Undo the work performed by a series of steps, which together define an eventually consistent operation.
Мониторинг конечных точек работоспособностиHealth Endpoint Monitoring Внедрение в приложение функциональных проверок, к которым внешние средства могут регулярно получать доступ через предоставленные конечные точки.Implement functional checks in an application that external tools can access through exposed endpoints at regular intervals.
Выбор лидераLeader Election Метод координации действий для коллекции экземпляров, объединенных совместной задачей в распределенном приложении: один экземпляр выбирается в качестве лидера, который отвечает за управление другими экземплярами.Coordinate the actions performed by a collection of collaborating task instances in a distributed application by electing one instance as the leader that assumes responsibility for managing the other instances.
Выравнивание нагрузки на основе очередейQueue-Based Load Leveling Очередь выполняет роль буфера между задачей и службой, которую она вызывает, позволяя сгладить кратковременные всплески нагрузки.Use a queue that acts as a buffer between a task and a service that it invokes in order to smooth intermittent heavy loads.
Повторные попыткиRetry Механизм обработки ожидаемых временных сбоев, при котором приложение повторно подключается к службе или сетевому ресурсу, обращение к которым завершилось сбоем, не прерывая потока событий.Enable an application to handle anticipated, temporary failures when it tries to connect to a service or network resource by transparently retrying an operation that's previously failed.
Планировщик, агент, контролерScheduler Agent Supervisor Координируйте ряд действий в распределенном наборе служб и других удаленных ресурсов.Coordinate a set of actions across a distributed set of services and other remote resources.