Заглушка, которая стала данными: как мы нашли выдуманные характеристики у себя

У 10 провайдеров из 12 стоял одинаковый SLA 99,9%, а у 32 тарифов — Windows, которого там нет. Это были не данные, а значения по умолчанию, забытые при заведении. Рассказываю, как такие вещи появляются и чем их ловить.

Как появляется выдуманная характеристика

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

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

Масштаб оказался больше, чем я ожидал. У 10 провайдеров из 12 стоял один и тот же SLA — 99,9%. У 11 из 12 совпадал набор возможностей: защита от DDoS, Windows, API — всюду одинаковые галочки. Это не совпадение рынка, это следы заполнения по шаблону.

Что оказалось неправдой

После сверки с сайтами картина изменилась. У Selectel заявленная надёжность облачных серверов не 99,9%, а 99,98%. У RuVDS на главной странице указано 99,982%. У FirstVDS — 99,5%, то есть заметно ниже «стандартного» значения, которое стояло у всех.

А у трёх провайдеров публично заявленного SLA не нашлось вовсе. Раньше поле было обязательным, и его приходилось чем-то заполнять — теперь оно опциональное, и там, где провайдер ничего не обещает, мы просто не показываем цифру. Пустое место честнее выдуманного числа.

С операционными системами вышло хуже, потому что на них стоит целая страница подборки. Выяснилось, что у части провайдеров список ОС не приходит из источника, а проставляется общим значением из конфига сборщика. В итоге 32 тарифа значились как поддерживающие Windows, хотя у одного из провайдеров Windows нет вовсе — только Ubuntu и CentOS.

Почему автосбор не спасает сам по себе

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

Из тринадцати провайдеров операционные системы реально приходят из источника только у трёх: у одного это флаг в ответе API, у другого иконки на карточке тарифа, у третьего они читаются из названия линейки. Остальным ОС проставляется скопом.

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

Чем это ловится

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

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

Третье — валидатор, который отвергает невозможное. Он не даст записать скидку, где «обычная» цена ниже акционной, или частоту процессора в 3300 ГГц вместо 3,3 (такое бывает, когда источник отдаёт мегагерцы). Это не ловит враньё, но отсекает механические ошибки.

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

Что с этим делать читателю

Смотрите на однообразие. Если в таблице сравнения у всех провайдеров одинаковый SLA и одинаковые галочки возможностей — скорее всего, вы смотрите не на данные, а на шаблон заполнения.

Проверяйте критичное на сайте провайдера. Наличие Windows, точный SLA и условия защиты от DDoS — те вещи, из-за которых выбор меняется целиком, и их стоит подтвердить в первоисточнике.

И относитесь к пустым ячейкам лучше, чем к заполненным round-числами. Пустая означает «мы не нашли подтверждения» — это больше информации, чем уверенное 99,9% у всех подряд.

как это устроенокачество данныхметодика

Сравнить тарифы VPS

Весь каталог с фильтрами и честной сортировкой — цены обновляются автоматически.

Открыть каталог →