Автоматизация рутины: какие задачи в компании стоит отдать скрипту
Как найти в компании операции, которые выгодно автоматизировать, и как оценить, окупится ли автоматизация. Примеры типичных задач — от выгрузок между системами до проверок, — и небольшой скрипт на Python.
Алексей Сергеев3 мин чтения
В каждой компании есть операции, которые сотрудники выполняют вручную каждый день или каждую неделю: выгрузить отчёт из одной системы и загрузить в другую, сверить две таблицы, разослать напоминания, проверить, что ничего не сломалось. По отдельности каждая занимает немного времени. Вместе они съедают часы и регулярно становятся источником ошибок.
Признаки задачи, которую стоит автоматизировать
Повторяется по расписанию или по одинаковому поводу. Каждое утро, каждый понедельник, при каждом новом заказе.
Выполняется по понятным правилам. Если задачу можно описать инструкцией на одну страницу, её, скорее всего, можно описать и кодом.
Данные уже есть в электронном виде. В учётной системе, таблице, почте, по API.
Ошибка стоит дорого. Перепутанная цифра в счёте или пропущенное напоминание.
А вот задачи, где каждый раз требуется человеческое решение или правила постоянно меняются, автоматизировать целиком обычно не стоит — лучше автоматизировать подготовку данных для решения.
Типичные примеры
Интеграции между системами. Заказы с сайта попадают в учётную систему, статусы — обратно, без ручного переноса.
Отчёты. Сбор данных из нескольких источников в одну таблицу или панель, которая обновляется сама.
Уведомления. Сообщение в рабочий чат, когда произошло важное событие: крупный заказ, просроченная задача, ошибка в обмене.
Проверки. Сроки сертификатов, доменов, лицензий, наличие свежих резервных копий.
Учётные записи. Создание и отключение доступов сотрудникам в нескольких сервисах по одному действию.
Как оценить, окупится ли автоматизация
Простая прикидка: сколько времени в месяц уходит на задачу сейчас, сколько стоит ошибка и как часто она случается. С другой стороны — стоимость разработки и поддержки: скрипт, который никто не сопровождает, ломается при первом изменении формата выгрузки.
Поэтому я всегда закладываю в решение журнал работы, уведомление о сбое и короткую документацию: что делает скрипт, где он запущен, что делать, если пришло сообщение об ошибке.
Пример: проверка сроков TLS-сертификатов
Небольшой пример на Python — скрипт проверяет, сколько дней осталось до окончания сертификатов на сайтах компании, и сообщает, если меньше заданного порога. Его можно запускать раз в день по расписанию и отправлять результат в почту или чат.
check_certs.py
import socket
import ssl
from datetime import datetime, timezone
DOMAINS = ["example.com", "cloud.example.com", "mail.example.com"]
WARN_DAYS = 21
def days_left(host: str, port: int = 443) -> int:
context = ssl.create_default_context()
with socket.create_connection((host, port), timeout=10) as sock:
with context.wrap_socket(sock, server_hostname=host) as tls:
not_after = tls.getpeercert()["notAfter"]
expires = datetime.fromtimestamp(ssl.cert_time_to_seconds(not_after), tz=timezone.utc)
return (expires - datetime.now(timezone.utc)).days
def main() -> int:
problems = []
for domain in DOMAINS:
try:
left = days_left(domain)
except OSError as exc:
problems.append(f"{domain}: не удалось проверить ({exc})")
continue
if left < WARN_DAYS:
problems.append(f"{domain}: сертификат истекает через {left} дн.")
for line in problems:
print(line)
return 1 if problems else 0
if __name__ == "__main__":
raise SystemExit(main())
Код возврата 1 при проблемах позволяет встроить проверку в любой планировщик или систему мониторинга. Это и есть принцип хорошей автоматизации: маленький понятный инструмент, который делает одну вещь и громко сообщает, если что-то не так.
Когда нужен не скрипт, а сервис
Если с автоматизацией работают несколько сотрудников, нужны права доступа, история изменений и удобный интерфейс, — это уже внутренний веб-сервис. Я делаю такие сервисы на Python и Django: панель для сотрудников, API для интеграций, фоновые задачи. Подробнее — в разделе «Разработка и автоматизация».
Есть рутина, которая отнимает время сотрудников?
Опишите процесс: что делают руками, в каких системах и как часто. Я подскажу, что можно автоматизировать и как.
Почему «плоская» сеть, где все устройства видят друг друга, - главный источник проблем в небольшом офисе, и как разделить её на VLAN на MikroTik с RouterOS 7: схема, настройка моста, правила firewall и типичные ошибки.
Как настроить второй интернет-канал так, чтобы офис переключался на него сам и возвращался обратно, когда основной провайдер восстановится. Рекурсивная маршрутизация на MikroTik, проверки доступности и подводные камни.
Мёртвые зоны, обрывы при переходе между кабинетами и «тормоза» в переговорной — разбираю частые причины проблем с офисным Wi-Fi и то, как я проектирую беспроводную сеть, чтобы она работала стабильно.