Как считаем аптайм и что значит 99.99% на странице статуса

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

ИкИнженерная команда CheapServАвтор 6 мин чтения
Ряд светящихся зелёных полос статуса
На этой странице8
  1. Измерения снаружи, каждые 30 секунд
  2. Что такое компонент
  3. Зелёный, деградация, недоступно
  4. Как считается процент
  5. Что становится инцидентом
  6. Обслуживание: объявлено за 72 часа, иначе оно засчитывается
  7. Что не измеряется
  8. Как это связано с SLA

Каждый хостинг-провайдер публикует цифру аптайма. Немногие публикуют, как она измеряется, из-за чего цифры невозможно сравнивать: провайдер, который учитывает только полные отказы собственного сайта, всегда обгонит того, кто учитывает деградацию одного аплинка в одном городе. Эта статья — методология, стоящая за нашей страницей статуса: где находятся зонды, что считается инцидентом, как оценивается частичная деградация и почему плановое обслуживание перестаёт засчитываться нам как простой, только если мы объявили о нём заранее.

Измерения снаружи, каждые 30 секунд

Аптайм, измеренный изнутри сети, — это самооценка. Наш измеряют зонды, которые мы арендуем у трёх не связанных между собой провайдеров на трёх континентах (Европа, Северная Америка, Азия), и ни один из них не находится в наших дата-центрах. Каждые 30 секунд каждый зонд проверяет каждый компонент: HTTP-запрос к контрольному (canary) VPS на каждой площадке, TCP-рукопожатие с API, DNS-запрос к каждому резолверу, ping через каждый аплинк, видимый в BGP, вход в панель управления. Страница статуса показывает медиану по трём зондам; сырые результаты хранятся два года.

Что такое компонент

На странице перечислено 40 компонентов: для каждой из шести площадок — сетевой периметр, хосты VPS, выдача выделенных серверов, Windows RDP, слой хранения и, где они есть, GPU-узлы; глобально — сайт и панель управления, API, развёртывание, платежи, DNS и система тикетов. Компонент — это наименьший элемент, который может отказать самостоятельно. Если «Сеть Франкфурта» переходит в состояние деградации, а «Хранилище Франкфурта» остаётся зелёным, это говорит больше, чем единственный индикатор «Франкфурт».

Зелёный, деградация, недоступно

  • Работает штатно: все зонды получают успешный ответ в пределах допустимой для компонента задержки (200 ms для HTTP, 50 ms для ping от ближайшего зонда).
  • Деградация: хотя бы один зонд не проходит две проверки подряд, либо все зонды получают ответ, но за пределами допустимой задержки. Сюда попадают повышенные потери пакетов на одном аплинке, медленный API, узел хранения, который под нагрузкой выполняет ребилд. Время деградации засчитывается в минус аптайму с половинным весом.
  • Недоступно: все три зонда не проходят две проверки подряд, то есть минута подтверждённой недоступности. Время простоя засчитывается с полным весом.

Две неудачные проверки подряд вместо одной — осознанный выбор: один потерянный пакет зонда не является сбоем, а странице, которая мигает, никто не доверяет. Цена такого решения — инцидент отображается через 60 секунд после начала.

Как считается процент

Для каждого компонента месячный аптайм равен 1 − (down_minutes + 0.5 × degraded_minutes) / minutes_in_month. Общий показатель — это среднее по компонентам, взвешенное по числу клиентов, которых затрагивает каждый из них, поэтому деградация узла хранения в Лос-Анджелесе весит меньше, чем деградация панели управления. 99.99% за месяц — это примерно четыре минуты подтверждённого простоя или восемь минут деградации. Показатели по каждому компоненту мы публикуем рядом с итоговой цифрой именно для того, чтобы итог ничего не скрывал.

Что становится инцидентом

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

Обслуживание: объявлено за 72 часа, иначе оно засчитывается

Плановое обслуживание исключается из расчёта аптайма только в том случае, если оно было опубликовано на странице статуса не менее чем за 72 часа до начала, с указанием окна и ожидаемого влияния, и только за минуты внутри объявленного окна. Аварийное обслуживание (патч безопасности, который нельзя отложить) считается простоем, как и любое другое. Это правило сохраняет честную мотивацию: планировать работы мы можем с оглядкой на клиентов, но не на статистику.

Что не измеряется

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

Как это связано с SLA

SLA-кредиты, описанные в условиях обслуживания, рассчитываются по тем же числам: берётся месячный показатель площадки, на которой находится ваш сервер, с указанными выше весами; никакого отдельного «измерения для SLA», которое могло бы расходиться с публичной страницей, нет. Если страница показывает 99.9% для вашей площадки за прошлый месяц, кредит автоматически зачисляется на ваш баланс; просить о нём не нужно.

Ик
Инженерная команда CheapServ

Те, кто создаёт конвейер развёртывания, панель управления и слой хранения данных.

Разверните первый сервер меньше чем за минуту.

Пополните баланс от $25 в BTC, ETH, XMR или USDT. Баланс не сгорает, а неиспользованные средства можно вернуть.

Создать аккаунт