Независимо доставляемые клиентские компоненты в браузере объединяются в единое целое. Здесь мы представляем веб-приложение как набор функций, за каждую из которых отвечает отдельная команда.

Что дают микрофронтенды?

  • Упрощение координации задач. Команды больше сфокусированы на своих предметных областях, у каждой чёткая зона ответственности. Например, одна команда может делать только блок меню, а другая только футер приложения.
  • Возможность независимого развертывания. Позволяет командам быть автономнее — отдельно развёртывать разные части приложения.
  • Сокращение цикла поставки. Каждая команда быстрее доставляет свой код в Продакшн. Более быстрая сборка и тесты, как нового функционала, так и исправления ошибок.
  • Снижение сложности. Отдельные части меньше и легче для понимания, чем большой сложный монолит.
  • Изоляция ошибок. Проще изолировать сбои в отдельных частях приложения, пока другие части работают. Если в одном сервисе ошибка, то она будет влиять на остальные меньше, чем если бы это был монолит.

С одной стороны микрофронтенды похожи на микросервисы, с другой — есть коренные отличия.

МикросервисыМикрофронтенды
Очень похожи в разработкеНе похожи в рантайме
Разные репозиторииОбщий DOM
Разные CI/CDОбщий event loop
Общая адресная строка
Общие globals (window)

Зрелость методов и технологий гораздо ниже, чем у микросервисов, потому что подход стал использоваться позже, чем в бэкенде. Но некоторые решения всё же появились.