Техническое задание: Оптимизация и доработка веб-приложения
Контекст проблемы
Существующее веб-приложение периодически "захлебывается" и становится недоступным под нагрузкой. Необходимо провести комплексный анализ, выявить "узкие места" в инфраструктуре и коде, а также реализовать улучшения для стабильной работы.
Существующий технологический стек
Frontend
- Фреймворк: Next.js 15.4 (App Router или Pages Router)
- Библиотека UI: React 18.3
- UI Компоненты: Radix UI (диалоги, селекты и др.)
- Управление состоянием/запросами: TanStack Query (React Query)
- Работа с формами: React Hook Form
- Стилизация: CSS Modules, Tailwind CSS или Styled Components (требуется анализ кода)
Backend
- Фреймворк: NestJS (Node.js/TypeScript)
- База данных: PostgreSQL 16.2
- ORM: Prisma
Инфраструктура
- Контейнеризация: Docker & Docker Compose
- Прокси-сервер: Caddy
- Операционная система: Linux
Основные задачи
Задача 1: Диагностика и устранение проблем производительности
- Провести аудит производительности frontend и backend частей приложения.
- Проанализировать логи, метрики и нагрузку на серверах.
- Выявить причины "захлебывания" и отключений сайта (возможные причины: утечки памяти, неоптимальные запросы к БД, отсутствие кэширования, проблемы с конфигурацией Docker/Caddy).
- Предложить и реализовать решения для стабилизации работы (оптимизация запросов, настройка кэширования,調整 конфигурации инфраструктуры).
Задача 2: Реализация фильтрации входящего трафика на API
- Разработать и внедрить механизм фильтрации входящих запросов к API на уровне бэкенда (NestJS).
- Критерии фильтрации должны быть настраиваемыми (например, по IP-адресам, частоте запросов, User-Agent).
- Обеспечить логирование блокируемых запросов.
- Решение должно быть масштабируемым и не создавать дополнительной нагрузки на основную функциональность.
Ожидаемый результат
- Стабильно работающее приложение без критических падений под нагрузкой.
- Отчет о проведенном анализе и внесенных изменениях с обоснованием.
- Реализованный и протестированный механизм фильтрации API-трафика.
- Обновленная документация по инфраструктуре и ключевым изменениям.