INTRID: наш первый высоконагруженный проект



Этой историей поделился наш клиент Дмитрий Волков, арт-директор веб-студии INTRID. Он рассказал о том, как из-за одного проекта студии пришлось изменить серверную инфраструктуру и что из этого вышло.

Мы — воронежская веб-студия INTRID. Работаем уже более 15 лет: разрабатываем сайты и интернет-порталы, помогаем раскручивать бизнес и выводить его на новый уровень. В нашем портфолио более 250 проектов, а ещё мы занимаем 3 место в топе веб-студий Воронежа.

Первый хостинг и портал для доставки печенья
В 2014 году наша команда выиграла тендер на разработку корпоративного портала для международной компании «Келлогг», крупного производителя сухих завтраков и печенья. Задача состояла в том, чтобы с помощью сайта оптимизировать внутренние процессы по организации грузоперевозок и тем самым сократить затраты.

Зачастую вопросами логистики занимается менеджер: он связывается с транспортными компаниями, согласует каждую доставку по цене и срокам, оформляет заявки. Если компания крупная, производит и поставляет продукцию ежедневно и в разные регионы, то одного менеджера недостаточно — работает целый отдел. А это существенная трата времени, денег и человеческих ресурсов.

Чтобы решить эту проблему, мы создали тендерный портал, который позволил автоматизировать взаимодействие с транспортными компаниями. Теперь они могут зарегистрироваться на сайте и самостоятельно оставлять заявки на подходящие им рейсы.


Для разработки сайта использовали PHP и MySQL. Так как своего физического сервера у нас не было, мы разместили портал на VDS одного из популярных российских хостингов. Выбирая его, ориентировались на информацию в интернете и отзывы.

Запустили проект в продакшн. Портал справлялся с поставленными задачами на «ура», клиенты были довольны. Но тут поджидала первая проблема… Время от времени случались сбои на стороне хостинг-провайдера — бывает со всеми. Однако техподдержка в такие моменты реагировала на запросы в течение суток, решение проблем затягивалось, сервер простаивал, а значит, и портал клиента был недоступен.

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

Такие условия нас не устроили, и в 2016 году мы решили искать другого провайдера.

Требования к провайдеру и новые поиски
Если изначально наши требования к хостингу были достаточно размытыми, то теперь мы точно знали, что хотим получить. В приоритете были следующие моменты:
  • Производительный и быстрый сервер.
  • Круглосуточная поддержка, оперативная обработка обращений.
  • Услуги по администрированию (хотя бы за доплату).
  • Технические работы в нерабочее время или без необходимости отключения оборудования.

Снова шерстили просторы интернета, сравнивали провайдеров, читали отзывы… На этот раз уже более осознанно. По рекомендации решили взять на тест виртуальный сервер FirstVDS в минимальной конфигурации, чтобы сначала ближе познакомиться с провайдером и убедиться в качестве услуг. Новый провайдер подошёл под наши запросы, поэтому спустя три месяца мы заказали тариф «Отрыв» с виртуализацией KVM — на тот момент, в 2016 году, в него входило 3 ядра CPU, 3 Гб оперативной памяти, SSD-диски. По производительности «Отрыв» был аналогичен нашему серверу у предыдущего хостера, но стоил практически в два раза дешевле. Плюс технические специалисты компании помогли (за отдельную плату) снять с нас заботы об администрировании. Теперь мы смогли сконцентрироваться на своих разработках и перестали тратить на хостинг столько времени, сколько тратили раньше.

Большой проект и новая инфраструктура
Опыт «Келлогг» быстро стал известен в отрасли, и спустя некоторое время с нами связался отдел логистики «Молвест», одной из крупнейших в России молочных компаний. Они тоже нуждались в тендерном портале для организации грузоперевозок, но более детальном и сложном, адаптированном под их задачи. Основная идея была та же — создать аукцион на понижение цены.

Во время разработки портала мы использовали технологию AJAX-запросов. Она обеспечивает постоянное соединение с сервером и предполагает, что клиенты получают информацию о текущем состоянии торгов в режиме реального времени. Каждая ставка учитывается моментально и отображается у всех пользователей.

Кроме того, за внешним интерфейсом сайта были реализованы сложные алгоритмы защиты данных, а также много других полезных функций для настройки торгов и работы с транспортными компаниями.

Мы начали с небольшого количества ежедневных тендеров и нескольких десятков ТК, но проект стремительно рос.


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

Однако если для сервисов и сайтов, над которыми мы работали до этого момента, хватало мощности VDS, то такой крупный проект виртуальный сервер уже не тянул. Этот заказ стал переломным моментом — мы поняли, что уперлись в потолок. Используемый тариф VDS был самым мощным на тот момент, поэтому нам оставалось только перейти на дедик (выделенный сервер). Дедик стоил в разы дороже, но это был не только способ обеспечить клиенту стабильную работу портала, но и наша инвестиция в будущие проекты.

Так как мы уже несколько лет пользовались услугами FirstVDS, то выделенный сервер заказали у партнерской компании FirstDEDIC — выбрали четырехъядерный Intel Xeon E3-1230 с 16 Гб RAM. Перенесли туда проекты клиентов, а корпоративные сервисы — GitLab и Jenkins — оставили на виртуальном.

Казалось бы, проблема решена, но всё оказалось не так просто. Сервер был в разы мощнее VDS, но даже его не хватало для работы высоконагруженного портала.

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


В результате, портал зависал, не прогружались и тормозили страницы, плохо отрабатывались ставки. Разумеется, это сказалось на успешности торгов.

Сначала мы пытались справиться с этим программно: переработали функционал портала и перешли на веб-сокеты, тем самым оптимизировав нагрузку на сервер. Но количество аукционов и пользователей росло в геометрической прогрессии. Когда участников стало уже около 500, перегрузка снова стала проявлять себя. Было необходимо искать более оптимальное решение.


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

После того, как мы написали в техподдержку FirstDEDIC с жалобой на зависания, нам посоветовали проанализировать нагрузку и рассчитать количество ресурсов, необходимое для наших задач. Оказалось, что нашим порталам требовалось больше оперативной памяти и больше ядер для многопоточной обработки запросов. В тот момент в продаже как раз появилась новинка — серверы с восьмиядерным Intel Core i9-9900K. По результатам тестов, он значительно превосходил наш Xeon в режиме многопоточности. И хотя i9-9900K позиционировался как игровой и десктопный процессор, с нашими задачами он должен был справиться лучше всего.

После переноса на новый сервер портал стал работать быстро и без сбоев. При этом количество пользователей и активных соединений за последний год выросло почти в 2 раза и всё ещё продолжает расти. Сейчас участников торгов уже около 1000, и сервер работает стабильно.


Покупка нового сервера изначально не входила в наши планы, и если бы не заказ «Молвест», мы бы продолжили использовать VDS. Это был наш первый проект такого рода. Однако теперь на сервере размещены ещё два высоконагруженных портала и ряд более простых сайтов. Сейчас наша инфраструктура выдерживает серьёзные нагрузки, и мы готовы к другим масштабным заказам — легко и быстро можем добавить ресурсы или подключить в локальной сети второй сервер. Пришлось пережить ряд сложностей, но теперь у нас есть опыт масштабирования и уверенность в том, что мы сможем адаптироваться к растущим запросам клиентов и развиваться вместе с ними.

https://firstvds.ru
Выделенные серверы OVH
Выделенные серверы Hetzner

0 комментариев

Оставить комментарий