DevOps — это не только инструменты, но и постоянное принятие решений: как настроить Docker, почему падает под в Kubernetes, как автоматизировать CI/CD без ошибок. ChatGPT уже сегодня может стать вашим виртуальным коллегой, если правильно формулировать запросы. В этой подборке — 12 проверенных промтов, которые превращают модель в опытного DevOps-инженера. Каждый промт содержит задачу, готовый текст для копирования и пример результата. Мы не обещаем чудес: AI не заменит вас, но снимет рутину и подскажет нестандартные решения.
Промты разбиты на три категории: базовые (для повседневных задач), продвинутые (для сложных сценариев) и экспертные (для архитектурных решений). Все примеры кода реальны и проверены в Docker 24+, Kubernetes 1.28+ и GitHub Actions. Статья будет полезна как новичкам, так и опытным инженерам, которые хотят систематизировать работу с AI.
Базовые промты
1. Генерация Dockerfile для Python-приложения
Задача: быстро создать оптимизированный Dockerfile для Flask-приложения с учётом кэширования слоёв.
Промт:
Ты — DevOps-инженер. Напиши Dockerfile для Python 3.11 приложения на Flask. Требования: использовать multi-stage build, минимизировать размер образа, кэшировать зависимости, запускать от непривилегированного пользователя. Добавь комментарии к каждому шагу.
Пример результата:
# Stage 1: builder
FROM python:3.11-slim AS builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --user -r requirements.txt
# Stage 2: runtime
FROM python:3.11-slim
WORKDIR /app
COPY --from=builder /root/.local /root/.local
COPY . .
ENV PATH=/root/.local/bin:$PATH
RUN useradd -m appuser && chown -R appuser /app
USER appuser
CMD ["flask", "run", "--host=0.0.0.0"]
2. Диагностика ошибки в Kubernetes-поде
Задача: интерпретировать статус CrashLoopBackOff и предложить шаги устранения.
Промт:
Под в Kubernetes находится в состоянии CrashLoopBackOff. Опиши пошаговый план диагностики: какие команды kubectl выполнить, на что смотреть в логах и событиях. Приведи пример вывода и его интерпретацию.
Пример результата:
1. kubectl describe pod <pod-name> — ищем события (Events) с ошибками.
2. kubectl logs <pod-name> --previous — логи предыдущего запуска.
3. Проверяем liveness/readiness probes: возможно, они настроены слишком агрессивно.
4. Убеждаемся, что образ существует и доступен.
5. Проверяем resource limits: нехватка памяти может вызывать OOMKilled.
3. Написание GitHub Actions workflow для тестов и сборки
Задача: автоматизировать CI для Node.js-проекта.
Промт:
Создай GitHub Actions workflow, который запускается при push в main и pull request. Шаги: установка зависимостей, линтинг, тесты, сборка Docker-образа и пуш в GitHub Container Registry. Используй кэширование для node_modules и Docker-слоёв.
Пример результата:
name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- run: npm ci
- run: npm run lint
- run: npm test
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
push: true
tags: ghcr.io/${{ github.repository }}:latest
Продвинутые промты
4. Создание Helm-чарта для микросервиса
Задача: сгенерировать Helm-чарт с параметризацией реплик, ресурсов и ingress.
Промт:
Напиши Helm-чарт для микросервиса на Go. Включи: Deployment с 2 репликами по умолчанию, Service типа ClusterIP, Ingress с TLS, ConfigMap для переменных окружения. Параметры должны быть вынесены в values.yaml. Добавь комментарии.
Пример результата:
# values.yaml
replicaCount: 2
image:
repository: myapp
tag: latest
resources:
limits:
cpu: 100m
memory: 128Mi
5. Оптимизация пайплайна CI/CD с параллельными стадиями
Задача: ускорить сборку за счёт параллельного выполнения тестов.
Промт:
У меня есть GitLab CI пайплайн, который выполняется 15 минут. Предложи, как распараллелить стадии: тесты (unit, integration), линтинг, сборка образа. Напиши пример .gitlab-ci.yml с использованием параллельных джобов и кэширования.
Пример результата:
stages:
- test
- build
unit_test:
stage: test
script: npm run test:unit
parallel: 4
integration_test:
stage: test
script: npm run test:integration
build_image:
stage: build
script: docker build -t app .
6. Настройка мониторинга Prometheus + Grafana для Kubernetes
Задача: получить готовые манифесты для сбора метрик с подов.
Промт:
Напиши манифесты Kubernetes для развёртывания Prometheus и Grafana. Настрой ServiceMonitor для сбора метрик с приложений, используя Prometheus Operator. Добавь дашборд Grafana для отображения CPU и памяти подов.
Пример результата:
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: myapp-monitor
spec:
selector:
matchLabels:
app: myapp
endpoints:
- port: web
Экспертные промты
7. Проектирование отказоустойчивого кластера Kubernetes
Задача: спроектировать архитектуру с тремя зонами доступности.
Промт:
Спроектируй отказоустойчивый кластер Kubernetes для продакшена с тремя зонами доступности. Учти: etcd должен быть на выделенных нодах, control plane — в трёх экземплярах, рабочие ноды — автомасштабирование. Опиши конфигурацию сети и хранилища. Приведи пример манифеста для развёртывания приложения с PodDisruptionBudget.
Пример результата:
- Control plane: 3 мастера в разных зонах.
- etcd: 3 выделенные ноды с SSD.
- Worker nodes: группы с cluster-autoscaler.
- Сеть: Calico с BGP.
- PodDisruptionBudget:
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: myapp-pdb
spec:
minAvailable: 2
selector:
matchLabels:
app: myapp
8. Аудит безопасности Docker-образов
Задача: выявить уязвимости и предложить исправления.
Промт:
Проведи аудит безопасности Docker-образа на основе Alpine Linux. Напиши команды для сканирования уязвимостей (Trivy), проверки на соответствие CIS Benchmark. Предложи изменения в Dockerfile для уменьшения поверхности атаки: удаление лишних пакетов, использование distroless, настройка seccomp.
Пример результата:
- trivy image myapp:latest — покажет CVE.
- Рекомендации: перейти на gcr.io/distroless/python3, удалить shell, установить --read-only в Kubernetes.
9. Миграция с Docker Compose на Kubernetes
Задача: пошаговый план и примеры манифестов.
Промт:
У меня есть приложение из 3 сервисов (frontend, backend, redis), описанное в docker-compose.yml. Составь план миграции в Kubernetes: какие объекты создать (Deployment, Service, ConfigMap, Secret), как организовать сетевое взаимодействие. Напиши примеры манифестов для backend и redis, используя best practices.
Пример результата:
- Frontend: Deployment + Service типа LoadBalancer.
- Backend: Deployment + Service ClusterIP.
- Redis: StatefulSet с PersistentVolume.
- Секреты: через Secret.
10. Создание самовосстанавливающегося пайплайна
Задача: автоматически откатывать деплой при неудачных тестах.
Промт:
Напиши скрипт для GitHub Actions, который при падении тестов после деплоя автоматически откатывает предыдущую версию. Используй стратегию blue-green: переключение трафика через Service. Опиши шаги и приведи код.
Пример результата:
- name: Deploy
run: kubectl apply -f k8s/deployment.yaml
- name: Test
run: ./smoke-test.sh
- name: Rollback on failure
if: failure()
run: kubectl rollout undo deployment/myapp
11. Настройка GitOps с Argo CD
Задача: автоматизировать синхронизацию состояния кластера с Git.
Промт:
Опиши настройку Argo CD для GitOps-подхода. Создай Application манифест, который отслеживает ветку main в репозитории и автоматически синхронизирует изменения в кластер. Добавь уведомления в Slack при успешной синхронизации.
Пример результата:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: myapp
spec:
destination:
namespace: default
server: https://kubernetes.default.svc
source:
repoURL: https://github.com/myorg/myapp.git
targetRevision: main
path: k8s
syncPolicy:
automated:
prune: true
selfHeal: true
12. Оптимизация затрат на Kubernetes
Задача: снизить расходы на облачные ресурсы.
Промт:
Проанализируй типичные способы экономии в Kubernetes: right-sizing, использование spot-инстансов, автоскейлинг. Напиши пример Vertical Pod Autoscaler и Horizontal Pod Autoscaler для приложения с переменной нагрузкой. Оцени потенциальную экономию.
Пример результата:
- VPA рекомендации по CPU/памяти.
- HPA на основе метрик CPU.
- Использование spot-нод для непостоянных нагрузок.
- Экономия до 40% при правильной настройке.
Как использовать промты эффективно
Чтобы ChatGPT давал точные ответы, следуйте трём правилам:
1. Контекст — всегда указывайте версии инструментов, окружение и ограничения.
2. Роль — начинайте с фразы «Ты — DevOps-инженер с опытом...».
3. Итерации — уточняйте запрос, если результат не идеален.
Помните: AI — это помощник, а не замена экспертизы. Всегда проверяйте сгенерированные конфигурации в тестовой среде.
Попробуйте эти промты в своём следующем проекте — и вы увидите, как рутинные задачи уходят на второй план, освобождая время для архитектуры и развития. Делитесь своими находками в комментариях!
Комментарии