22 базовых шаблона проектирования облачных систем
Шаблоны обеспечения доступа
1. Предохранитель (Circuit Breaker)
Останавливает сервис от повторных попыток выполнения неудачной операции.
2. Повтор (Retry)
Позволяет приложению обрабатывать временные сбои при попытке подключения к сервису или сетевому ресурсу.
3. Регулирование нагрузки (Throttling)
Контролирует потребление ресурсов, используемых экземпляром приложения, отдельным клиентом или целым сервисом.
4. Мониторинг работоспособности (Health Endpoint Monitoring)
Отслеживает состояние приложения и его компонентов.
5. Выравнивание нагрузки на основе очереди (Queue-Based Load Leveling)
Использует очередь как буфер между задачей и сервисом, который она вызывает.
6. Супервизор планировщика агентов (Scheduler Agent Supervisor)
Координирует набор действий в распределённом наборе сервисов и других удалённых ресурсов.
Шаблоны управления данными
7. Кэширование по требованию (Cache-Aside)
Загружает данные по запросу из хранилища данных в кэш.
8. CQRS
Разделяет операции чтения данных от операций обновления данных с помощью отдельных интерфейсов.
9. Event Sourcing
Использует хранилище только для добавления записей, чтобы фиксировать полную серию событий, описывающих действия над данными в домене.
10. Materialized View
Создаёт предварительно заполненное представление данных в средах, где исходные данные не подходят для запросов.
11. Шардинг (Sharding)
Разделяет хранилище данных на набор горизонтальных разделов или шардов.
12. Valet Key
Использует токен или ключ, который предоставляет клиентам ограниченный прямой доступ к определённому ресурсу или сервису.
Шаблоны проектирования и реализации
13. Посредник (Ambassador)
Использует вспомогательный сервис, который отправляет сетевые запросы от имени потребительского сервиса или приложения.
14. Anti-corruption Layer
Реализует фасад между новыми и устаревшими приложениями.
15. Бэкенды для фронтендов (BFF)
Создаёт отдельные бэкенд-сервисы для использования конкретными фронтенд-приложениями или интерфейсами.
16. Консолидация вычислительных ресурсов (Compute Resource Consolidation)
Объединяет несколько задач или рабочих нагрузок на меньшее количество вычислительных ресурсов.
17. Внешнее хранилище конфигурации (External Configuration Store)
Перемещает информацию о конфигурации из пакета развёртывания приложения в централизованное хранилище.
18. Gatekeeper
Защищает бэкенд-сервисы и API от запросов из разных источников (CORS), не имеющих действительных токенов аутентификации.
19. Sidecar
Развёртывает компоненты приложения в отдельный процесс или контейнер для обеспечения изоляции и инкапсуляции.
20. Strangler Fig
Постепенно мигрирует устаревшую систему путём постепенной замены определённых функциональных элементов новыми приложениями и сервисами.
Шаблоны обмена сообщениями
21. Конкурирующие потребители (Competing Consumers)
Позволяет нескольким параллельным потребителям обрабатывать сообщения, полученные по одному каналу обмена сообщениями.
22. Очередь приоритетов (Priority Queue)
Обрабатывает сообщения на основе их приоритета.
Post #2129
1.73K
- ❤ 6
- 💘 3
- 🔥 1
- 👏 1