Micro services and frontends
- Преимущества
- Организационная гибкость
- Свобода выбора технологического стека
- Удобство управления кодовой базой
- Управляемое масштабирование
- Отказоустойчивость
- 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
- Тесная связь между разными частями приложения
- Согласованность в разных частях приложения и последовательный пользовательский опыт
- Слажные требования к управлению состояниями
- API
- Стратегии
- Вертикальная нарезка
- Автономность команд
- Изоляция
- Методы интеграции
- Build time
- Упращенное внедрение
- Тесное взаимодействие функций и компонентов
- Прозводительность
- Run time
- Независимость внедрения модулей
- Динамическо обновление модулей(Разработка)
- Масштабирование
- Build time
- Strangler Fig
- Преимущества
- Постепенная замена монолита
- Снижение рисков
- Инкрементная доствака новых функций
- Решение проблемы технического долга
- Реализация
- Определение доменной области
- Техники
- Domain-Driven Design
- Области
- Домен
- Поддомен
- Контекст
- Проектирование
- Стратегическое
- Bounded Context
- Context Map
- Тактическое
- Entities
- Value Objects
- Aggregates
- Repositories
- Services
- Стратегическое
- Выделение доменов
- Анализ бизнеса и требований
- Выделение доменов
- Разделение на поддомены
- Определение контекстов
- Создание контекстных карт
- Итеративное уточнение
- Области
- Технический анализ
- Анализ производительности
- 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
- MoSCoW
- Техники
- Проектирование и разработка новых сервисов
- Мониторинг и верификация
- Application perfomance monitoring
- Централизованное логирование
- Мониторинг инфраструктуры
- A/B-тестирование
- Автоматизированное тестирование
- Переклюяение трафика
- Маршутизация
- 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
- Стратегии
- Устойчивость к сбоям
- Масштабируемость
- Репликация
- Кэширование
- Шардирование и партиционирование
- Партиционирование
- Вертикальное
- Горизонтальное
- Шардирование
- Хэшированное
- Диапазонное
- Динамическое
- Геошардинг
- Маршрутизация
- Средствами СУБД
- Router-сервис
- На стороне клиента
- Партиционирование
- Безопасность
- Мониторинг и наблюдение
- Хранение данных
- API-менеджмент
- Тестирование и валидация
- DevOps-практики
- Версионирование и совместимость
- Life Cicle
- Проектирование
- Разработка
- Тестирование
- Развёртывание
- Мониторинг и поддержка
- Масштабирование
- Обновление и улучшение
- Вывод из эксплуатации
- Application patterns
- Database per Service
- Service per Team
- Event Sourcing
- CQRS
- Saga
- Типы реализации
- Orchestration
- Сложные бизнес-процессы
- Потребность в централизованном управлении
- Транзакционное согласование
- Сложная бизнес-логик
- Choreography
- Простые взаимодействия
- Независимые микросервисы
- В приоритете гибкость и масштабируемость
- Событийно-ориентированная архитектура
- Orchestration
- Обрабока ошибок и компенсация
- Компенсационные транзакции
- Повторные попытки
- Тайм-ауты и дедлайны
- Circuit Breaker
- Событийно-ориентированная обработка ошибок
- Системы мониторинга и алертов
- Реализация
- Анализ бизнес-процесса и определение шагов Saga
- Проектирование микросервисов
- Управление состоянием и взаимодействием микросервисов
- Реализуйте действия и компенсирующие действия
- Логирование и мониторинг
- Тестирование
- Типы реализации
- Application infrastructures patterns
- Distributed Tracing
- Audit Logging
- API Gateway
- Infrastructures patterns
- Service Discovery,
- Service Mesh
- Service Registry