Причина всех аварий - непредсказуемость. Статья далее о том, как добиться предсказуемости в IT-инфраструктуре, а ИТшников научить работать так, как будто они инженеры.
Любое изделие имеет свои границы применимости. Например, ручная отвертка применима при работе вручную. Оторвав от нее ручку и воткнув в дрель - шуруповерт не получится. Отвертка будет сломана, да и вряд ли даже один винт получится закрутить таким приспособлением. С ИТ-решениями тоже самое - нужно знать их границы применимости и применять в рамках этих границ. Основные очевидные границы, которые существуют для каждого приложения:
Качество установки и настройки определяется простыми факторами:
Вопрос | Хороший ответ | Плохой ответ |
Когда произойдет ближайшая аппаратная авария, которая не заденет работу сервиса? |
Мы тестируем всё оборудование до ввода в эксплуатацию, этим исключаем брак. Ближайший выход из строя предполагается SSD диска в течение 5и лет. Он находится в RAID и это не заденет работу сервиса, но потребует замены. |
1) "ЦОД может упасть в любой момент" Такой вариант ответа выходит за рамки ответственности Админа/SRE/DevOps, а сам он ушел от ответственности за работу в его зоне ответственности. 2) "Мы не знаем когда сломается железо, давайте у нас всего будет в двойном запасе." Ответ ниже уровня компетенций, позволяющих построить надежную систему. |
Когда произойдет ближайшая аппаратная авария, которая заденет работу сервиса? |
Материнские платы служат 5-8 лет в штатном режиме в условиях эксплуатации ЦОД. За всё время наше оборудование не было перегрето ни разу, эксплуатируется год в условиях ЦОД - ближайший отказ сервера по причине проблем с МП произойдет минимум через 4-7 лет. Мы можем заранее вывести из работы этот сервер, чтобы предотвратить аварию и произвести замену. |
"Мы можем сделать отказоустойчивый кластер и маловероятно, что он откажет целиком". Такой ответ говорит о непонимании причин отказа оборудования - скорее всего одинаковое оборудование, работающее в идентичных условиях, будет отказывать в близких временных интервалах. Вероятность выхода из строя серверов кластера одного за другим - это максимально вероятный сценарий. |
Когда произойдет ближайшая логическая авария, которая заденет работу сервиса? |
Наша СУБД увеличивается на 500GB в год, текущее свободное место на хранилище под ней - 1TB. Через 2 года место под БД закончится и это приведет к остановке сервиса. Мы можем заранее произвести работы по увеличению хранилища или масштабированию СУБД на разные хранилища. |
1) "Мы не знаем когда возникнет баг в софте". Такой ответ говорит о том, что опыт эксплуатации конкретного софта недостаточен для оценки его надежности. 2) "Мы будем быстро исправлять такие ситуации, наймем дежурную смену и т.п." Такой ответ говорит о непонимании внутреннего устройства обслуживаемых систем, отсутствии возможностей прогнозировать ситуацию и желании закрыть неизвестность человеческим ресурсом. |
Если мы вырастем по количеству пользователей в 5 раз, сколько нам нужно будет ресурсов добавить? |
Ответ представляет собой таблицу из сервисов, потребление ресурса которыми вырастет, и величины, на которые оно вырастет, исходя из расчета, опирающегося на границы применимости. |
1) "Сейчас у нас 40 CPU, 100GB RAM, 5TB диска. Давайте умножим на 5". Ответ не несет в себе смысла - это может быть как верно, так и нет в любую сторону по любому из параметров. Далеко не факт, что все системы вырастут линейно. 2) "Давайте наращивать ресурс последовательно". Ответ говорит о том, что нет расчётных границ применимости в отношении пользователи/ресурсы, а значит при работе сервиса с каждой итерацией роста мы будем внезапно упираться в потолок ресурса. Вероятно, что рост в такой ситуации может быть нелинейным. |
Это одна из статей цикла об управлении ИТ и внутри ИТ. Будем писать и дальше о том, как добиться предсказуемой работы, надежности, скорости и удобства для пользователей. В общем всего того, что пользователи любят, а сделать это для них должны администраторы, sre, devops и другие участники команды эксплуатации инфраструктуры.
Если считаете, что парсинг Вашего сайта - проблема, то эта статья для Вас.
Позволяет решать интеллектуальные задачи помимо задач самого мониторинга
Особенности серверных приложений, работающих с сетью IoT-устройств на практике и в теории
В проекте морской навигации есть особенность, грамотная реализация которой и позволяет жить всей системе
Информация для осмысления
Какие действия создадут реальную отказоустойчивость и какое бездействие создаст мину замедленного действия