Изо всех сил пытаясь справиться с всплеском трафика

Опубликовано: 2022-03-10
Краткое резюме ↬ «Если вы построите это, они придут». Это, безусловно, верно, когда вы тратите много времени и усилий на создание веб-сайтов и PWA для клиентов. Но что происходит, когда «они придут» превратятся в «слишком много их пришло сразу, а теперь сайт не работает»? Скачки трафика бывают. Но вместо того, чтобы позволить вашему веб-сайту стать их жертвой, это руководство покажет вам, как вы можете настроить его, чтобы стать победителем.

(Это спонсируемая статья.) Когда происходит всплеск трафика, вы хотите, чтобы ваш веб-сайт мог оседлать волну, а не утонуть под ней.

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

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

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

Как подготовить свой сайт к всплеску трафика

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

1. Переместите свой сайт в масштабируемое облачное решение

Причина, по которой всплески трафика могут нанести ущерб веб-сайтам, заключается в том, что серверы и ресурсы хостинга не готовы к ним. Чисто и просто.

Тем не менее, если вы не можете предсказать, когда произойдет всплеск, как вы гарантируете, что ваш хостинг сможет справиться с возросшей нагрузкой трафика? Вы просто вкладываете больше денег в негабаритный план хостинга на всякий случай ?

Очевидно, что это нерентабельный способ справиться с потенциальным всплеском трафика. Вместо этого вам следует искать решение для хостинга, которое будет масштабироваться в соответствии с вашими потребностями.

Используйте технологию хостинга DigitalOcean

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

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

Капли виртуальных ЦП Digital Ocean
DigitalOcean продает виртуальные процессоры, оптимизированные для конкретных случаев использования. (Источник: DigitalOcean) (Большой предварительный просмотр)

Как видите, дроплеты — это простые в настройке виртуальные машины, созданные для различных типов веб-сайтов и приложений. Более того, они настроены на скорость и безопасность прямо из коробки с гипервизорами KVM, хранилищем SSD и подключением 40GbE.

Более того, по мере роста трафика вашего веб-сайта легко увеличить объем хранилища и пропускную способность в вашей капле. И если вы сможете выяснить причину или причину всплесков трафика позже, вы сможете быстро масштабировать свои ресурсы вверх и вниз, чтобы приспособиться к изменениям в трафике.

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

Используйте балансировщики нагрузки для скачков нагрузки

Если вы не знакомы с технологией балансировки нагрузки, давайте рассмотрим разницу между веб-сайтом с ней и без нее.

Вот что происходит, когда кто-то посещает ваш сайт без балансировщика нагрузки:

DigitalOcean — графика без балансировки нагрузки
Графика от DigitalOcean, показывающая, как посетители получают доступ к веб-сайту без балансировки нагрузки. (Источник: DigitalOcean) (Большой предварительный просмотр)

Они входят в Интернет, вводят ваш URL-адрес в свой веб-браузер или щелкают ссылку на него, а затем ваш сервер должен доставить ваш веб-сайт на их экран.

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

Однако с балансировщиком нагрузки вот что происходит с вашим веб-трафиком:

DigitalOcean — графика балансировки нагрузки
Графика от DigitalOcean, показывающая, как посетители получают доступ к веб-сайту при реализации балансировки нагрузки. (Источник: DigitalOcean) (Большой предварительный просмотр)

Балансировщик нагрузки служит своего рода прокси для вашего сервера. Таким образом, когда трафик достигает пика, вашему серверу не приходится бороться с нагрузкой. Вместо этого балансировщик нагрузки использует несколько серверов, чтобы сбалансировать растущий объем HTTP-запросов.

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

Однако, в отличие от реального распределения работы, балансировщики нагрузки делают все это за кулисами, и вам не нужно ничего координировать, поскольку они полностью управляемы.

Воспользуйтесь преимуществами мониторинга производительности и резервного копирования

Пока у вас настроена правильная пропускная способность и хранилище в вашей капле и активирована балансировка нагрузки, ваш веб-сайт будет в хорошей форме. Он не будет невосприимчив к скачкам трафика, но будет максимально близок к нему.

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

Ваш план обеспечения непрерывности бизнеса (веб-сайта) должен включать в себя все, что вам нужно сделать, чтобы вернуть ваш веб-сайт в нормальное состояние, в том числе как:

  • Восстановить сайт,
  • Расследуйте событие, которое привело к этому,
  • И обратитесь к посетителям и клиентам, которые были затронуты.

Тем не менее, есть некоторые части вашего плана непрерывности, с которыми может помочь DigitalOcean.

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

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

2. Оптимизируйте свои активы

Имея надежное решение для облачного хостинга, вы, безусловно, можете оказать своему веб-сайту необходимую помощь, чтобы пережить огромный всплеск трафика. Тем не менее, это не может все падать на ваш хост. Вы должны внести свой вклад, чтобы сделать ваш веб-сайт достаточно «легким», чтобы снова и снова обслуживать натиск посетителей.

Вот некоторые вещи, которые вы можете сделать, чтобы оптимизировать свой веб-сайт и его активы для повышения производительности:

Включить кэширование и другие оптимизации файлов

Хотите, чтобы с вашими цифровыми активами было проще обращаться? Затем вам понадобятся следующие настройки оптимизации:

Кэширование

Существует множество способов реализовать кэширование и ускорить доставку вашего веб-сайта в браузеры посетителей. Вы можете сделать это на уровне сервера, страницы, базы данных браузера.

Ваш веб-хостинг может помочь вам настроить кэширование сервера.

Если вы создали свой веб-сайт с помощью системы управления контентом, такой как WordPress, вы можете установить плагин кэширования, который позаботится о веб-сайте и базе данных для вас. (Он также будет делать такие вещи, как минимизация файлов, сжатие Gzip, объединяющее файлы CSS и JavaScript.)

Вы всегда можете включить кэширование вручную. Вы будете использовать заголовки кеша и, в частности, два механизма — Cache-control и Expires — для настройки кэширования вашего контента.

Оптимизация изображения

Не забывайте о своих СМИ. Файлы изображений и видео могут занимать много места на вашем сервере, а также снижать скорость работы вашего сервера во время скачка трафика. Чтобы оптимизировать эти активы, вы должны использовать сжатие файлов и изменение размера.

Для массового сжатия изображений я буду использовать онлайн-инструмент, такой как TinyPNG или TinyJPG, который справится с этим за меня.

Сжатие изображений TinyPNG
TinyPNG предлагает быстрый и простой способ массового сжатия изображений. (Источник: TinyPNG) (Большой предварительный просмотр)

В среднем, с помощью этого одного инструмента я обычно могу уменьшить размер своих файлов примерно на 75%.

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

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

Инструмент массового изменения размера фотографий для изменения размера изображения
Массовое изменение размера фотографий предлагает простой способ массового изменения размера изображений с использованием различных методов изменения размера. (Источник: массовое изменение размера фотографий) (большой предварительный просмотр)

Здесь существует большая гибкость в отношении изменения размера изображений, но я считаю, что установка максимальной ширины обычно работает лучше всего.

Используйте управляемые базы данных

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

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

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

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

Еще одна причина, по которой управляемые службы идеально подходят для таких ситуаций, заключается в их встроенной высокой доступности. И это не просто обещание безотказной работы в течение 99,9%. Если вы посмотрите на SLA вашего хоста, вы обнаружите, что оно пойдет на многое, чтобы предотвратить вопиющее количество простоев.

Добавить CDN

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

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

Если вы планируете использовать DigitalOcean для размещения своего веб-сайта, обратите внимание на его продукт Spaces (со встроенной интеграцией CDN) для более эффективного хранения и доставки ваших активов.

3. Проанализируйте свои отчеты о трафике

В общем, очень важно усердно собирать данные с вашего веб-сайта. Это особенно актуально при борьбе с резкими скачками трафика. Вот почему:

Если в трафике вашего веб-сайта есть предсказуемые взлеты и падения, вы будете знать, когда и как именно их планировать. Это означает не только оптимизацию вашего веб-сайта и сервера для обработки трафика, но и наличие необходимого количества персонала для мониторинга и управления им.

Для этого используйте Google Analytics, чтобы следить за всем.

Google Analytics — отображение просмотров страниц
Пример графика трафика и просмотров страниц из Google Analytics. (Источник: Google Analytics) (Большой предварительный просмотр)

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

Здесь вы можете видеть, что произошло несколько взлетов и падений:

Google Analytics — поиск всплеска трафика
Пример того, как пользователи Google Analytics будут искать скачки трафика в своих данных. (Источник: Google Analytics) (Большой предварительный просмотр)

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

Исключить веб-разработку

Например, велась ли в те дни какая-либо разработка на месте? Если бы кто-то исправлял ошибку или разрабатывал новую страницу, это могло бы привести к значительному увеличению количества просмотров страниц.

Если это происходит часто, было бы неплохо автоматически удалить эти данные из ваших отчетов на уровне Google Analytics. Вы можете сделать это из меню администратора.

Перейдите в «Вид» > «Фильтры» > «Добавить фильтр»:

Фильтры Google Аналитики
Пользователи Google Analytics могут удалить свои личные показатели посещений и просмотров страниц из результатов. (Источник: Google Analytics) (Большой предварительный просмотр)

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

Допустим, всплески трафика были вызваны не вашей внутренней командой. Затем вы захотите увидеть, происходят ли эти всплески (или падения) трафика с предсказуемыми интервалами.

Ищите предсказуемые всплески

Если ваш веб-сайт существует более года, вы можете использовать Google Analytics, чтобы увидеть, есть ли корреляция. Просто установите даты для сравнения с тем же периодом предыдущего года:

Сравнение диапазонов дат Google Analytics
Google Analytics позволяет пользователям сравнивать два диапазона дат рядом друг с другом. (Источник: Google Analytics) (Большой предварительный просмотр)

Затем ищите совпадения в скачках трафика:

Данные сравнения диапазонов дат Google Analytics
Пользователи Google Analytics могут одновременно просматривать два диапазона дат для прогнозирования всплеска трафика. (Источник: Google Analytics) (Большой предварительный просмотр)

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

Если бы это были чрезмерно большие всплески за оба года — например, по крайней мере в пять раз больше обычного объема трафика — я бы сказал, что их стоило бы расследовать. Однако в этом примере это, вероятно, просто совпадение, и их можно исключить.

Проверьте календарь

Если вы заметили заметный всплеск трафика в своих данных, последнее, что нужно сделать, — это сверить его с вашим календарем.

То, что вы ищете, это события, которые могли вызвать всплеск. Вещи как:

  • Праздничные распродажи, вызвавшие ажиотаж.
  • Пресс-релизы, которые попали в основные новостные ленты.
  • Вирусные сообщения в блогах или предложения по электронной почте, которые вы разослали.

Я бы также посоветовал посмотреть на трафик в течение нескольких дней или недель после всплеска трафика.

Как это уменьшилось? Это было внезапно или медленно? Смог ли веб-сайт улучшить ежедневный трафик — хотя бы немного — благодаря всплеску?

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

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

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

4. Мониторинг производительности в реальном времени

Google Analytics поможет вам выяснить, что произошло в прошлом, и более эффективно подготовиться к будущим скачкам трафика. С другой стороны, мониторинг производительности в режиме реального времени позволит вам реагировать на всплески трафика и другие изменения производительности в самый разгар момента.

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

Мониторинг производительности внешнего интерфейса

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

Вместо этого вы можете использовать службу мониторинга времени безотказной работы и скорости, такую ​​как Pingdom:

Службы мониторинга и оповещения Pingdom
Пользователи могут автоматизировать мониторинг времени безотказной работы, пользователей и скорости с помощью Pingdom. (Источник: Pingdom) (Большой превью)

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

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

Мониторинг производительности серверной части

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

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

Вот некоторые показатели, на которые стоит обратить внимание:

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

Ознакомьтесь с этими ключевыми показателями, чтобы вам никогда не приходилось пытаться выяснить, что происходит с вашим сайтом или как это исправить.

Теперь, с DigitalOcean, вы не просто получите доступ к этим удобным метрикам. Он также настроит вам мониторинг в реальном времени и оповещения. И это еще не все.

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

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

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

Подведение итогов

Если веб-сайты ваших клиентов или PWA не готовы к всплеску трафика, это может привести к серьезным проблемам для их бизнеса, когда пыль уляжется. И это будет стоить им (или вам) не только простоев или медленных страниц.

Если все эти дополнительные посетители увидят веб-сайт в плохом состоянии — от сломанных касс или форм до заражения вредоносным ПО — это также нанесет ущерб вашему бизнесу.

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