Фронтенд-приложения как микросервисы / Владимир Санников (Точка)

YOUTUBE · 23.11.2025 06:37

Ключевые темы и таймкоды

Введение

0:00
  • В видео рассказывается о создании микросервисов для приложения, которое использует несколько фреймворков (Angular, React, Vue).
  • Основная проблема - сложность управления кодом и релизами.

Решение

2:52
  • Идея создания микросервисов для каждого фреймворка, чтобы упростить управление кодом и релизами.
  • Использование нескольких фреймворков и поддержка разных версий вендеров.

Примеры решений

6:37
  • Проект "Мозаик" использует сервер-сайт рендеринг, но не подходит для большого количества команд и релизов.
  • "Сингл Спей" предлагает писать каждый микросервис как обычное приложение, но все равно все код собирает в единую сборку.
  • Автор видео предлагает свое решение, основанное на использовании ядра "Сингл Спей" для управления микросервисами.

Микросервисы и их взаимодействие

9:22
  • Микросервис - это самостоятельная сингл пейшн, решающая одну задачу пользователя.
  • Важно, чтобы каждый микросервис был автономным и не решал задачи команды целиком.

Схема работы микросервисов

11:22
  • Микросервисы общаются через посредника, который предоставляет общий интерфейс для всех приложений.
  • Посредник предоставляет общие компоненты и обеспечивает единообразное отображение для всех приложений.

Загрузчик сервисов и бандлы

15:22
  • Загрузчик сервисов загружает скрипты и метафайлы микросервисов из бандлов.
  • Бандлы содержат информацию о микросервисах, их версиях и флагах включения/выключения.
  • Каждый микросервис создает метафайл конфиг, содержащий имя юрай роуд и список файлов для загрузки.

Разработка микросервисов

17:37
  • Автор объясняет, как он разработал систему микросервисов, которая позволяет загружать и использовать различные сервисы в одном проекте.
  • Он использует загрузчик для загрузки конфигураций и файлов сервисов, а также роутер для маршрутизации запросов.

Общение между сервисами

19:36
  • Автор использует шину сообщений для общения между сервисами, которая позволяет отправлять команды и запросы.
  • Он также объясняет, как можно использовать секьюрси для ограничения доступа к шине.

Сборка и компиляция микросервисов

21:36
  • Автор рассказывает о процессе сборки и компиляции микросервисов, который включает в себя использование webpack и Yarn.
  • Он также объясняет, как можно предоставить вендеры для микросервисов и как они могут быть скомпилированы в бандл.

Разработка и взаимодействие с другими сервисами

26:36
  • Автор предлагает использовать репозитории для локальной разработки и отладки микросервисов.
  • Он также объясняет, как можно проверить взаимодействие между сервисами, используя шаблоны и ким-сити.

Версионирование и общие библиотеки

29:36
  • Версионирование файлов и использование общих библиотек для микросервисов.
  • Обсуждение важности строгой документации и стандартов для микросервисов.

Архитектура и роутинг

35:36
  • Создание второго приложения для интеграции с первым.
  • Использование роутера для управления маршрутами и ролями.

Шареный код и ошибки

39:36
  • Обсуждение управления и поддержки библиотек с общим кодом.
  • Отсутствие обратной связи для команд в микросервисах.
  • Консистентность данных на уровне бэк-энда.

Микросервисы и их взаимодействие

41:36
  • Микросервисы не могут контролировать друг друга, это делается людьми в процессе разработки.
  • Микросервисы могут быть связаны между собой зависимостями, которые могут быть критическими или не критическими.

Стили и асации

43:36
  • Стили и асации в основном находятся в CSS и не являются проблемой для микросервисов.
  • Решение проблемы с асациями - создание менеджера, который будет порождать папку с асациями и подменять пути.

Миграция разработчиков и тестирование

46:24
  • Миграция разработчиков из микросервиса в другой осуществляется через карусель.
  • Тестирование каждого приложения осуществляется самостоятельно, и тесты должны быть встроены в процесс разработки.

Архитектура и репозитории

50:09
  • Микросервисы решают одну задачу для пользователя, и каждая команда разработчиков имеет свою репозиторию.
  • Разработчики могут работать вместе или отдельно над разными компонентами.