DevOps-конвейер в одном чате: 12 промтов для Docker, Kubernetes, Terraform и CI/CD, которые сэкономят вам часы

DevOps-конвейер в одном чате: 12 промтов для Docker, Kubernetes, Terraform и CI/CD

Представьте: вы описываете задачу на естественном языке, а AI-агент генерирует готовый Dockerfile, манифест Kubernetes, конфигурацию Terraform или YAML для CI/CD. Звучит как магия? На самом деле это уже реальность в 2026 году. AI-ассистенты стали незаменимыми помощниками DevOps-инженеров, позволяя автоматизировать рутинные задачи и сосредоточиться на архитектуре.

В этой подборке я собрал 12 проверенных промтов, которые покрывают ключевые области: контейнеризацию, оркестрацию, инфраструктуру как код и пайплайны. Каждый промт сопровождается примером использования и пояснениями. Все примеры реальны и протестированы в боевых условиях.

Docker: контейнеризация без головной боли

1. Генерация оптимального Dockerfile для Python-приложения

Задача: Создать многоэтапный Dockerfile для FastAPI-приложения с минимальным размером образа.

Промт:

Ты — эксперт по Docker. Сгенерируй многоэтапный Dockerfile для Python 3.11 приложения на FastAPI. Требования:
- Использовать poetry для управления зависимостями.
- Итоговый образ на базе python:3.11-slim.
- Скопировать только необходимые файлы.
- Запускать приложение через uvicorn с 4 воркерами.
- Добавить healthcheck.
- Указать non-root пользователя.

Пример результата:

# Этап сборки
FROM python:3.11-slim as builder
WORKDIR /app
RUN pip install poetry
COPY pyproject.toml poetry.lock ./
RUN poetry export --without-hashes --format=requirements.txt > requirements.txt

# Финальный этап
FROM python:3.11-slim
WORKDIR /app
COPY --from=builder /app/requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
RUN useradd -m appuser && chown -R appuser:appuser /app
USER appuser
EXPOSE 8000
HEALTHCHECK --interval=30s --timeout=5s --retries=3 CMD curl -f http://localhost:8000/health || exit 1
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000", "--workers", "4"]

Пояснение: Многоэтапная сборка уменьшает размер образа, а non-root пользователь повышает безопасность. Healthcheck позволяет Kubernetes отслеживать состояние пода.

2. Оптимизация существующего Dockerfile

Задача: Уменьшить размер образа и ускорить сборку.

Промт:

Проанализируй этот Dockerfile и предложи оптимизации:

[вставьте ваш Dockerfile]

Укажи, какие слои можно объединить, какие инструкции кэшируются неэффективно, и как уменьшить итоговый размер. Предложи исправленный вариант.

Пример результата: AI может указать на необходимость объединения RUN-команд, использования .dockerignore, перехода на alpine-образы и т.д. Например, замена apt-get update && apt-get install на одну команду с очисткой кэша.

Kubernetes: манифесты и отладка

3. Генерация манифеста Deployment и Service

Задача: Развернуть приложение в Kubernetes с автомасштабированием.

Промт:

Создай YAML-манифесты для Kubernetes (Deployment и Service) для приложения из Docker-образа myapp:latest. Требования:
- 3 реплики.
- Ресурсы: запросы CPU 100m, память 128Mi; лимиты CPU 500m, память 256Mi.
- Liveness и readiness пробу на порту 8000 путь /health.
- Service типа ClusterIP.
- HorizontalPodAutoscaler с целевой загрузкой CPU 70%.

Пример результата:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp
spec:
  replicas: 3
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
      - name: myapp
        image: myapp:latest
        ports:
        - containerPort: 8000
        resources:
          requests:
            cpu: "100m"
            memory: "128Mi"
          limits:
            cpu: "500m"
            memory: "256Mi"
        livenessProbe:
          httpGet:
            path: /health
            port: 8000
          initialDelaySeconds: 10
          periodSeconds: 5
        readinessProbe:
          httpGet:
            path: /health
            port: 8000
          initialDelaySeconds: 5
          periodSeconds: 5
---
apiVersion: v1
kind: Service
metadata:
  name: myapp
spec:
  selector:
    app: myapp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8000
  type: ClusterIP
---
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: myapp
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: myapp
  minReplicas: 3
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 70

Пояснение: Манифесты включают все необходимые компоненты для отказоустойчивого развёртывания. AI автоматически добавил HPA для автомасштабирования.

4. Диагностика проблемы с подом

Задача: Понять, почему под не запускается.

Промт:

Мой под в Kubernetes находится в статусе CrashLoopBackOff. Вот вывод `kubectl describe pod <pod-name>` и `kubectl logs <pod-name>`:

[вставьте вывод]

Проанализируй и предложи шаги для устранения проблемы.

Пример результата: AI может определить, что проблема в неправильном healthcheck, отсутствии секретов или ошибке в команде запуска. Например, если в логах видно connection refused, AI предложит проверить доступность базы данных и настройки сети.

Terraform: инфраструктура как код

5. Создание модуля Terraform для AWS VPC

Задача: Развернуть VPC с публичными и приватными подсетями.

Промт:

Напиши модуль Terraform для создания VPC в AWS со следующими требованиями:
- 2 публичные подсети в разных AZ.
- 2 приватные подсети в разных AZ.
- Internet Gateway и NAT Gateway.
- Таблицы маршрутизации для публичных и приватных подсетей.
- Теги для всех ресурсов.

Пример результата: AI сгенерирует main.tf, variables.tf, outputs.tf с корректными ресурсами. Например:

resource "aws_vpc" "main" {
  cidr_block = var.vpc_cidr
  tags = {
    Name = "main-vpc"
  }
}

resource "aws_subnet" "public" {
  count = 2
  vpc_id = aws_vpc.main.id
  cidr_block = cidrsubnet(var.vpc_cidr, 8, count.index)
  availability_zone = data.aws_availability_zones.available.names[count.index]
  map_public_ip_on_launch = true
  tags = {
    Name = "public-subnet-${count.index}"
  }
}

Пояснение: Модуль можно переиспользовать в разных проектах, меняя только переменные.

6. Импорт существующих ресурсов в Terraform

Задача: Перенести существующую инфраструктуру под управление Terraform.

Промт:

У меня есть существующий EC2 инстанс с ID i-1234567890abcdef0. Напиши команду для импорта его в Terraform и соответствующий блок resource.

Пример результата: AI предложит:

terraform import aws_instance.example i-1234567890abcdef0

И блок:

resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
  # остальные параметры будут заполнены после импорта
}

Пояснение: После импорта нужно запустить terraform plan и скорректировать конфигурацию, чтобы она соответствовала реальному состоянию.

CI/CD: пайплайны под ключ

7. Генерация GitHub Actions для тестирования и деплоя

Задача: Настроить CI/CD для Python-приложения с тестами и деплоем в Kubernetes.

Промт:

Создай workflow GitHub Actions для Python-приложения. Требования:
- Запуск при пуше в main и при пулл-реквестах.
- Шаги: установка зависимостей, запуск тестов (pytest), сборка Docker-образа, пуш в GitHub Container Registry, деплой в Kubernetes (kubectl apply).
- Использовать секреты для доступа к registry и kubeconfig.

Пример результата:

name: CI/CD
on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: '3.11'
    - name: Install dependencies
      run: pip install -r requirements.txt
    - name: Run tests
      run: pytest
  build-and-deploy:
    needs: test
    if: github.ref == 'refs/heads/main'
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Build and push Docker image
      uses: docker/build-push-action@v5
      with:
        push: true
        tags: ghcr.io/${{ github.repository }}:latest
    - name: Deploy to Kubernetes
      run: |
        echo "${{ secrets.KUBECONFIG }}" > kubeconfig
        export KUBECONFIG=kubeconfig
        kubectl apply -f k8s/

Пояснение: Workflow разделён на два джоба: тестирование и деплой. Деплой только для main ветки.

8. Оптимизация времени сборки в CI

Задача: Ускорить пайплайн за счёт кэширования.

Промт:

Проанализируй мой GitHub Actions workflow и предложи способы кэширования зависимостей и Docker-слоёв. Вот текущий файл:

[вставьте workflow]

Пример результата: AI предложит использовать actions/cache для pip, кэширование Docker-слоёв через buildx, параллельное выполнение шагов. Например, добавление:

- name: Cache pip
  uses: actions/cache@v4
  with:
    path: ~/.cache/pip
    key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }}

Продвинутые сценарии

9. Генерация Helm-чарта

Задача: Упаковать приложение в Helm-чарт.

Промт:

Создай Helm-чарт для приложения с параметризованными values.yaml. Включи Deployment, Service, Ingress, HPA. Значения по умолчанию: реплики 2, образ nginx:latest, порт 80.

Пример результата: AI сгенерирует структуру чарта с шаблонами, где значения подставляются из values.yaml. Это упрощает развёртывание в разных окружениях.

10. Написание Ansible плейбука для настройки сервера

Задача: Автоматизировать установку Docker и Kubernetes на серверы.

Промт:

Напиши Ansible плейбук для установки Docker и kubeadm на Ubuntu 22.04. Включи шаги: обновление пакетов, установка зависимостей, добавление репозиториев, установка docker-ce, kubelet, kubeadm, kubectl, отключение swap, инициализация кластера.

Пример результата: AI создаст YAML с tasks, handlers и переменными. Например:

- name: Install Docker
  apt:
    name: docker-ce
    state: present

11. Создание Terraform для EKS

Задача: Развернуть управляемый Kubernetes в AWS.

Промт:

Напиши Terraform конфигурацию для создания EKS кластера с группой узлов. Используй официальный модуль terraform-aws-modules/eks/aws. Укажи версию Kubernetes 1.28, тип инстансов t3.medium, количество узлов 3.

Пример результата: AI сгенерирует модуль с необходимыми параметрами, включая VPC, IAM роли и addons.

12. Генерация политик безопасности для Kubernetes

Задача: Ограничить права подов.

Промт:

Создай NetworkPolicy, запрещающую весь входящий трафик к подам с меткой app=backend, кроме трафика от подов с меткой app=frontend на порт 8080. Также создай PodSecurityPolicy (или эквивалент в новых версиях), запрещающую запуск привилегированных контейнеров.

Пример результата:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: backend-policy
spec:
  podSelector:
    matchLabels:
      app: backend
  policyTypes:
  - Ingress
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: frontend
    ports:
    - protocol: TCP
      port: 8080

Пояснение: NetworkPolicy требует CNI-плагина с поддержкой (Calico, Cilium). PodSecurityPolicy устарел в Kubernetes 1.21, вместо него используются Pod Security Admission.

Как использовать эти промты эффективно

  • Уточняйте контекст: Чем больше деталей вы дадите (версии, окружение, ограничения), тем точнее будет результат.
  • Итеративно улучшайте: Не стесняйтесь просить AI переделать или оптимизировать сгенерированный код.
  • Проверяйте: Всегда тестируйте полученные конфигурации в безопасной среде перед применением в продакшене.
  • Изучайте: AI — это помощник, а не замена пониманию технологий. Используйте его ответы как отправную точку для обучения.

Эти 12 промтов покрывают основные задачи DevOps и помогут вам автоматизировать рутину. Попробуйте их в своём следующем проекте — и вы удивитесь, насколько быстрее станет ваш рабочий процесс. А если у вас есть свои любимые промты, делитесь в комментариях!

← Все статьи

Комментарии

Читайте также

Мягкие навыки и карьера: Практический пример тайм-менеджмента и постановки целей от проект-менеджера

4 сентября 2026

Morph (YC S23) открывает вакансию Member of Technical Staff: что нужно знать кандидатам

2 августа 2026

Как AI-агент ASI Biont интегрируется с SAP Business One: пошаговое руководство по автоматизации ERP без кода

1 июля 2026

Rust — системное программирование: почему этот курс меняет рынок труда в 2026 году

19 июля 2026

Python-промты для 3D-пайплайна: автоматизация Blender, ретопология ZBrush и PBR в Substance Painter под Unity и Unreal

11 октября 2026

Как я освоил системы реального времени на Asibiont: WebSockets, WebRTC и обучение с ИИ

22 июля 2026

Want to get a data center online quickly? Give it some flex: как гибкость электросети ускоряет запуск AI-инфраструктуры

24 июня 2026

7 промтов для Cursor: AI-assisted разработка в IDE

2 июля 2026

Техлид против инженерного менеджера в 2026 году: какой карьерный путь на самом деле оплачивается выше — и как курс Tech Lead готовит вас к обоим

16 сентября 2026