Промты, которые превращают ChatGPT в вашего DevOps-инженера: Docker, Kubernetes и CI/CD без круглосуточных дежурств
DevOps-инженер сегодня — это человек, который одновременно пишет Dockerfile, дебажит CrashLoopBackOff в три часа ночи, правит Terraform и объясняет разработчикам, почему их пайплайн падает на шаге npm ci. Рутины столько, что на архитектуру и профилактику инцидентов времени почти не остаётся. По данным исследования DORA (Google Cloud, отчёт State of DevOps), элитные команды тратят на восстановление после инцидента менее часа, но большинство команд — дни. Разница часто не в инструментах, а в скорости реакции и качестве артефактов: манифестов, пайплайнов, runbook'ов.
Именно здесь LLM становятся настоящим ускорителем. ChatGPT не заменит кластер и не подпишет за вас change request, но он отлично справляется с черновиками конфигураций, разбором логов и превращением хаоса в структурированный чек-лист. Ниже — подборка промтов, проверенных в реальной работе: от Dockerfile до инцидент-репортов. Каждый промт содержит задачу, сам текст и пример результата.
Базовые промты: фундамент инфраструктуры
1. Dockerfile с многоступенчатой сборкой
Задача: получить минимальный, безопасный образ без ручного перебора баз.
Промт:
Ты — senior DevOps-инженер. Напиши production-ready Dockerfile для приложения на Node.js 20 (Express). Требования: multi-stage build, non-root пользователь, фиксированные версии базовых образов, .dockerignore, healthcheck. Объясни каждую инструкцию и укажи, как уменьшить размер образа.
Пример результата: ChatGPT выдаёт двухступенчатый Dockerfile: сборка на node:20.11-alpine, рантайм на node:20.11-alpine с USER node, копированием только dist и node_modules, а также HEALTHCHECK CMD wget -qO- http://localhost:3000/health || exit 1. В комментариях — почему npm ci --omit=dev уменьшает слой и как --chown в COPY избавляет от лишнего слоя.
2. docker-compose для локальной среды
Задача: быстро поднять окружение с базой, кэшем и приложением.
Промт:
Сгенерируй docker-compose.yml для локальной разработки: сервис api (build из ./api), postgres 16 с volume, redis 7, adminer. Добавь healthcheck для postgres, depends_on с condition, переменные окружения через .env. Прокомментируй, как избежать race condition при старте.
Пример результата: compose-файл с depends_on: postgres: condition: service_healthy, томом pgdata и пробросом портов. Модель поясняет, что depends_on без healthcheck не гарантирует готовность БД, и предлагает retry-логику в приложении.
Продвинутые промты: Kubernetes и CI/CD
3. Дебаг Kubernetes-манифеста
Задача: найти причину, почему Pod не запускается.
Промт:
Вот манифест Deployment и вывод `kubectl describe pod`. Найди причину статуса CrashLoopBackOff, объясни шаг за шагом и предложи исправленный манифест. Не меняй образ без объяснения.
Пример результата: модель замечает, что livenessProbe бьёт в /health до прогрева приложения, и предлагает initialDelaySeconds: 30, а также startupProbe. Это классическая ошибка, из-за которой контейнер перезапускается по кругу.
4. Пайплайн GitHub Actions
Задача: собрать CI с тестами, линтом и пушем образа.
Промт:
Сгенерируй .github/workflows/ci.yml: триггер на push и pull_request в main, job test (Node 20, кэш npm), job build-and-push (только на push в main) с docker/build-push-action и логином в GHCR через secrets. Добавь concurrency, чтобы отменять устаревшие запуски.
Пример результата: YAML с concurrency: group: ${{ github.workflow }}-${{ github.ref }}, actions/cache@v4 для npm и docker/login-action@v3. Модель предупреждает, что GITHUB_TOKEN требует permissions: packages: write — частая причина ошибки denied: permission_denied.
5. GitLab CI с окружениями
Задача: пайплайн со стадиями и ручным деплоем в прод.
Промт:
Составь .gitlab-ci.yml: стадии build, test, deploy_staging, deploy_prod. Деплой в прод — manual, только с тега. Используй rules вместо only/except. Прокомментируй, как работают environments.
Пример результата: конфиг с rules: - if: $CI_COMMIT_TAG для прода и environment: name: production. Пояснение про when: manual и allow_failure: false.
6. Terraform для облачного ресурса
Задача: описать инфраструктуру как код без магии.
Промт:
Напиши Terraform-конфигурацию для managed Kubernetes-кластера и VPC в Yandex Cloud: модули, переменные, outputs, remote state в S3-совместимом бакете. Объясни, где хранить секреты и почему не в tf-файлах.
Пример результата: структура modules/network, modules/cluster, backend с endpoint и access_key из переменных окружения. Модель напоминает про .gitignore для *.tfstate и terraform.tfvars.
Экспертные промты: инциденты и документация
7. Разбор логов инцидента
Задача: превратить поток логов в гипотезы.
Промт:
Вот 200 строк логов приложения и nginx за момент инцидента. Составь таблицу: время, сервис, ошибка, вероятная причина. Предложи 3 гипотезы по убыванию вероятности и команды для проверки каждой. Не выдумывай факты, которых нет в логах.
Пример результата: таблица с таймлайном, гипотеза «исчерпание connection pool к БД» с проверкой через pg_stat_activity и гипотеза про таймауты upstream в nginx.
8. Runbook для дежурного
Задача: снизить MTTR за счёт понятных шагов.
Промт:
Напиши runbook для алерта «High error rate на API». Включи: симптомы, первые 5 команд диагностики, критерии эскалации, шаги отката, контакты. Формат — Markdown, шаги пронумерованы, без общих фраз.
Пример результата: документ с kubectl logs -l app=api --tail=100, проверкой дашборда, критерием «ошибки > 5% более 10 минут» и процедурой kubectl rollout undo.
9. Ревью безопасности манифестов
Задача: поймать небезопасные настройки до прода.
Промт:
Проверь манифесты на соответствие CIS Kubernetes Benchmark: securityContext, capabilities, readOnlyRootFilesystem, resource limits. Выведи таблицу: ресурс, проблема, риск, исправление.
Пример результата: таблица с runAsNonRoot: false, отсутствием limits и allowPrivilegeEscalation: true, плюс патчи.
Сравнение: где ИИ помогает, а где нет
| Задача | Помощь ChatGPT | Контроль человека |
|---|---|---|
| Черновик Dockerfile | Высокая | Ревью базовых образов |
| Дебаг манифестов | Высокая | Проверка в staging |
| Логи инцидента | Средняя | Верификация гипотез |
| Секреты и доступы | Низкая | Только вручную |
| Деплой в прод | Не применимо | Всегда человек |
Как встроить это в рабочий процесс
Промты работают лучше, когда вы даёте контекст: версию Kubernetes, облако, ограничения. Сохраняйте удачные формулировки в внутреннюю wiki — это ваш «инфраструктурный промпт-репозиторий». И помните: модель генерирует гипотезы, а не истину. Любой манифест проверяйте через kubectl diff или terraform plan перед применением.
DevOps не про то, чтобы дежурить круглосуточно, а про то, чтобы система сама говорила, что с ней не так. Промты — это способ сократить путь от «что-то сломалось» до «вот причина и вот фикс». Начните с одного-двух промтов из подборки, адаптируйте под свой стек и постепенно соберите личную библиотеку — она сэкономит вам не один ночной звонок.
Комментарии