Модернизация ИТ-инфраструктуры ювелирного онлайн-магазина
Мы модернизировали IT-инфраструктуру заказчика, чтобы обеспечить бесперебойную работу онлайн-платформы, ускорить выпуск обновлений в десятки раз и исключить риски, связанные с ручным трудом и человеческими ошибками. Компания получила надёжную и автоматизированную систему, которая больше не зависит от одного сотрудника, позволяет быстро выводить новые предложения на рынок и гарантирует доступность сайта для покупателей в любое время.
Клиент
ArtAuro (Art of Jewelry) - российский ювелирный бренд и онлайн-платформа, специализирующаяся на продаже ювелирных изделий.
Задача
Бизнес-задачи:
1. Обеспечить непрерывную работу онлайн-платформы, исключить риск остановки из-за сбоя одного элемента системы.
2. Ускорить выпуск новых версий сайта и минимизировать риски при обновлениях.
3. Снизить зависимость от ручных операций при обновлении приложений и работе с базами данных.
Задачи в контексте разработки:
1. Перенести существующие приложения в контейнеры, даже при отсутствии описания и документации.
2. Спроектировать и развернуть многоуровневую архитектуру: распределитель трафика → серверы с приложениями → кластер баз данных.
3. Настроить автоматическую сборку, проверку и развертывание обновлений.
4. Обеспечить бесшовный переход со старой инфраструктуры на новую без потери данных.
Решение
Мы предложили заказчику поэтапную модернизацию: сначала устранили критические ошибки, затем подготовили новую версию приложений. В первую очередь развернули тестовую среду для отладки, затем — полноценную рабочую среду с отказоустойчивостью и финальным переключением.
Выполненные работы (услуги)
-
Перевод приложений в контейнеры для унификации окружений.
-
Проектирование и развёртывание отказоустойчивой архитектуры (тестовой и рабочей).
-
Настройка распределения нагрузки между серверами.
-
Настройка автоматического конвейера для сборки и развертывания обновлений.
-
Перенос баз данных с минимальным влиянием на работу пользователей.
-
Настройка сетевой защиты и автоматической очистки логов.
Гипотезы, которые мы закладывали в решение
-
Контейнеризация позволит унифицировать все окружения и ускорить развертывание: любое приложение будет запускаться на любом сервере без лишней настройки.
-
Архитектура без хранения состояния на серверах + распределитель с привязкой сессий обеспечит масштабируемость и совместимость с текущей логикой работы пользователей.
-
Автоматическое переключение между распределителями трафика даст более надёжную отказоустойчивость, чем стандартное распределение через DNS.
Почему решили именно так
-
Контейнеры вместо физических серверов: у заказчика отсутствовала документация, и контейнеризация позволила зафиксировать все настройки в коде, исключив расхождения между средами.
-
Разделение тестовой и рабочей сред: заказчику было важно сначала отладить процесс обновлений на тестовой среде, чтобы не рисковать боевыми данными.
-
Перенос баз данных в нерабочее время: чтобы минимизировать влияние на бизнес и не отвлекать покупателей.
Результат
-
Автоматизирован процесс обновлений: релизы теперь выходят за 15 минут вместо 2–3 часов ручных операций.
-
Обеспечена бесперебойная работа: 2 распределителя трафика с автоматическим переключением, 3 сервера с приложениями, реплицированные базы данных — единая точка отказа устранена.
-
Контейнеризация зафиксировала все настройки: даже при отсутствии документации конфигурация приложений теперь описана в файлах.
-
Безопасный переход: перенос баз данных проходил поэтапно в нерабочее время — без потери данных и остановок для пользователей.
Бизнес-эффект
-
Ускорение обновлений: с 2–3 часов до ~15 минут (в 10 раз быстрее).
-
Рост надёжности: отказоустойчивая архитектура и автоматическое переключение обеспечивают доступность 99,9%.
-
Снижение рисков: автоматизация исключила ошибки ручного труда при релизах.
-
Экономия на инфраструктуре: после отключения старых ресурсов заказчик сократил затраты на серверы.
ROI проекта: окупаемость за счёт сокращения сбоев и ускорения выхода обновлений — в течение 4 месяцев после внедрения.
Технологии
Docker, Docker Compose, GitHub Actions, Nginx, MySQL, Linux, Keepalived, Fail2Ban, Firewall, реестр контейнеров GitHub, DNS.