Технический аудит и оптимизация Fullstack-приложения
Требуется выявить и устранить узкие места производительности в проекте, построенном на стеке Next.js и NestJS. Сервис работает с данными в реальном времени и испытывает задержки при рендеринге и обработке запросов.
Основные задачи для анализа и оптимизации
1. Анализ производительности и выявление узких мест
- Исследовать причины задержек при рендеринге страниц (Time to First Byte).
- Проанализировать нагрузку на CPU и выяснить причины высокого потребления ресурсов Node.js-процессами при небольшом трафике.
- Провести профилирование приложения на NestJS для поиска неоптимальных участков кода.
2. Оптимизация бэкенда и работы с данными
- Проверить скорость и оптимизировать запросы к базе данных PostgreSQL через Prisma ORM.
- Оценить эффективность запросов к внешним API-поставщикам данных.
- Настроить и оптимизировать кэширование в Redis: проверить корректность текущей реализации, подобрать стратегии инвалидации и время жизни кэша.
3. Оптимизация фронтенда и инфраструктуры
- Устранить блокирующие запросы при загрузке статических ресурсов и внешних изображений.
- Проверить эффективность текущей прокси-настройки через веб-сервер Caddy и предложить улучшения.
- Проанализировать работу SSR в Next.js на предмет оптимизации.
Требования к исполнителю
- Опыт работы с Docker, Docker Compose и микросервисной архитектурой.
- Умение проводить глубокий профилинг и отладку приложений на NestJS.
- Понимание принципов Server-Side Rendering (SSR) в Next.js и методов его оптимизации.
- Практический опыт настройки и тонкой оптимизации Redis для кэширования.
- Навыки работы с Prisma ORM и оптимизации сложных SQL-запросов.