Micro services and frontends
- Преимущества
- Организационная гибкость
- Свобода выбора технологического стека
- Удобство управления кодовой базой
- Управляемое масштабирование
- Отказоустойчивость
- Time to Market
- Не подходящее решение
- Простое приложение
- Ограниченная функциональность
- Ограниченный ресурс разработки
- Тесносвязанные компоненты
- Minimum Viable Produrct или Proof Of Concept
- Повышенная требовательность к производительности
- Организационные и культурные ограничения комании
- Недостаточность инфраструктуры, процессов и инструментов CI/CD
- Компоненты
- Microfrontend-модули
- Слой композиции
- Гибридная
- Серверная композиция
- Reverce Proxy(Nginx? HAProxy)
- Backend for Frontend(BFF)
- Подготовка данных под клиента
- Упрощение логики клиента
- Увеличение производительности
- Повышение безопасности
- API Composer
- Клиентская композиция
- 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
- Граицы сервисов
- Методы взаимодействия
- Синхронное взаимодействие
- RESTful
- GRPC
- OpenAPI
- Асинхронное взаимодействие
- Event-Driven Architecture
- Анализ домена
- Описание доменной модели
- Декомпозиция функциональности
- Моделирование потоков событий
- Моделирование событий
- Выбор брокера событий
- Реализация и мониторинг
- Тестирование и валидация
- AsyncAPI
- Event-Driven Architecture
- Синхронное взаимодействие
- Управление данными
- Стратегии обеспечения согласованности данных
- Конечная согласованность
- Строгая согласованность
- Партицирование данных
- Распределённые транзакции
- Протокол двухфазной фиксации (2 Phase Commit, 2PC)
- Паттерн Saga
- Eventual Consistency
- Стратегии обеспечения согласованности данных
- Стратегии развёртывания
- 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
- Проектирование
- Разработка
- Тестирование
- Развёртывание
- Мониторинг и поддержка
- Масштабирование
- Обновление и улучшение
- Вывод из эксплуатации
- Parallel Run
- Application patterns
- Database per Service
- Service per Team
- Event Sourcing
- Stream Processing
- Синхронная микропакетная обработка
- Асинхронная микропакетная обработка
- Streaming-модель
- Модель непрерывного обновления
- Message Queueing
- Publish/Subscribe
- CQRS
- Commands
- Queries
- Реализация
- Определение команд и запросов
- Реализация моделей данных
- Реализация обработчиков команд и запросов
- Доработка систем-потребителей для возможности интеграции с различными компонентами для отправки запросов и команд
- Saga
- Типы реализации
- Orchestration
- Сложные бизнес-процессы
- Потребность в централизованном управлении
- Транзакционное согласование
- Сложная бизнес-логик
- Choreography
- Простые взаимодействия
- Независимые микросервисы
- В приоритете гибкость и масштабируемость
- Событийно-ориентированная архитектура
- Orchestration
- Обрабока ошибок и компенсация
- Компенсационные транзакции
- Повторные попытки
- Тайм-ауты и дедлайны
- Событийно-ориентированная обработка ошибок
- Системы мониторинга и алертов
- Реализация
- Анализ бизнес-процесса и определение шагов Saga
- Проектирование микросервисов
- Управление состоянием и взаимодействием микросервисов
- Реализуйте действия и компенсирующие действия
- Логирование и мониторинг
- Тестирование
- Типы реализации
- Transactional outbox
- Transaction log tailing
- Application infrastructures patterns
- Distributed Tracing
- Audit Logging
- API Gateway
- Types
- Монолитный
- Распределенный
- Многослойный
- Serveless
- Functions
- Централизация маршрутизации запросов
- Управление аутентификацией и авторизацией
- Балансировка нагрузки и распределение трафика
- Обеспечение безопасности
- Кэширование запросов
- Types
- Front-to-back
- Client pull
- Patterns
- Short polling
- Long polling
- Implementations
- REST
- GraphQL
- Patterns
- Server push
- Implementations
- WebSockets
- Server sent events
- GraphQL Subscriptions
- Implementations
- Client pull
- Back-to-back
- Patterns
- Request-Response
- Publish-Subscribe
- Implementations
- REST
- GraphQL
- gRPC
- Patterns
- Infrastructures patterns
- Service Discovery,
- Service Mesh
- Service Registry
- The Twelve-Factor App
- Codebase
- Dependencies
- Config
- Backing Services
- Build, Release, Run
- Processes
- Port Binding
- Concurrency
- Disposability
- Dev/Prod Parity
- Logs
- Admin Processes
- Lightweight microservices
- Минимализм
- Независимость
- Быстрое время запуска
- Эффективное использование ресурсов
- Упрощение зависимостей
- Обеспечение изоляции
- Документирование и автоматизация
- DevOps
- Pipeline as Code
- Повторяемость
- Гибкость
- Версионирование
- Прозрачность
- Масштабируемость
- Подверженность ошибкам
- Infrastructure as Code
- CI/CD
- Continuous Integration
- Continuous Delivery
- Continuous Deployment
- Pipeline as Code