Чему мы научились, пока делали собственную систему уведомлений о нештатных ситуацияхDevOps и эксплуатация
С 2008 года программировал в Яндексе (Пробки, спортивные спецпроекты, тимлид бэкенда Такси). С 2014 года занимается DevOps и инфраструктурой в Контуре — делает инструменты, которые облегчают жизнь разработчиков.
Иногда искусственный интеллект должен принять решение, от которого зависит здоровье человека. Наверняка вы подумали о беспилотных автомобилях, но наша история проще: мы делаем систему, которая будит людей по ночам.
Представьте, что система мониторинга следит за состоянием десяти сервисов и в какой-то момент понимает, что пропали метрики всех сервисов. Кого нужно разбудить? Админов всех сервисов? Это ошибка. Скорее всего, сломалась сама система мониторинга. А что делать, если пропали метрики пяти сервисов? А если трех?
Другой пример. Если на диске 90% свободного места — это хорошо. Если 1% — наверное, плохо. А если нет данных? Пожалуй, это хуже, чем если свободного места много. Но лучше ли это, чем если его совсем нет?
Обычно в системе алертинга можно через веб-интерфейс или файлы конфигурации настроить правила отправки уведомлений. А что, если у системы алертинга будет API, через который можно автоматически создавать тысячи правил? Приведет ли это к качественному изменению поведения пользователей или только слегка облегчит однотипные операции?
Когда разрабатываешь систему алертинга, нужно принимать решения, которые находятся на стыке разработки, администрирования и дизайна (в хорошем смысле каждого из этих слов). Об этом и поговорим в докладе.
Все решения были выстраданы и опробованы при разработке системы Moira (https://github.com/moira-alert), которая используется в Контуре, Avito и Яндекс.Деньгах.