Ответ
Для меня самым сложным был сдвиг в мышлении от локальной, детерминированной среды разработки к глобальной, распределённой и часто недетерминированной производственной среде.
Как разработчик, я фокусировался на логике своего сервиса, его тестах и, в лучшем случае, на его контейнеризации. В DevOps пришлось осознать полный цикл жизни приложения: как код из Git попадает в прод, как он масштабируется под нагрузку, как восстанавливается при сбоях, как его безопасно обновлять и как наблюдаемость встроена в каждый этап.
Конкретные сложности:
- Глубина знаний: Пришлось глубоко погружаться в сети (VPC, Security Groups, DNS), операционные системы (тонкая настройка Linux), безопасность (IAM-роли, политики).
- Отладка распределённых систем: Проблема уже редко находится в одном логе. Нужно сопоставлять метрики, логи разных сервисов (приложения, балансировщика, БД) и трассировку, чтобы найти корневую причину.
- Ответственность за production: Осознание, что твоя ошибка в конфигурации Terraform или скрипте деплоя может привести к простою для всех пользователей, добавляет новый уровень ответственности.
Преодолеть это помогло методичное изучение основ (сетей, Linux) и практика — настройка мониторинга, участие в инцидентах и постепенное взятие на себя ответственности за части инфраструктуры.