Ответ
Моя цель как инженера — минимизировать рутину через автоматизацию. В идеале на полностью ручные, повторяющиеся операции должно уходить не более 10-15% времени. Если этот процент растет — это прямой сигнал к тому, что процесс требует пересмотра и автоматизации.
Мой подход:
- Автоматизирую все, что повторяется больше двух раз. Например, ручное создание веток и окружений для feature-разработки мы заменили на автоматический пайплайн в GitLab при создании merge request.
- Делегирую рутину системам. Вместо ручного деплоя мы используем GitOps с ArgoCD: разработчик создает PR с манифестами, после мержа ArgoCD автоматически применяет изменения в кластере.
- Если рутина неизбежна, делаю ее безопасной и документированной. Например, критические операции вроде очистки продовой базы данных выполняются через заранее написанные и проверенные скрипты с обязательным подтверждением и логированием.
Пример: Ручной бэкап конфигов Nginx был заменен на скрипт, который:
- Запускается по Cron.
- Сохраняет файлы в S3 с versioning.
- Отправляет уведомление в Slack об успехе/провале.
- Регулярно тестирует восстановление из бэкапа на тестовом стенде.
Таким образом, время, которое раньше тратилось на рутину, теперь инвестируется в улучшение надежности и производительности платформы.