21 паттерн микросервисной архитектуры за 5 минут!
BFF (Backend for Frontend): Создание отдельных бэкендов для различных фронтендов (например, мобильного приложения и веб-приложения), чтобы оптимизировать взаимодействие и улучшить производительность. Strangler Fig: Постепенная замена старой монолитной системы на новую микросервисную архитектуру, при этом новые функции добавляются в виде микросервисов, а старые постепенно выводятся из эксплуатации. Anti-Corruption Layer: Слой, который изолирует микросервисы от внешних систем или старых систем, предотвращая распространение нежелательных зависимостей и сложностей. Saga: Паттерн управления распределенными транзакциями, где каждая операция в транзакции выполняется как отдельный шаг, а в случае ошибки выполняются компенсирующие действия. Database Decomposition: Разделение монолитной базы данных на несколько баз данных, каждая из которых обслуживает отдельный микросервис, чтобы улучшить масштабируемость и независимость. Read Replica: Использование реплик базы данных для распределения нагрузки чтения, что улучшает производительность и доступность. API Gateway: Центральная точка входа для всех клиентских запросов, которая маршрутизирует их к соответствующим микросервисам, а также может выполнять аутентификацию, авторизацию, логирование и другие функции. CQRS (Command Query Responsibility Segregation): Разделение операций чтения и записи в системе, что позволяет оптимизировать производительность и масштабируемость. Observer: Паттерн, при котором один объект (наблюдатель) подписывается на события другого объекта (наблюдаемого) и получает уведомления о его изменениях. Circuit Breaker: Паттерн, который предотвращает бесконечные попытки выполнения неудачных операций, временно блокируя вызовы к нестабильным сервисам. Backpressure: Механизм управления потоком данных, который предотвращает перегрузку системы, регулируя скорость передачи данных между компонентами. Write-Through/Write-Behind: Write-Through: данные сначала записываются в кэш, а затем в основную базу данных. Write-Behind: данные сначала записываются в кэш, а затем асинхронно в основную базу данных. Cache-Aside: Паттерн, при котором приложение сначала проверяет кэш перед обращением к базе данных. Если данные отсутствуют в кэше, они загружаются из базы данных и добавляются в кэш. MVC (Model-View-Controller): Архитектурный паттерн, разделяющий приложение на три компонента: модель (данные), представление (интерфейс пользователя) и контроллер (логика). Repository: Паттерн, который абстрагирует доступ к данным, предоставляя интерфейс для выполнения операций с данными, что упрощает тестирование и замену источников данных. Blackboard: Паттерн, при котором несколько компонентов взаимодействуют через общую "доску", на которой размещаются данные и результаты вычислений. Bulkhead: Паттерн, который изолирует различные части системы друг от друга, чтобы предотвратить распространение отказов и улучшить устойчивость. Proxy: Паттерн, который предоставляет суррогат или заместитель для другого объекта, контролируя доступ к нему. Adapter: Паттерн, который позволяет объектам с несовместимыми интерфейсами работать вместе, преобразуя интерфейс одного объекта в интерфейс, ожидаемый другим объектом. Event Carrying State Transfer: Паттерн, при котором события содержат состояние, необходимое для обработки, что позволяет уменьшить количество запросов к базе данных. Least Privilege Access: Принцип минимальных привилегий, который ограничивает доступ пользователей и сервисов только к тем ресурсам, которые необходимы для выполнения их задач, что повышает безопасность системы.
BFF (Backend for Frontend): Создание отдельных бэкендов для различных фронтендов (например, мобильного приложения и веб-приложения), чтобы оптимизировать взаимодействие и улучшить производительность. Strangler Fig: Постепенная замена старой монолитной системы на новую микросервисную архитектуру, при этом новые функции добавляются в виде микросервисов, а старые постепенно выводятся из эксплуатации. Anti-Corruption Layer: Слой, который изолирует микросервисы от внешних систем или старых систем, предотвращая распространение нежелательных зависимостей и сложностей. Saga: Паттерн управления распределенными транзакциями, где каждая операция в транзакции выполняется как отдельный шаг, а в случае ошибки выполняются компенсирующие действия. Database Decomposition: Разделение монолитной базы данных на несколько баз данных, каждая из которых обслуживает отдельный микросервис, чтобы улучшить масштабируемость и независимость. Read Replica: Использование реплик базы данных для распределения нагрузки чтения, что улучшает производительность и доступность. API Gateway: Центральная точка входа для всех клиентских запросов, которая маршрутизирует их к соответствующим микросервисам, а также может выполнять аутентификацию, авторизацию, логирование и другие функции. CQRS (Command Query Responsibility Segregation): Разделение операций чтения и записи в системе, что позволяет оптимизировать производительность и масштабируемость. Observer: Паттерн, при котором один объект (наблюдатель) подписывается на события другого объекта (наблюдаемого) и получает уведомления о его изменениях. Circuit Breaker: Паттерн, который предотвращает бесконечные попытки выполнения неудачных операций, временно блокируя вызовы к нестабильным сервисам. Backpressure: Механизм управления потоком данных, который предотвращает перегрузку системы, регулируя скорость передачи данных между компонентами. Write-Through/Write-Behind: Write-Through: данные сначала записываются в кэш, а затем в основную базу данных. Write-Behind: данные сначала записываются в кэш, а затем асинхронно в основную базу данных. Cache-Aside: Паттерн, при котором приложение сначала проверяет кэш перед обращением к базе данных. Если данные отсутствуют в кэше, они загружаются из базы данных и добавляются в кэш. MVC (Model-View-Controller): Архитектурный паттерн, разделяющий приложение на три компонента: модель (данные), представление (интерфейс пользователя) и контроллер (логика). Repository: Паттерн, который абстрагирует доступ к данным, предоставляя интерфейс для выполнения операций с данными, что упрощает тестирование и замену источников данных. Blackboard: Паттерн, при котором несколько компонентов взаимодействуют через общую "доску", на которой размещаются данные и результаты вычислений. Bulkhead: Паттерн, который изолирует различные части системы друг от друга, чтобы предотвратить распространение отказов и улучшить устойчивость. Proxy: Паттерн, который предоставляет суррогат или заместитель для другого объекта, контролируя доступ к нему. Adapter: Паттерн, который позволяет объектам с несовместимыми интерфейсами работать вместе, преобразуя интерфейс одного объекта в интерфейс, ожидаемый другим объектом. Event Carrying State Transfer: Паттерн, при котором события содержат состояние, необходимое для обработки, что позволяет уменьшить количество запросов к базе данных. Least Privilege Access: Принцип минимальных привилегий, который ограничивает доступ пользователей и сервисов только к тем ресурсам, которые необходимы для выполнения их задач, что повышает безопасность системы.



