Notes by Peter Galonza(Пётр Галонза)
GitHub Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Micro services and frontends

MicroFrontends

  • Преимущества
    • Организационная гибкость
    • Свобода выбора технологического стека
    • Удобство управления кодовой базой
    • Управляемое масштабирование
    • Отказоустойчивость
    • Time to Market
  • Не подходящее решение
    • Простое приложение
    • Ограниченная функциональность
    • Ограниченный ресурс разработки
    • Тесносвязанные компоненты
    • Minimum Viable Produrct или Proof Of Concept
    • Повышенная требовательность к производительности
    • Организационные и культурные ограничения комании
    • Недостаточность инфраструктуры, процессов и инструментов CI/CD
  • Компоненты
    • Microfrontend-модули
    • Слой композиции
      • Гибридная
      • Серверная композиция
        • Reverce Proxy(Nginx? HAProxy)
        • Backend for Frontend
          • Подготовка данных под клиента
          • Упрощение логики клиента
          • Увеличение производительности
          • Повышение безопасности
      • Клиентская композиция
        • Single SPA
        • Module Federation
    • Маршрутизация
      • Гибридная
      • На стороне сервера
      • На стороне клиента
      • Динамическая
    • Слой коммуникации
      • API
        • Взаимодействие исключительно с backend
        • Простой обмен данными
        • Высокие требование к производительности и масштабируемости
      • Паттерн Publisher/Subscriber
        • Отсутсвие прямых зависимостей
        • Еvent-driven architecture
        • Независимое внедрение
      • Global state or Shared state
        • Тесная связь между разными частями приложения
        • Согласованность в разных частях приложения и последовательный пользовательский опыт
        • Слажные требования к управлению состояниями
  • Стратегии
    • Вертикальная нарезка
    • Автономность команд
    • Изоляция
  • Методы интеграции
    • Build time
      • Упращенное внедрение
      • Тесное взаимодействие функций и компонентов
      • Прозводительность
    • Run time
      • Независимость внедрения модулей
      • Динамическо обновление модулей(Разработка)
      • Масштабирование

MicroServices

  • Strangler Fig
    • Преимущества
      • Постепенная замена монолита
      • Снижение рисков
      • Инкрементная доствака новых функций
      • Решение проблемы технического долга
    • Реализация
      1. Определение доменной области
        • Техники
          • Domain-Driven Design
          • Технический анализ
          • Анализ производительности
        • Приоритизация
          • Бизнес-влияние
          • Техническое влияние
          • Клиентское влияние
          • Методы
            • MoSCoW
              • Must have
              • Should have
              • Could have
              • Won’t have
            • Матрица Эйзенхауэра
              • Срочно и важно
              • Не срочно, но важно
              • Срочно, но не важно
              • Не срочно и не важно
            • Модель Кано
              • Must-Have
              • Performance
              • Excitement
              • Indifferent
              • Reverse
            • Weighted Scoring Model
            • ICE Scoring
              • Impact
              • Confidence
              • Effort, ICE
            • Value vs. Effort
            • Cost of Delay
      2. Проектирование и разработка новых сервисов
      3. Мониторинг и верификация
        • Application perfomance monitoring
        • Централизованное логирование
        • Мониторинг инфраструктуры
        • A/B-тестирование
        • Автоматизированное тестирование
      4. Переклюяение трафика
        • Маршутизация
          • Reverc proxy
          • API Gateway
          • Service Mesh
        • Anti-corruption layer (ACL)
          • Паттерны
            • Facade
            • Adapter
          • Преимущества
            • Изоляция от сложностей и проблем
            • Управление маршрутизацией запросо
            • Адапация днных под различные требования
            • Инкапсуляция монолитной системы
  • Road Map
    • Граицы сервисов
    • Методы взаимодействия
      • Синхронное взаимодействие
        • REST
        • GRPC
      • Асинхронное ывзаимодействие
        • Event-Driven Architecture
    • Управление данными
      • Стратегии обеспечения согласованности данных
        • Конечная согласованность
        • Строгая согласованность
        • Партицирование данных
      • Распределённые транзакции
        • Протокол двухфазной фиксации (2 Phase Commit, 2PC)
        • Паттерн Saga
    • Стратегии развёртывания
      • Blue-Green
      • Canary
      • Rolling
    • Балансировки нагрузки
      • Стратегии
        • Round Robin
        • Least Connections
        • IP Hash, Sticky sessions
        • Weighted Round Robin
        • Random distribution
        • Least Response Time
        • Least Bandwidth
      • Паттерны
        • API Gateway
        • Service Discovery
    • Устойчивость к сбоям
    • Масштабируемость
      • Репликация
      • Кэширование
      • Шардирование и партиционирование
        • Партиционирование
          • Вертикальное
          • Горизонтальное
        • Шардирование
          • Хэшированное
          • Диапазонное
          • Динамическое
          • Геошардинг
        • Маршрутизация
          • Средствами СУБД
          • Router-сервис
          • На стороне клиента
    • Безопасность
    • Мониторинг и наблюдение
    • Хранение данных
    • API-менеджмент
    • Тестирование и валидация
    • DevOps-практики
    • Версионирование и совместимость
  • Паттерн Saga
    • Типы реализации
      • Orchestration
        • Сложные бизнес-процессы
        • Потребность в централизованном управлении
        • Транзакционное согласование
        • Сложная бизнес-логик
      • Choreography
        • Простые взаимодействия
        • Независимые микросервисы
        • В приоритете гибкость и масштабируемость
        • Событийно-ориентированная архитектура
    • Обрабока ошибок и компенсация
      • Компенсационные транзакции
      • Повторные попытки
      • Тайм-ауты и дедлайны
      • Circuit Breaker
      • Событийно-ориентированная обработка ошибок
      • Системы мониторинга и алертов
    • Реализация
      • Анализ бизнес-процесса и определение шагов Saga
      • Проектирование микросервисов
      • Управление состоянием и взаимодействием микросервисов
      • Реализуйте действия и компенсирующие действия
      • Логирование и мониторинг
      • Тестирование