Добавить в корзинуПозвонить
Найти в Дзене
Evrone

🚀 Как обновить легаси и не остановить бизнес: история Аплаут

Аплаут — платформа, которая собирает, модерирует и публикует отзывы о товарах. Её виджеты работают на сайтах крупных брендов, а значит стабильность сервиса критически важна. За 10 лет продукт вырос, но инструменты разработки начали мешать развитию: Команда продукта была занята бизнес-задачами, поэтому технический долг накапливался. Специалисты начали обновление аккуратно, чтобы не затронуть пользователей. Локальный запуск проекта занимал дни. На разных устройствах всё работало по-разному. После контейнеризации команда получила: Теперь достаточно одной команды запуска. Переход выполнили поэтапно: Особое внимание потребовали старые библиотеки, которые меняли стандартное поведение фреймворка. Остановка базы даже на час означала бы потерю потока отзывов. Поэтому обновление сделали без простоя. Команда нашла ошибку в стороннем драйвере, внесла точечный патч и сохранила стабильность сервиса. 🔥 1 500 тестов выполнялись 25 минут. После оптимизации: Итог — 10 минут вместо 25. За 3,5 месяца Апл
Оглавление
🛠️ Старый Rails, новый результат: модернизация Аплаут без паузы
🛠️ Старый Rails, новый результат: модернизация Аплаут без паузы

Проблема — устаревший стек тормозит рост 😟

Аплаут — платформа, которая собирает, модерирует и публикует отзывы о товарах. Её виджеты работают на сайтах крупных брендов, а значит стабильность сервиса критически важна.

За 10 лет продукт вырос, но инструменты разработки начали мешать развитию:

  1. Ruby и Rails давно требовали обновления.
  2. Библиотеки устарели и конфликтовали между собой.
  3. MongoDB, Redis и ElasticSearch усложняли поддержку.
  4. Новые функции внедрялись всё медленнее.

Команда продукта была занята бизнес-задачами, поэтому технический долг накапливался.

Решение — пошаговая модернизация без остановки ⚙️

Специалисты начали обновление аккуратно, чтобы не затронуть пользователей.

🐳 Нулевой шаг: Docker

Локальный запуск проекта занимал дни. На разных устройствах всё работало по-разному.

После контейнеризации команда получила:

  • быстрый запуск среды;
  • одинаковую конфигурацию у всех;
  • простое подключение новых разработчиков.

Теперь достаточно одной команды запуска.

💎 Обновление Ruby и Rails

Переход выполнили поэтапно:

  1. Поднимали версию Ruby.
  2. Затем обновляли Rails.
  3. Прогоняли тесты.
  4. Исправляли ошибки.

Особое внимание потребовали старые библиотеки, которые меняли стандартное поведение фреймворка.

🗄️ Zero-downtime обновление БД

Остановка базы даже на час означала бы потерю потока отзывов. Поэтому обновление сделали без простоя.

Команда нашла ошибку в стороннем драйвере, внесла точечный патч и сохранила стабильность сервиса. 🔥

⚡ Тесты и DevOps

1 500 тестов выполнялись 25 минут.

После оптимизации:

  • параллельный запуск в 4 потока;
  • облегчённые Docker-образы;
  • CI/CD пайплайн.

Итог — 10 минут вместо 25.

Результат — свобода для роста 🎯

За 3,5 месяца Аплаут получил:

  • Ruby 3.4
  • Rails 8
  • стабильную инфраструктуру
  • быстрый онбординг разработчиков
  • готовность к React и PostgreSQL

Иногда настоящий прогресс начинается не с новой функции, а с порядка внутри системы. Именно такой подход особенно ценят инженеры Evrone.