
Знаете, что я делал вчера с 10 до 12 утра? Деплоил новую версию на production. Вручную. На 15 серверов. По SSH. В 2024 году. И это не самое грустное. Самое грустное — что я делаю это каждую неделю. И каждый раз обещаю себе, что вот на следующей неделе точно автоматизирую. Но следующая неделя наступает, и я снова сижу и копипащу команды в терминал.
Если вы узнали себя — добро пожаловать в клуб анонимных toil-оголиков. Давайте поговорим о том, почему мы все еще делаем руками то, что должны были автоматизировать еще вчера.
Неудобная правда о нашем времени
Я как-то решил провести эксперимент. Неделю записывал все, что делаю, с точностью до 15 минут. Результат меня шокировал. Из 40 рабочих часов только 8 я потратил на настоящую инженерную работу. Остальные 32 часа — это был чистый toil. Рутина. Повторяющиеся задачи. То, что я делал уже сотни раз и буду делать еще столько же, если не остановлюсь.
Самое обидное, что я считал себя продуктивным. Я же был занят! Постоянно что-то делал! Тикеты закрывались, задачи выполнялись. Но по факту я был белкой в колесе, которая бежит изо всех сил, но остается на месте.
Google в своей книге по SRE дает четкое определение toil — это работа, которая:
Выполняется вручную
Повторяется
Может быть автоматизирована
Не имеет долгосрочной ценности
Растет вместе с масштабом сервиса
Если хотя бы три пункта подходят — поздравляю, это toil. И от него нужно избавляться.
Почему мы это терпим?
Я долго думал, почему мы продолжаем делать одно и то же руками. И пришел к нескольким выводам.
Во-первых, иллюзия продуктивности. Когда ты делаешь рутинную работу, ты чувствуешь себя полезным. Ты занят. У тебя нет времени на прокрастинацию. В конце дня ты можешь сказать: "Я сегодня задеплоил 5 раз, создал 10 пользователей, обновил сертификаты на 3 доменах". Звучит продуктивно, правда? Но по факту это как хвастаться тем, что ты 5 раз сходил за водой к колодцу вместо того, чтобы провести водопровод.
Во-вторых, страх автоматизации. "А что если скрипт сломается? А что если я что-то не учту? А что если автоматизация удалит production базу?" Эти страхи реальны. Я сам однажды написал скрипт для очистки старых логов, который случайно удалил все логи. Включая свежие. Но знаете что? Я бы все равно рано или поздно ошибся, делая это руками. Только автоматизацию можно протестировать, а человеческую ошибку — нет.
В-третьих, "нет времени на автоматизацию". Это мой любимый парадокс. У нас нет 8 часов на написание скрипта, но есть 2 часа каждую неделю на выполнение той же задачи вручную. За месяц это уже 8 часов. За год — 104 часа. Но нет, на автоматизацию времени нет.
Топ задач, которые пора перестать делать руками
За годы работы я составил свой персональный хит-парад toil-задач. Уверен, вы найдете здесь что-то знакомое.
Деплой — убийца времени номер один
Помните, как вы деплоите? SSH на сервер, git pull, npm install, рестарт сервиса. Повторить для каждого сервера. Молиться, чтобы ничего не сломалось. Если сломалось — откатываться. Тоже вручную. На каждом сервере.
Я подсчитал: на деплой у меня уходило в среднем 30 минут. Два деплоя в день — час. Пять дней в неделю — 5 часов. 20 часов в месяц я тратил на копипаст команд в терминал!
Написание Ansible плейбука заняло у меня 4 часа. Окупилось за неделю. Теперь деплой — это одна команда. Которая, кстати, запускается автоматически при мерже в main. Я вообще не участвую в процессе.
Создание пользователей — тихий пожиратель времени
"Создайте мне доступ" — самый частый запрос в любой компании. И процесс обычно выглядит так: создать учетку в LDAP, добавить в нужные группы, создать почту, настроить VPN, выдать доступы к системам, сгенерировать SSH ключи, добавить в GitHub организацию... Я насчитал 12 шагов в нашем процессе. 45 минут на одного пользователя.
Сейчас это один тикет в Jira, который обрабатывается автоматически. Скрипт сам создает все необходимое, отправляет приветственное письмо с инструкциями и закрывает тикет. Время обработки — 2 минуты.
SSL сертификаты — ночной кошмар
Кто не просыпался в холодном поту от мысли "А когда там истекает сертификат на production?" У меня был Excel файл с датами истечения всех сертификатов. Каждый месяц я проверял, что истекает в следующем месяце, и обновлял вручную. Генерация CSR, отправка в CA, ожидание, установка, проверка — 2 часа на домен.
Let's Encrypt + cert-manager в Kubernetes решили эту проблему раз и навсегда. Сертификаты обновляются автоматически за 30 дней до истечения. Я узнаю об этом только из логов. Последний раз я думал о сертификатах полгода назад.
Отчеты — пожиратель пятниц
Каждую пятницу я тратил 4 часа на создание недельного отчета. Собирал данные из Prometheus, Jira, GitHub, AWS Cost Explorer. Копировал в Excel. Строил графики. Форматировал. Отправлял по почте. 4 часа каждую пятницу!
Теперь это Python-скрипт, который запускается по cron. Он сам собирает все метрики, генерирует красивый HTML-отчет и отправляет всем заинтересованным. А я в это время пью кофе. Или делаю что-то действительно полезное.
ROI автоматизации: математика, которая убеждает
Когда мне нужно было убедить руководство выделить время на автоматизацию, я применил простую формулу:
ROI = (Время_сэкономленное_в_месяц × Стоимость_часа × 12) / (Время_на_автоматизацию × Стоимость_часа)
Для деплоя расчет был такой:
Экономия: 20 часов в месяц × $50/час × 12 месяцев = $12,000 в год
Затраты: 8 часов на автоматизацию × $50/час = $400
ROI = $12,000 / $400 = 3000%
Три тысячи процентов возврата инвестиций! Попробуйте найти такую доходность на фондовом рынке.
С чего начать прямо сейчас
Я знаю, о чем вы думаете. "Это все здорово, но у меня реально нет времени". Я тоже так думал. Пока не начал с малого.
Правило одной автоматизации в неделю
Каждую пятницу я выделяю 2 часа на автоматизацию одной задачи. Любой. Даже самой маленькой. Началось с bash-скрипта для бэкапа базы. Потом GitHub Action для деплоя. Потом Ansible плейбук для настройки серверов.
Через полгода я оглянулся назад и понял, что мой toil сократился с 80% до 30%. Это 20 часов в неделю, которые я вернул себе!
Документируйте toil
Заведите простую табличку. Каждый раз, когда делаете что-то повторяющееся, записывайте. Сколько времени заняло, как часто делаете. Через месяц отсортируйте по частоте и времени. Топ-3 задачи — ваши кандидаты на автоматизацию.
Не стремитесь к совершенству
Мой первый скрипт для деплоя был ужасен. 50 строк bash-кода без проверки ошибок. Но он работал. И экономил мне 30 минут каждый день. Потом я его улучшил. Потом переписал на Python. Потом заменил на Ansible. Но если бы я ждал, пока напишу "идеальное решение", я бы до сих пор деплоил руками.
Инструменты, которые изменили мою жизнь
Ansible — для любой работы с серверами. Деплой, настройка, обновления — все, что раньше делалось по SSH, теперь делает Ansible.
GitHub Actions — для CI/CD. Бесплатно для публичных репозиториев, дешево для приватных. Проще Jenkins, мощнее чем кажется.
Python + schedule — для любых периодических задач. Отчеты, бэкапы, проверки — если что-то нужно делать регулярно, Python справится.
Terraform — для инфраструктуры. Создание серверов, настройка сети, управление DNS — все в коде, версионируется в Git.
Культурный сдвиг
Самое сложное в борьбе с toil — это не технологии, а культура. В многих компаниях toil воспринимается как "настоящая работа", а автоматизация — как "развлечение для гиков".
Я столкнулся с этим в предыдущей компании. Коллега гордился тем, что может задеплоить на 50 серверов за час. Вручную. Когда я предложил автоматизировать, услышал: "У нас так принято, мы всегда так делали".
Ушел я оттуда через 3 месяца. Жизнь слишком коротка, чтобы тратить ее на toil.
В новой компании первое, что я сделал — провел воркшоп по автоматизации. Показал ROI. Дал попробовать инструменты. Через месяц даже самые консервативные коллеги начали автоматизировать свои задачи.
Ошибки, которые я совершал
Попытка автоматизировать все сразу. Я решил за выходные автоматизировать весь деплой-процесс. В понедельник production лежал 3 часа. Урок: автоматизируйте постепенно, тестируйте каждый шаг.
Излишняя сложность. Мой первый "фреймворк для автоматизации" был настолько сложным, что никто кроме меня не мог им пользоваться. Это создало еще больше toil — теперь все просили меня запустить автоматизацию. Урок: простота важнее элегантности.
Отсутствие документации. Я написал кучу скриптов и не документировал их. Через полгода не мог вспомнить, что делает половина из них. Урок: README.md — ваш лучший друг.
Взгляд в будущее
Я верю, что через 5 лет ручной toil будет восприниматься как анахронизм. Как перфокарты или дискеты. AI-ассистенты будут писать автоматизацию за нас. CI/CD станет настолько простым, что его будут настраивать junior-разработчики. Infrastructure as Code станет единственным способом управления инфраструктурой.
Но пока этого не произошло, у нас есть выбор. Продолжать тратить жизнь на рутину или инвестировать время в автоматизацию и освободиться для действительно интересных задач.
Последняя мысль
Каждый раз, когда вы делаете что-то вручную второй раз, остановитесь и подумайте: "А буду ли я делать это третий раз?" Если ответ "да" — автоматизируйте. Не откладывайте. Не ждите "свободного времени". Оно никогда не появится.
Помните: каждая минута, потраченная на toil — это минута, украденная у вашего развития, обучения, творчества. У вашей жизни, в конце концов.
Я начал эту статью с истории о ручном деплое. Знаете, что я делаю сейчас, пока вы читаете эти строки? Ничего. Потому что мой код деплоится автоматически. А я могу потратить освободившееся время на что-то действительно важное. Например, на написание этой статьи.
Перестаньте быть белкой в колесе. Автоматизируйте. Начните прямо сейчас. С самой маленькой, самой раздражающей задачи. Через год вы не узнаете свою работу. И будете благодарны себе за это решение.
Комментарии (4)

Melnix
28.10.2025 13:00Спасибо за статью, сподвигли начать автоматизацию, которую откладывал долго...
После прочтения статьи вспомнил байку:У нас тут билд-инженера сманили. Мужчина принципиально жил только в консоли и vim, диаграммы рисовал скриптами в DOT, документацию писал маркдауном в Wiki, а если что-либо требовало более полутора минут, писал скрипт. Сидим, разбираем его наследие.
Из прекрасного:
1. smack-my-bitch-up.sh — шлет, видимо, его жене сообщение "Задержался на работе" и генерит отмазки из списка. Поставлено в планировщик, запускается после 9 вечера, если на рабочей станции висят интерактивные сессии по ssh с его логином.
2. kumar-mudak.sh — ищет в почте письма от Кумара (заграничный администратор баз данных с говорящей фамилией) с ключевыми словами (sorry, help и т.д.), откатывает упомянутую базу стейджинга на последнюю резервную копию и отписывается типа «не вопрос, будь аккуратнее в следующий раз». Зело заколебал его Кумар, вестимо.
3. badun.sh — поставлен в планировщик на определенные даты, шлет письма "плохо себя чувствую, поработаю из дома". Опять же, если к 8:45 утра не обнаружилось интерактивных сессий на рабочей станции.
4. И, наконец, первый приз: coffe-blyat.sh — ждет 17 секунд (!), логинится по ssh в кофе-машину (мы и понятия не имели, что она в сетке, да и ещё, что на ней sshd поднят) и засылает туда какую-то абракадабру. Экспериментальным путем выяснили что код запускает процесс варения half-caf chai latte среднего размера, которое начинает выливаться в чашку как раз к тому моменту, когда неторопливо идущий человек добирается от его офиса до автомата.

andreynekrasov
28.10.2025 13:00Думал "вручную" - это про запуск ансибл-плейбука. Да и про git pull npm install на сервере - смешная шутка. Вряд ли кто то так делает сейчас.
SSL сертификаты - когда то про мониторинг, который предупредит за пару недель, а сейчас это всё вообще само обновляется, слава роботам :)
pumm
"Я решил за выходные автоматизировать весь деплой-процесс. В понедельник production лежал 3 часа. ". А меня бы за такое расстреляли... Хорошая жизнь у автора.
nordby Автор
https://habr.com/ru/articles/958042/ а ты вредри blameless и не расстреляют