Клиент и контекст
Действующей много лет подписной платформе видеостриминга требовалось:
- Модернизировать стек Symfony, Nuxt.js, Next.js и Angular.
- Поддерживать и развивать внутреннюю CMS, используемую для производства и публикации видео.
- Улучшить производительность базы данных для запросов расписания и поиска.
- Поддерживать актуальность инфраструктуры на базе AWS и обеспечивать эффективную коммуникацию между инженерной командой и бизнесом.
Я присоединился к проекту в роли full-stack инженера, чтобы помочь с обновлением и поддержкой платформы.
Проблемы
- Устаревшая кодовая база на Node.js 12 и Nuxt.js 2, несколько устаревших паттернов и библиотек.
- Сложная интеграция со сторонним приложением на базе MS SQL, использующая SQL triggers и кастомную логику синхронизации.
- Медленные запросы, влияющие на сайт ТВ-расписания и поиск видео.
- Инфраструктура AWS (включая ElastiCache for Redis) требовала обновлений.
- Команды маркетинга и операционного сопровождения зависели от кастомных email-макетов и отчётов, построенных поверх внутренних инструментов.
Что я сделал
1. Обновление стека и модернизация front-end
- Обновил Node.js с 12 до 18 и Nuxt.js с 2 до 3.
- Там, где это уместно, заменил Axios на современный
fetch API.
- Переписал страницы и компоненты с использованием Composition API.
- Улучшил настройки Docker Compose для локальной разработки двух проектов AWS Lambda.
2. Поддержка CMS и интеграции
- Поддерживал и развивал внутреннюю CMS, используемую для производства и публикации видео.
- Выполнил reverse engineering и задокументировал сложную интеграцию со сторонним приложением на базе MS SQL, включая синхронизацию на основе SQL triggers.
- Восстановил утраченные знания о том, как работает эта интеграция, и обеспечил возможность её безопасной поддержки.
3. Оптимизация производительности
- Улучшил сложный запрос ТВ-расписания, ускорив его примерно в три раза.
- Настроил конфигурацию базы данных и запросы, чтобы сделать операции поиска в пять раз быстрее.
- Обновил устаревшие URL для превью видеотрейлеров в соответствии с текущей инфраструктурой.
4. AWS и операционная поддержка
- Обновил AWS ElastiCache for Redis с устаревшей версии до актуальной.
- Отслеживал и обрабатывал уведомления AWS, информируя руководство и службу поддержки серверов об изменениях и проблемах.
- Поддерживал рассылки и маркетинговые операции, включая:
- Создание новых еженедельных макетов рассылки.
- Улучшение email-макета, собранного с помощью Google Apps Script.
- Регулярное создание отчётов и обновление баннеров на сайтах.
Результаты
- Платформа перешла на современный стек Node/Nuxt/Symfony, оставаясь в непрерывной эксплуатации.
- Критически важные знания по CMS и интеграции были восстановлены и задокументированы, что снизило операционные риски.
- Улучшения производительности запросов расписания и поиска сделали пользовательский опыт быстрее и отзывчивее.
- Инфраструктура AWS и процессы email/маркетинга были приведены в актуальное состояние и стали проще в сопровождении.
Технологии и обязанности
- Роль: Full-stack разработчик для подписной стриминговой платформы
- Технологии: Node.js 12→18, Nuxt.js 2→3, Symfony 3→6, Composition API, MS SQL Server, SQL triggers, AWS (ElastiCache, Lambda), Docker Compose, Google Apps Script, Redis
- Объём работ: обновление стека, поддержка CMS/интеграции, оптимизация запросов, AWS operations и инструменты поддержки маркетинга
Если у вас есть контентная или стриминговая платформа с устаревающим стеком и сложными интеграциями, я помогу модернизировать технологии и повысить производительность без нарушения работы бизнеса.
Назад ко всем кейсам