Гипермаркет karatov.ru
Вернуться к списку-
Тип проекта:Интернет-магазин
-
Тематика сайта:Торговля
-
Редакция продукта:Малый бизнес
-
Сайт:
-
Партнер:
KARATOV.ru — российский ювелирный гипермаркет.
более 200 коллекций ювелирных изделий. Многие украшения отмечены дипломамимеждународных и российских выставок.Более 140 пунктов выдачи в 60 городах РоссииНаш стратегический партнер - ЛИНИИ ЛЮБВИ - федеральная сеть ювелирных салонов. Салоны сети расположены от Курска до Томска, от Санкт-Петербурга до Краснодара.Собственное производствоKARATOV входит в группу компаний «Топаз». 90% изделий, представленных на сайте, произведены на собственной производственной фабрике (основана в 1992 году). |
Проект выполнен с применением БД Solr и Redis. Кластер серверов.
Множество магазинов на единой платформе. Более 80 терминалов. Доставка по РФ.
На проекте за время сотрудничества было реализовано
1) Полный редизайн проекта
2) Полный рефакторинг кода, на 90% новая реализация высоконагруженного магазина
3) набор калькуляторов изделий на заказ
4) набор из двух сайтов, для оптовиков и для розницы.
По требованиям заказчика:
- критические страницы для бизнеса, каталог и карточка товара, должны иметь скорость генерации страниц не более 0.5 секунд
без кеша, т.к. базовых комбинаций url было свыше 1,5 млн а остатки и цены обновлялись
- быстрый обмен с 1С, остатков и цен без превышения нагрузки с mysql
- полноценный фасетный поиск в каталоге
- сервис аналитики, подсчета посетителей
- при физическом выходе из строя сервера, сайт должен запустится в течении 15 минут
- одновременная нагрузка на сервер до 3 000 посетителей онлайн, или 500 000 тыс в сутки
- 40 000 товаров и 200 000 SKU, около 3000 тысяч вариантов характеристик
Мы решили все задачи следующим образом:
скорость генерации страницы и фасетный поиск, были реализованы при помощи БД Apache Solr и собственных таблиц mysql для публичной части.
Архитектура связки solr и mysql, была подобрана под необходимую нагрузку. В качестве сервера БД использовалась mysql совместимая реализация Percona.
Благодаря solr фасетный поиск стал полноценным, все виды свойств (множественные, одиночные, числовые диапазоны) и очень быстрым,
запрос для фильтра в ~3000 возможных вариантов чекбоксов, измерялся в сотые доли секунды (не более 0.05 сек),
при 200 000 SKU и 1,5 млн базовых url в каталоге, кол-во дополнительных еще выше на порядок.
Внутренняя аналитика посещений была реализована при помощи быстрой nosql БД - redis
Обмен с 1С был разделен на несколько частей:
- обмен остатками, быстрый csv, реализация с контролем по изменениям, в итоге полное обновление остатков в 200 000 SKU, стало
занимать 1-3 минуты, полное обновление остатков обновлялось раз в 20 минут, время было выбрано 1С программистами заказчика
Время измерено при нагрузке на сервер 700 человек онлайн.
- обмен товарами всегда частичный, штатным способом подгружалась структура каталога и свойства.
Изображения хранились на сервер и загружались отдельно.
Новые товары импортировались посредством xml файла, реализация была в виде php скрипта, что сняло нагрузку на сервер mysql при импорте.
Актуальность товаров поддерживалась отдельным csv файлом, также для повышения скорости, с реализацией скриптом php.
- При высоком кол-ве генерации заказов покупателями, без доработок, периодически в 1С не поступали заказы, как выяснилось на стороне связи до сервера 1С и самой реализации в 1С силами заказчика.
Обмен заказами, был реализован штатными средствами, но с важной доработкой:
мы разработали систему защиты от временных коллизий и обрыва связи или ошибки 1С, ни один заказ не терялся, обмен заказами осуществлялся раз в 10 минут. Эту систему мы применяем на всех проектах.
Для отказоустойчивости, была реализована схема из 2-х серверов, в каждом по 2 контейнера.
каждый сервер содержал 2 контейнера: web сервер и сервер БД.
оба сервера были объедены, синхронизацией файлов и мастер-мастер репликацией БД.
Дисковая сиcтема обоих серверов была заключена в RAID 10.
При выходе из строя одного из серверов, нагрузка перемещалась на второй сервер, в итоге максимальное время простоя не более 15 минут.
Каждый сервер мог без потери производительности обслуживать 3 000 покупателей онлайн.
В итоге, заказчик, получил новый интернет магазин, с полным выполнением бизнес требований.
После нескольких лет сопровождения проектами нашими силами, проект плавно был передан штатным разработчикам заказчика.
За время работы с нами, оборот интернет магазина вырос в 9 раз.
Все изменения архитектуры вносились плавно без остановки интернет магазина.