← на главную

Алексей Батищев. Заметки обо всём, что происходит со мной и окружающим миром

Избранное в блоге: мои фото- и видеоработы, забрать своё из облаков, КЭНК

КЭНК: реюз и обмен времени человеков на время машин

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

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

Пример намба один

Заказчик спросил странное: сколько в домене пользователей на старой версии ОС и сидящих на третьем этаже здания (кабинеты в атрибутах есть).

Решение: запрос довольно чудной, скорее всего одноразовый, но информацию стоит собрать автоматически. И нужно не только написать скрипт, считающий автоматически, но и добавить его в пачку подобных, запускающихся регулярно и сохраняющий отчёт в ресурс с соответствующим доступом. Тогда в следующий раз эта информация будет уже собрана (с терпимой свежестью) и доступна. А если она никогда больше не понадобится — труда роботов не жалко.

Пример намба два

Наступил декабрь и заказчик хочет потратить деньги на лицензионный антивирус. Спрашивает, сколько серверов и лицензий сейчас, и прочую отчетную информацию.

Решение: вместо выгрузки отчёта в системе управления антивирусом и пересылки PDF по почте, сделать ежедневную задачу выгрузки отчётов в ресурс с соответствующим доступом. Через год (или через неделю, неважно) при запросе заказчика информация (с точностью до дня) уже будет готова. Идеально, если она будет доступна заказчику сразу напрямую или в точке, куда он обратится с запросом в следующий раз.

Пример намба три

В Большой и Сложной системе есть логи работы. Специальный Админ (и только он) может поглядеть в логи военно-морским глазом и определить, когда система в последний раз успешно обрабатывала запрос Важного Начальника. Важный Начальник часто ругается на доступность системы, все встают на уши, Специального Админа приходится вызванивать со свадеб и рыбалок, чтобы он посмотрел в логи Всё Ли Хорошо.

Решение: пишем скрипт, парсящий логи (несмотря на всю их кривость — Специальный Админ может, значит и скрипт можно обучить; и да, тут можем потерять неделю-другую, но лучше день потерять и потом за пять минут долететь). Учим скрипт выдавать вердикт Всё Хорошо или Всё Не Хорошо (ну или Непонятно если действительно непонятно). Учитываем, что Важный Начальник не вечен и заодно учим скрипт смотреть Всё Ли Хорошо абсолютно по всем пользователям системы. Наконец, ставим скрипт на регулярное выполнение и выгрузку данных в ресурс, доступный диспетчерской службе. Теперь в большинстве случаев простой оператор может понять, что происходит, и успокоить Важного Начальника, если тому померещилось.

Да, Важный Начальник может через месяц забить и перестать спрашивать. Да, информация по остальным пользователям может не пригодиться никогда. Да, скрипт будет впустую стирать магнитные дорожки на этих ваших винчестерах и впустую греть воздух в дата-центре. Если это спасёт хоть одну рыбалку Специального Админа — труда роботов не жалко. Главное, чтобы Эффективный Менеджер не решил, что скрипт заменяет Специального Админа полностью, и уволенный рыболов не затаил на вас обиду.

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

Сделал — и работает

Для меня лучший пример действенности этих принципов — пойти за какой-то новой фичей править скрипт выгрузки статистики, или запиливать что-то новое, и увидеть дату предыдущего релиза в три, четыре года назад. Сделал — и работает, и результат хоть иногда но пригождается.

Времени роботов — не жалко! Слава роботам!