Перейти к содержанию

Шаблон “Микросервисная архитектура”

Pasted image 20210829152253.png
Микросервисная архитектура — это архитектурный стиль, при котором представление реализации структурируется в виде набора компонентов — исполняемых или WAR файлов. Компоненты — это сервисы, коннекторы — коммуникационные протоколы. Каждый сервис имеет свою архитектуру логического представления (например, шестигранную архитектуру).
На рисунке — пример микросервисной архитектуры, где сервисы соответствуют бизнес-функциям, коннекторы — REST API или асинхронный обмен сообщениями.

Важной характеристикой микросервисной архитектуры является слабое зацепление

достоинства

  • Continuos delivery, Continuos deploy — возможность непрерывных доставки и развертывания
    • Обеспечивает уровень тестируемости — маленькие сервисы проще покрывать автоматическими тестами
    • Обеспечивает уровень развертываемости — каждый сервис можно развернуть независимо от других
    • Позволяет сделать команды автономными
  • Небольшая кодовая база каждого сервиса
  • Независимое масштабирование по осям X и Z куба масштабирования, кроме того — каждый компонент можно развернуть на оптимальном для компонента оборудовании
  • Лучшая изоляция неполадок
  • Возможность экспериментировать и внедрять новые технологии

недостатки

  • Сложно подобрать подходящий набор сервисов — нет алгоритма разбиения системы на сервисы — каждый раз нужно всё продумывать с нуля. Также, если разделить систему неправильно — можно получить распределенный монолит — систему, компонеты которой необходимо деплоить вместе. Такой системе присущи недостатки как монолита, так и микросервисов
  • Распределенные системы гораздо сложнее — сложнее реализация взаимодействия, сложнее реализация согласованности данных, сложнее написать тесты, покрывающие несколько сервисов, сложнее администрирование
  • Развертывание фич, охватывающих несколько сервисов, требует тщательной координации нескольких команд
  • Нетривиальность решения о переходе — непонятно, в какой момент надо переходить от монолита к микросервисам

Ссылки

https://microservices.io/patterns/microservices.html


Последнее обновление : 21 июня 2023 г.
Дата создания : 13 июля 2022 г.

Комментарии

Комментарии