[Перевод] Исследование производительности хостингов статических сайтов

Статические веб-сайты — это, уже довольно давно, горячая тема. Они быстры, они чрезвычайно безопасны, так как в них нет CMS, которые можно взломать. Правда, после того, как некто создал статический сайт, перед ним встаёт один очень важный вопрос: «А где этот сайт хостить?».

Этот вопрос можно перефразировать так: «Какой хостинг статических сайтов является в 2020 году самым быстрым?». Давайте это выясним!

lw7te8026i03ylfchpfq3pfnreu.jpeg

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

Тестовое окружение


Так же, как и в 2017 году, я создал простую страничку, которую можно хостить на множестве сервисов. Я решил использовать домашнюю страницу собственного сайта, в состав которой входят все изображения, все CSS- и JS-файлы. Затем я загрузил эту страницу на следующие хостинги, сгруппированные в списке по методу оплаты их услуг:

  • Хостинги с оплатой по факту использования
  • Условно-бесплатные хостинги (некоторые услуги предоставляются бесплатно)
  • Бесплатные хостинги


Примечание: Microsoft Azure я не протестировал из-за того, что не смог войти в систему, пользуясь моей картой Revolut Visa. Спасибо, Microsoft!

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

Вот ещё некоторые факты о моём исследовании, на которые я хотел бы обратить ваше внимание:

  1. Я, исследуя все сервисы, проверял конечные точки, использующие HTTPS.
  2. Я добавил index.html во все URL, то есть, не нужно было впустую тратить время на поиски этого файла.
  3. Сервисы опрашивали один раз в минуту в течение 10 дней.
  4. Служба Oh Dear не только отслеживала время отклика сервисов, но и время DNS-поиска, время, необходимое на установление TCP-соединения, время загрузки контента и многое другое. Это очень интересно! В конце материала вы можете найти ссылку на необработанные данные.


Обратите внимание на то, что ни Pingdom, ни Oh Dear не являются спонсорами этого материала. В Oh Dear мне, правда, дали бесплатный пробный период с возможностями, достаточными для исследования всех версий моего сайта. Выражаю Oh Dear за это благодарность.

Ожидания


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

  • Я ожидаю, что платные сервисы покажут себя лучше, чем бесплатные. Ведь у того, что они берут деньги за свои услуги, должна быть какая-то причина?
  • Хостинги Firebase и Google Cloud принадлежат одной и той же компании, поэтому я жду, что они покажут похожие результаты.
  • Я использую для своего сайта CloudFront, поэтому надеюсь, что этот хостинг не окажется медленным. Иначе мне придётся заняться кое-какими делами, которыми мне не очень-то хочется заниматься ;).
  • Хостинг Netlify в прошлый раз вёл себя как-то неоднородно. Теперь, когда прошло несколько лет, я надеюсь, что он смог решить старые проблемы.
  • В прошлый раз я не испытывал CloudFlare. Я ожидаю того, что этот хостинг окажется достойным конкурентом другим, учитывая его популярность, и то, как много пограничных серверов у него есть.


Результаты


Вот скриншот из панели управления Pingdom, снятый после 10 дней тестирования.

1462f975b1d0fbe9e558ad4bb847454e.png


Обзор панели управления Pingdom

На первый взгляд кажется, что все сервисы показывают довольно-таки однородные результаты. При этом лидерами являются CloudFront, GitHub Pages и Google Cloud. Но не будем делать поспешных выводов.

Время безотказной работы систем


Начнём со времени безотказной работы систем. Этот показатель для всех систем, кроме Firebase, составляет 100%. Pingdom, анализируя Firebase, выявил 1 минуту простоя. В результате проведения одной из проверок был получен ответ «Network unreachable», в результате ещё одной — ответ «Invalid Certificate».

af290264d3b3483b0271a5163c53bad3.png


Время простоя Firebase по сведениям Pingdom

Служба Oh Dear ничего такого не выяснила, поэтому я хочу истолковать эту сомнительную ситуацию в пользу Firebase. Будем считать, что причина этих сообщений в каких-то проблемах на сервере Pingdom.

Время отклика


Рассмотрим некоторые статистические показатели, вычисленные на основе всех собранных мной данных: медианное и среднее время отклика для каждого сервиса (включая стандартное отклонение).

db05580c7fe1d986f008a1f44940294d.png


Время отклика: медианное значение, среднее значение, стандартное отклонение

Здесь наше внимание могут привлечь несколько моментов:

  • CloudFront и GitHub Pages демонстрируют высокую скорость и стабильность. Медиана, среднее значение и стандартное отклонение этих сервисов представлены самыми низкими показателями. Это интересно, так как один из данных сервисов является платным, а второй полностью бесплатен.
  • AWS S3 — самый медленный сервис (но он отличается высокой стабильностью работы). В общем-то, чего-то такого можно ожидать от провайдера, мощности которого расположены в единственном регионе (в данном случае это Ireland, eu-west-1).
  • В случае с Google Cloud и regional и multi-regional-варианты работают примерно одинаково. Интересно то, что и тот и другой гораздо быстрее, чем сравнимый с ними сервис S3. Может быть Google где-то что-то кэширует, но ничего об этом не сообщает?
  • Я ждал, что Cloudflare будет гораздо более сильным конкурентом другим хостингам, находясь где-то в верхней части моего рейтинга. Но и CloudFlare CDN, и CloudFlare Workers Site далеки от первого места. Правда, надо отметить, что сервис Cloudflare Workers Sites оказался быстрее, чем CloudFlare CDN.


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

eb2eec86ec1a8a1fa1fd42f707223749.png


Медианные показатели времени отклика сервисов по сведениям Pingdom и Oh Dear

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

Pingdom выполняет запросы из различных мест, разбросанных по всему миру. Некоторые из них не отличаются особенно высоким качеством линий связи, это увеличивает время отклика сервисов, измеренное Pingdom.

Вот ещё некоторые наблюдения:

  • Почему-то оказалось, что самую высокую скорость показывает AWS S3, несмотря на то, что весь контент хостится в одном и том же месте. Этот сервис оказался даже быстрее CDN компании Amazon! Возникает такое ощущение, что серверы проекта Oh Dear находятся где-то в Евросоюзе. Возможно, между ними и регионом AWS Ireland существуют качественные соединения.
  • Разница между CloudFront, S3, Firebase, GitHub Pages и Google Cloud Storage является минимальной. Это позволяет в очередной раз отметить тот факт, что бесплатные и платные сервисы вполне успешно друг с другом конкурируют.


Время до первого байта


Сервис Oh Dear, как уже было сказано, отслеживает дополнительные показатели исследуемых хостингов. Например, он собирает сведения о том, сколько времени занимает поступление первых байтов страницы. Это может дать нам намёк на то, насколько «отзывчивым» является веб-сервер (то есть на то, как долго ему нужно «подумать» прежде чем он сможет ответить на запрос).

a887cf70510a803d6d587dd429da4365.png


Время до первого байта: исследование «отзывчивости» веб-серверов

  • Сервисы, которые можно назвать «простыми хранилищами данных», вроде S3 и Google Cloud Storage, показывают себя очень хорошо.
  • Тут, как и прежде, выделяются GitHub Pages, Firebase и CloudFront. Они дают время до первого байта, не превышающее 40 мс.
  • Неожиданно то, что у CloudFlare на доставку первого байта уходит достаточно много времени. Может быть дело — в защитных системах этого хостинга?


Сравнение результатов 2017 и 2020 года


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

15eabb5472779a08696377b41380c396.png


Сравнение результатов исследования хостингов, полученных в 2017 и в 2020: медианное время отклика

Все провайдеры (за исключением GitHub Pages) стали немного медленнее. Заметнее всего — замедление AWS S3 (+13%) и Firebase (+31%). Результаты других хостингов так близки к показателям 2017 года, что я назвал бы различия между ними лежащими в пределах статистической погрешности.

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

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

Попытки поиска пограничных случаев


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

3dad46a33a114c868f3749c47f1eab3a.png


Диаграмма разброса, построенная по сводным данным о времени отклика сервисов

Если визуализировать те же данные с помощью диаграммы размаха, то можно заметить кое-что интересное.

9c1dfec091c34228b3a88174bd5a43e5.png


На диаграмме размаха, построенной по сводным данным о времени отклика сервисов, можно видеть высокие пики

Все сервисы, за исключением AWS, GitHub Pages и Firebase, имеют странные пики. В прошлый раз такое наблюдалось только у Netlify. Не знаю точно о том, что стало причиной этого. Возможно, это больше относится к методикам проверки серверов, используемых в Pingdom, чем к самим серверам.

Выводы


Пришло время сделать некоторые выводы.

Лучше всего, во всех отношениях, показал себя хостинг AWS CloudFront, за которым, с небольшим отставанием идёт GitHub Pages. Они отличаются не только самым быстрым временем отклика (медианным), они, к тому же, показывают самый высокий уровень стабильности работы.

За ними с небольшим отставанием идёт Google Cloud Storage. Стоит отметить, что между режимами regional и multi-regional этого хостинга имеются лишь небольшие различия. Единственная причина предпочесть вариант multi-regional заключается в том, что при выборе этого варианта гарантируется более высокий уровень времени безотказной работы.

Хостинг Cloudflare показал себя не так хорошо, как я ожидал. Он, определённо, быстрее стандартного S3, но не выдерживает сравнения с другими CDN-сервисами вроде CloudFront. Хостинг Cloudflare Workers Sites немного быстрее Cloudflare CDN, но его сложно рекомендовать, так как он стоит $5 в месяц, а бесплатные продукты, вроде GitHub Pages, работают лучше.

Netlify, в сравнении с предыдущим исследованием, показал значительные улучшения. Исчезли пики, и этот хостинг вполне сравним с Google Cloud и Firebase.

Что выбрать?


Если вам нужен быстрый веб-сайт, на поддержку которого не придётся потратить уйму денег, то ваш выбор — это GitHub Pages. Этот хостинг совершенно бесплатен и чрезвычайно быстр. Правда, чтобы им пользоваться, сайт, размещаемый на нём, должен быть опенсорсным.

Если в вашем случае это невозможно, хорошей альтернативой станет CloudFront. Цена хостинга зависит от того, какая полоса пропускания вам нужна. Для большинства персональных сайтов этот хостинг обойдётся во что-то наподобие пары долларов в месяц. То же самое касается и Google Cloud Storage.

Netlify и Firebase Hosting — это тоже весьма приличные решения. Хотя они и не показывают такого же уровня производительности, как CloudFront или GitHub Pages, их выбор оправдывают отличные инструменты. При их использовании всё будет работать, что называется, «из коробки», без каких-либо настроек со стороны пользователя. Всё, что нужно сделать для размещения сайта на этих хостингах, делается с помощью простых инструментов командной строки.

Здесь можно найти необработанные CSV-данные моих исследований за 2017 и 2020 года. Можете с ними поэкспериментировать. И обратите внимание на показатели, собранные службой Oh Dear.

А каким хостингом для статических сайтов пользуетесь вы?

guabcgmwuqoopx1ar80sjpz6keq.png

de0yl-6ppopvisr_a80b4yuhjj8.png

© Habrahabr.ru