Сигнал тревоги, который я помню лучше всего, исходил не от нашей системы мониторинга. Оно пришло со страницы выставления счетов и описывало пакетное задание, которое, с точки зрения наших информационных панелей, все еще работало идеально. В наших графиках задержки ничего не изменилось, а...
Сигнал тревоги, который я помню лучше всего, исходил не от нашей системы мониторинга. Оно пришло со страницы выставления счетов и описывало пакетное задание, которое, с точки зрения наших информационных панелей, все еще работало идеально. Ничто в наших диаграммах задержки не изменилось, и ни один из наших бюджетов ошибок не сгорел, однако график затрат рос со скоростью, которая не имела особого смысла для модели, которую, как мы полагали, мы вызывали.
Эта вера была проблемой. Мы построили небольшой маршрутизатор вывода для отправки рутинной работы по классификации на более легкую модель и позволили маршрутизатору решать, что вызывать. В течение нескольких недель план работал настолько хорошо, что мы вообще перестали смотреть на таблицу маршрутизации. Затем стандартное обновление зависимостей изменило имена моделей, которые были разрешены к каким конечным точкам, и маршрутизатор с радостью отправил тысячи элементов пакета на гораздо более дорогую цель, потому что, по его мнению, цель все еще была работоспособной.
Эта статья представляет собой вскрытие той неудачи, которую я написал. Это не обзор продукта и не эталонный тест, потому что настоящий урок заключается не в том, какая модель победит. Речь шла о том, что роутер без видимости стоимости — это всего лишь балансировщик нагрузки, который вежливо допускает дорогостоящие ошибки.
Что произошло, по порядку
Ти