Масштабируемость Spree Commerce

Дата публикации:

Масштабируется ли Spree Commerce? Как много продуктов/товаров может поддерживать Spree? Как много конкурентных запросов от пользователей выдерживает платформа? Подобные вопросы мы постоянно слышим при обсуждении новых проектов с клиентами.

Вы конечно заметили, что все они так или иначе сводятся именно к «масштабируемости» — может ли Spree Commerce справиться с высоким уровнем трафика или работать с большими каталогами товаров? Эти вопросы не только закономерны, но и очень полезны, так как позволяют получить информацию о возможности реализации проекта на выбранной платформе.

Мы уверены — предложенная вашему вниманию статья предоставит исчерпывающие доказательства того, что фреймворк Spree Commerce прекрасно масштабируется. Мы покажем вам свой подход к этому вопросу и поможем найти системные ограничения/точки, в которых потребуется дополнительная оптимизация магазина для повышения производительности.

Говоря о масштабируемости, чаще всего подразумевают один из двух вариантов:

  • пропускная способность интернет-магазина;
  • размер каталога товаров.

В этой статье мы сосредоточимся на пропускной способности.

Что такое пропускная способность интернет-магазина?

Пропускная способность — это количество пользовательских запросов, которые может обслужить приложение за единицу времени. Чем больше их число, тем выше масштабируемость вашей системы.

%d0%bc%d0%b0%d1%81-1

Пропускную способность можно назвать переменной величиной, так как она периодически варьируется от страницы к странице, в зависимости от специфики и ресурсоемкости используемого функционала. При этом причины ресурсоемкости могут быть как объективными (сложность вычислений или производимых операций), так и субъективными (“криворукость” разработчика). Последнее случается довольно редко,  так как написать плохой код на Ruby крайне сложно. Но, как говорится, для героев нет преграды:)

Наряду с этим, пропускную способность приложения ограничивают физические характеристики вычислительных ресурсов: количество и особенности серверов, возможности балансера кластера, если таковой используется и прочие сугубо технические моменты.

Что и как влияет на масштабируемость?

Масштабируемость приложения напрямую связана с пропускной способностью. Чем больше пользовательских запросов оно может обработать без увеличения вычислительных ресурсов, тем выше показатель масштабируемости.

Похоже, что мы нашли лучший способ продемонстрировать масштабируемость Spree Commerce при проведении нагрузочных тестов. Речь идет о практике имитации большого количества пользователей, которые обращаются в интернет-магазин. Тесты показывают реальную картину поведения платформы под влиянием значительных нагрузок.

Как все это происходит? Для проведения нагрузочного тестирования вам потребуется окружение максимально похожее (по техническим характеристикам) на продакшн площадку. В противном случае полученные результаты нельзя будет назвать релевантными.

Нагрузочное тестирование начинается с определения пользовательских сценариев, имитирующих поведение реальных посетителей интернет-магазина. Они могут выглядеть, например так:

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

Тут важно не забывать, что разные страницы интернет-магазина имеют различную пропускную способность. Поэтому наиболее убедительные результаты предоставляет только тестирование страницы с максимально высокой производительностью.

Для того чтобы получить представление о пропускной способности страниц, можно использовать такие инструменты, как NewRelic и Google Analytics.

%d0%bc%d0%b0%d1%81-2

После того как вы определись с инструментарием наблюдения, необходимо выбрать инструмент для создания нагрузки. Ранее мы использовали BlazeMeter и LoadImpact. Сегодня стали доступными и другие инструменты, так что выбор велик и мы в нем свободны.

Запускаем нагрузочные тесты

Итак, все готово. Мы определились с инструментарием наблюдения и создания нагрузки. Следующий шаг — запуск теста. В первую очередь, мы:

  • намечаем количество виртуальных пользователей, которые должны будут одновременно (имеется в виду единица времени, т.е. количество обращений в секунду или, например, в минуту) обратиться к интернет магазину;
  • задаем интервал времени, на который будет выставлена нагрузка.

Как правило, тестирование начинается с 50 виртуальных пользователей (интервал времени: 5 минут). Далее нагрузка увеличивается. По мере ее увеличения мы наблюдаем за производительностью системы. Она не должна существенно отклоняться от штатных показателей. Любое значительное увеличение времени отклика системы на какой-либо из страниц или функций указывает на необходимость оптимизации.

%d0%bc%d0%b0%d1%81-3

Подводим итоги

В проведенных нами тестах использовалась платформа Spree Commerce 2.4 — стандартный коробочный вариант. Она была установлена на AWS. Коробка смогла обслужить примерно 5000 запросов в минуту и порядка 30000 заказов в день. Стоит ли говорить о том, что полученный результат, как минимум, очень неплох?

Команда JetRuby Agency занимается разработкой интернет-магазинов на базе собственной платформы 1R Commerce. Она построена на фреймворке Spree Commerce и сохраняет все его преимущества в плане производительности и масштабируемости. Дополнительным же преимуществом 1R Commerce является полноценная интеграция интернет-магазина с учетной платформой 1С.

Мы Крым Диджитал

С 2015 года мы предоставляем полный цикл услуг мобильной и веб-разработки клиентам из различных отраслей и разных стран.

Подпишись
на наши новости

Контакты пресс-службы

+ 7 (926) 118-80-32

WhatsApp, Viber, Telegram

Давайте обсудим Ваш проект

или свяжитесь с нами по почте projects@crimeadigital.ru

Нажимая кнопку «Отправить», вы даете согласие на обработку персональных данных

Прошел день карьеры в СевГУ

Резидент технопарка, компания Крым Диджитал, приняла участие в Дне Карьеры в СевГУ, который прошел 17 мая. Мероприятие длилось 3 часа. Компанией заинтересовались  более 35 студентов, которым была важна информация о прохождении практики, бесплатные курсы Академии и вакансии, не требующие опыта работы. Руководитель разработки компании выступил с презентацией и ответил на все вопросы, которые так волнуют студентов — как начать свою карьеру в ИТ? Есть ли возможность совмещать учебу с работой? Кем я смогу стать? Как понять, кем я хочу работать? И многие другие.

Резидент технопарка, компания Крым Диджитал, приняла участие в Дне Карьеры в СевГУ, который прошел 17 мая.

Мероприятие длилось 3 часа. Компанией заинтересовались  более 35 студентов, которым была важна информация о прохождении практики, бесплатные курсы Академии и вакансии, не требующие опыта работы.

Руководитель разработки компании выступил с презентацией и ответил на все вопросы, которые так волнуют студентов - как начать свою карьеру в ИТ?

Есть ли возможность совмещать учебу с работой?

Кем я смогу стать?

Как понять, кем я хочу работать?

И многие другие.

Завершен набор студентов на летнюю практику

Крым Диджитал завершила набор студентов на летнюю практику. В июле придут 14 человек. Это студенты второго и третьего курсов кафедр Программная инженерия, Информатика и вычислительная техника, Информационные системы и технологии и Управление в технических системах. Все ребята будут ходить в офис и будут заняты реальным проектом, который они должны реализовать до конца практики. Каждый выбрал для себя то направление, в котором хотел бы развиваться — front-end и back-end-разработка, дизайн. Руководить практикой будет Head of Engineering.
Крым Диджитал завершила набор студентов на летнюю практику. В июле придут 14 человек. Это студенты второго и третьего курсов кафедр Программная инженерия, Информатика и вычислительная техника, Информационные системы и технологии и Управление в технических системах. Все ребята будут ходить в офис и будут заняты реальным проектом, который они должны реализовать до конца практики. Каждый выбрал для себя то направление, в котором хотел бы развиваться - front-end и back-end-разработка, дизайн. Руководить практикой будет Head of Engineering.

Крым Диджитал приняла участие в стратегической сессии

Руководители Крым Диджитал приняли участие в стратегической сессии, которая прошла на базе СевГУ 10 июня. Вместе с Правительством Севастополя, Институтом информационных технологий и управления в технических системах СевГУ и приглашенными ИТ-компаниями города обсудили перспективу развития системы высшего образования в Севастополе.Представители бизнеса, власти и образовательной системы выступали со своим видением будущих потребностей региона в кадрах, поднимали насущные вопросы обучения студентов, прохождения практики и дальнейшего трудоустройства. Крым Диджитал является амбассадором идеи образования и взращивания молодых кадров, развивает образовательные проекты и на протяжении 5 последних лет ведет активную работу в направлении поддержки и развития молодых специалистов ИТ-отрасли Крыма.

Руководители Крым Диджитал приняли участие в стратегической сессии, которая прошла на базе СевГУ 10 июня.

Вместе с Правительством Севастополя, Институтом информационных технологий и управления в технических системах СевГУ и приглашенными ИТ-компаниями города обсудили перспективу развития системы высшего образования в Севастополе.
Представители бизнеса, власти и образовательной системы выступали со своим видением будущих потребностей региона в кадрах, поднимали насущные вопросы обучения студентов, прохождения практики и дальнейшего трудоустройства.

Крым Диджитал является амбассадором идеи образования и взращивания молодых кадров, развивает образовательные проекты и на протяжении 5 последних лет ведет активную работу в направлении поддержки и развития молодых специалистов ИТ-отрасли Крыма.

Выпуск курса Software Testing

Мы поздравляем выпускников нашего первого в этом году курса Крым Диджитал Академии по Software Testing! Всего курс успешно завершили 13 человек. В течение 2 месяцев несмотря на теплую погоду и манящее море ребята ответственно посещали занятия 2 раза в неделю, делали домашние задания и проверочные работы. Трое начинающих специалистов теперь стажеры нашей компании. Следующий курс намечен на август. Не пропусти анонс записи!

Мы поздравляем выпускников нашего первого в этом году курса Крым Диджитал Академии по Software Testing!

Всего курс успешно завершили 13 человек. В течение 2 месяцев несмотря на теплую погоду и манящее море ребята ответственно посещали занятия 2 раза в неделю, делали домашние задания и проверочные работы. Трое начинающих специалистов теперь стажеры нашей компании.

Следующий курс намечен на август. Не пропусти анонс записи!