🦒
System Analyst | Knowledge base
  • Введение
  • Soft skills
    • 📍Продукт
      • Роли в IT продукте
        • Системный аналитик (SA)
        • Бизнес-аналитик (BA)
        • SA vs BA
        • 📎Другие аналитики
      • Жизненный цикл продукта
      • Методологии разработки
        • Waterfall
        • Agile
          • Scrum
          • Kanban
      • 📎Целеполагание
        • SMART
        • Матрица Эйзенхауэра
        • RICE
        • 🔒HADI
    • 📍Требования
      • Классификация требований
        • Уровень: Бизнес
        • Уровень: Пользователь
          • Use case
          • User story
          • 📎Job story
        • Уровень: Продукт
          • Функциональные требования
          • Нефункциональные требования
      • Качества требований
      • Методы сбора требований
      • Техническое задание (ТЗ)
  • Hard skills
    • 📍Базы данных
      • Реляционные
        • Транзакции
          • 🔒CAP
        • Нормальные формы
        • SQL
          • DML
          • DDL/DCL/TCL
          • 📎Представления VIEW
        • Констрейты
        • 📎Типы данных
        • 🔒Middle+
          • Особенности работы с конкертными реляционными БД
      • Нереляционные
        • Примеры использования
        • 🔒Middle+
          • Колоночные
            • Сlickhouse
          • Ключ-значение
          • Матричные
          • Документо-ориентированные
          • Графовые
            • JanusGraph | Neo4j etc
      • Масштабирование БД
      • Оптимизация БД
        • 📎Типы индексов
        • 📎Уникальные индексы
        • 🔒Анатомия плана запроса
      • 📎Какую СУБД выбрать
      • 📎Хранение и анализ данных
        • ETL
        • DWH
          • DWH vs Data Lake vs Data Mart
        • OLAP
          • OLAP vs OLTP
        • BI-аналитика
    • 📍Интеграции
      • Форматы данных
        • JSON + JSON Schema
          • 🔒AVRO
        • JSON vs XML
      • Виды интеграций
        • Синхронное взаимодействие
          • REST
            • RESTful принципы
              • Отсутствие состояния (Авторизация)
                • 🔒OAuth / OpenID Connect
              • Кеширование
              • Единообразие интерфейса (CRUD)
                • Запрос/ответ
              • 🔒Cтепень зрелости REST API
            • Проектирование API
            • 📎Асинхронный REST
          • SOAP
            • XSD
            • WSDL
          • REST vs SOAP
        • Асинхронное взаимодействие
          • Kafka
          • RabbitMQ
          • Kafka vs RabbitMQ
          • ESB
          • gRPC
            • Правила proto-контракта
            • Protobuf vs JSON
            • Сравнительная таблица
          • Другое
          • 🔒WebSocket API
        • Sync vs Async
      • 🔒Middle+
        • Stateful vs Stateless
        • Apache Flink
        • оркестрация и хореография
    • 📍Проектирование
      • Архитектура
        • Монолит
        • Микросервисы
          • Паттерны реализации
        • Монолит vs Микросервисы
        • 🔒Middle+
          • Бессерверная
          • Сервис-ориентированная (SOA)
          • Другое
      • Нотации и диаграммы
        • UML
          • Диаграмма классов
          • Диаграмма последовательности
            • Фреймы
          • Диаграмма прецедентов (use case)
          • 🔒Middle+
            • Диаграмма деятельности/активности
            • Диаграмма состояний
        • BPMN
          • Основные элементы
        • BPMN vs UML
        • ERD
        • 📎IDEF0
      • Прототипирование
        • Figma vs Axure
      • Мониторинг
        • Логирование
        • Метрики
        • Алерты
        • 🔒Инструменты
          • Grafana
          • Prometheus
          • ELK
            • Elasticsearch
            • Logstash
            • Kibana
      • 🔐Системный дизайн
    • 📎DevOps for SA
      • Основы сетей
        • OSI
        • TCP/IP
        • HTTP
        • DNS
      • Git (VCS)
        • GitHub vs GitLab
      • Развертывание приложений
        • CI/CD
        • 🔒Middle+
          • Виртуализация/контеризация
            • ✍️Docker
            • Kubernetes
              • ✍️Openshift
      • Cloud Native
        • Сервисы облачных вычислений
        • Cloud-native app vs Traditional app
      • Командная строка
    • 📎QA for SA
      • Postman | Insomnia
      • Swagger
      • Верификация vs Валидация
      • Идентификация/Аутентификация/Авторизация
    • 📎PM for SA
      • Метрики
        • Метрики привлечения
        • Метрики вовлечённости
          • ARPU
          • LTV
          • NPV
          • ROI
          • NPS
      • Прокси метрики
      • Дерево метрик
      • Фреймворки
      • Юнит-экономика
      • Модель Кано
  • Другое
    • Литература
    • Советы по составлению резюме
    • Общие вопросы на собеседовании
    • Вопросы которые надо задать интервьюеру
  • Контакты
Powered by GitBook
On this page
  • Паттерны декомпозиции на микросервисы
  • Паттерны управления данными в микросервисной архитектуре
  • Паттерны коммуникации микросервисов
  • Паттерны обнаружения сервисов в микросервисной архитектуре
  • Паттерны повышения отказоустойчивости

Was this helpful?

  1. Hard skills
  2. Проектирование
  3. Архитектура
  4. Микросервисы

Паттерны реализации

Паттерны декомпозиции на микросервисы

  1. Decompose By Business Capability - это шаблон микросервиса, основанный на разделении системы на модули или компоненты, каждый из которых отвечает за определенную бизнес-возможность. Этот подход позволяет уменьшить сложность системы, улучшить ее масштабируемость и обеспечить гибкость в изменении требований бизнеса.

  2. Decompose By Subdomain - этот шаблон микросервиса предполагает разделение системы на множество подсистем, каждая из которых соответствует определенной предметной области или домену. Этот подход помогает улучшить модульность системы, уменьшить сложность и улучшить производительность. Шаблон основан на концепциях предметно-ориентированного проектирования ().

Паттерны управления данными в микросервисной архитектуре

  1. Database Per Service - это шаблон микросервиса, в котором каждый сервис имеет свою собственную базу данных, что позволяет улучшить масштабируемость, доступность и изоляцию данных. Этот шаблон подходит для систем со множеством сервисов и большим объемом данных, требующих высокой производительности и гибкости.

  2. Command Query Responsibility Segregation (CQRS) - это шаблон микросервисов для разделения команд (Commands) и запросов (Queries). Он разделяет процессы обработки команд, изменяющих состояние системы, и процессов обработки запросов, возвращающих текущее состояние системы. CQRS позволяет увеличить масштабируемость и гибкость системы, а также улучшить ее производительность и удобство использования.

  3. Event Sourcing - это шаблон архитектуры микросервисов, основанный на сохранении и обработке хронологического списка событий, которые приводят к изменению состояния системы. Он используется в системах, где требуется высокая степень гибкости и возможности восстановления состояния, а также для реализации CQRS (Command Query Responsibility Segregation) и Event-based Architectures.

  4. Saga Pattern - это шаблон архитектуры микросервисов, используемый для обработки сложных бизнес-транзакций, состоящих из нескольких независимых шагов. Он координирует выполнение шагов в нужной последовательности и обрабатывает возникающие ошибки, гарантируя тем самым успешное завершение всей транзакции.

Паттерны коммуникации микросервисов

  1. API Gateway - это шлюз, который направляет запросы от внешних приложений или сервисов к внутренним API. Он обеспечивает централизованную обработку всех входящих запросов, позволяя микросервисам не отвлекаться на управление доступом. API Gateway также может кэшировать ответы сервисов для повышения производительности и безопасности системы.

  2. Backends for Frontends (BFF) - это шаблон микросервиса, предназначенный для оптимизации взаимодействия между интерфейсами (фронтендами) и внутренними сервисами. BFF обеспечивает единую точку доступа для фронтендов, упрощает интеграцию с различными бэкендами и улучшает масштабируемость системы в целом.

Паттерны обнаружения сервисов в микросервисной архитектуре

  1. Service Registry - это шаблон проектирования архитектуры микросервисов, который используется для регистрации и обнаружения сервисов в системе. Он предоставляет механизм для хранения информации о доступных сервисах, их местоположении и поддерживаемых операциях. Service Registry позволяет другим микросервисам находить нужные им сервисы и взаимодействовать с ними, уменьшая сложность и повышая масштабируемость системы.

Паттерны повышения отказоустойчивости

  1. Circuit Breaker - шаблон проектирования архитектуры микросервисов, предназначенный для управления ошибками и обеспечения стабильности системы. Он позволяет изолировать группы зависимых операций, чтобы предотвратить распространение ошибок между сервисами. Circuit Breaker анализирует количество и длительность сбоев в определенном сервисе и автоматически переключает его в режим “break” или “reset”, регулируя таким образом поток запросов к ненадежным сервисам.

  2. Bulkhead Pattern - шаблон микросервиса, который разделяет систему на логические разделы (модули или компоненты) и обеспечивает изоляцию сбоев между ними. Он гарантирует, что в случае сбоя одного модуля другие продолжат работать, предотвращая тем самым распространение ошибок и обеспечивая стабильность системы.

Источники:

PreviousМикросервисыNextМонолит vs Микросервисы

Last updated 1 year ago

Was this helpful?

(подробнее: ru)

(подробнее: eng)

📍
https://cloud.vk.com/blog/26-osnovnyh-patternov-mikroservisnoj-razrabotki
https://microservices.io/patterns/index.html