Клиентам

Гипермаркет karatov.ru

Вернуться к списку
  • Тип проекта:
    Интернет-магазин
  • Тематика сайта:
    Торговля
  • Редакция продукта:
    Малый бизнес
  • Сайт:
  • Партнер:
KARATOV.ru — 
российский ювелирный гипермаркет.


Более 40 000 украшений онлайнСегодня на сайте вам предлагается 
более 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 раз.
Все изменения архитектуры вносились плавно без остановки интернет магазина.