Розробка AI-системи генерації Infrastructure as Code
Ручне написання Terraform або Ansible конфігурацій — це сотні рядків коду, постійні правки та людські помилки. Один забутий output або невірний tag — і інфраструктура падає. Ми вирішили цю проблему: розробили AI-систему, яка за текстовим описом вимог генерує готовий IaC-код. За час роботи ми впровадили її на десятці проєктів і скоротили час створення конфігурацій на 80%. «Наша інфраструктура тепер описується кодом за 10 хвилин замість 4 годин» — Senior DevOps інженер одного з клієнтів. Хочете так само? Зв'яжіться з нами для консультації.
Які проблеми вирішуємо
Як AI-генерація обробляє застарілий синтаксис?
LLM часто використовує deprecated ресурси Terraform. Рішення: в промпт явно передаємо версію провайдера (наприклад, AWS provider 5.x), а після генерації запускаємо terraform validate та tflint. Якщо помилки — відправляємо в модель з контекстом помилки.
Security anti-patterns
Відкриті security groups, відсутність encryption at rest. Після генерації запускаємо checkov — він знаходить проблемні блоки. Якщо виявлено — модель переписує конфіг із зазначенням на вразливості.
Hardcoded credentials
LLM іноді вставляє placeholder виду access_key = "AKIAXXXXXXX". Grep за патернами AKIA, secret, password перед PR. Знайдені рядки замінюємо на посилання на змінні Vault.
Які security-перевірки проходять згенеровані конфіги?
Після генерації запускається повний цикл перевірок: terraform validate, tflint, checkov, trivy для образів у Kubernetes. Якщо знайдено вразливості, модель виправляє їх автоматично. Додатково виконуємо grep на hardcoded credentials. Всі конфіги проходять перевірку безпеки перед деплоєм.
Як AI-генерація IaC працює на практиці
| Етап | Дія | Інструменти |
|---|---|---|
| 1. Промпт | Опис інфраструктури природною мовою | GPT-4, Claude 3.5 |
| 2. Генерація | LLM створює Terraform/Ansible/K8s | Hugging Face Transformers, LangChain |
| 3. Валідація | terraform validate, tflint, checkov |
TFLint, Checkov, trivy |
| 4. Правка | Помилки відправляються моделі для виправлення | LangChain self-consistency |
| 5. Деплой | terraform apply у dry-run, потім apply |
Terraform, CI/CD pipeline |
| 6. Моніторинг | Drift detection раз на добу | Terraform plan, GitHub Actions |
Кейс: генерація ECS кластера з Fargate. Клієнту потрібно було розгорнути мікросервіс з ALB, 2-4 репліками Fargate, RDS PostgreSQL та VPC. Опис зайняв 10 хвилин, система згенерувала повний Terraform модуль на 300 рядків. Після валідації та однієї ітерації — готовий код, який пройшов security-скан без зауважень. Вручну на це пішло б 2 дні. Економія бюджету склала понад 40% за рахунок скорочення людино-годин. Система підтримує AWS, Azure та GCP — для кожного провайдера налаштовуються свої валідатори та промпти.
Чому AI-генерація швидше ручного написання?
Порівняння: типова конфігурація з 200 рядків Terraform.
| Параметр | Ручне написання | AI-генерація |
|---|---|---|
| Час написання | 4 години | 10 хвилин |
| Помилки | 15-20% рядків з помилками | <5% після валідації |
| Security-проблеми | 2-3 на конфіг | 0 після checkov |
| Витрати людино-годин | Високі | Мінімальні |
Процес роботи
- Аналітика — збираємо вимоги: хмара (AWS/Azure/GCP), сервіси, масштабування, бюджет.
- Проектування — вибираємо шаблон генерації, налаштовуємо промпти та валідатори.
- Реалізація — запускаємо генерацію, ітеративно виправляємо помилки.
- Тестування —
terraform plan,ansible-playbook --check,kubectl apply --dry-run=client. - Деплой — застосовуємо конфігурацію, налаштовуємо CI/CD для автоматичного оновлення.
- Підтримка — моніторинг дрейфу, оновлення провайдерів, регенерація при зміні вимог.
Що входить в роботу
- Генерація Terraform, Ansible, Kubernetes маніфестів за вашим описом
- Валідація коду:
terraform validate,tflint,checkov,ansible-lint - Drift detection та автоматичні PR з виправленнями
- Документація: опис модулів, змінних, outputs
- Навчання команди роботі з системою
- Підтримка на 3 місяці після впровадження
Типові помилки при AI-генерації та як їх уникнути
- Hardcoded credentials — завжди використовуйте grep за
AKIA,secretта замінюйте на змінні. - Відсутність tags — у кожному ресурсі мають бути теги
Environment,Project,ManagedBy. Додавайте це в промпт. - Невірні CIDR блоки — LLM часто генерує перетинаючі підмережі. Використовуйте
cidrsubnetу промпті або перевіряйтеterraform validate. - Відсутність replication для RDS — явно вказуйте
multi_az = trueу вимогах.
Додаткові деталі про валідацію
Після кожної ітерації ми також виконуємо trivy для сканування вразливостей в образах, описаних у Kubernetes маніфестах. Це підвищує рівень безпеки фінального коду.Строки та вартість
Строки: від 3 до 10 днів на налаштування генерації під ваш проєкт. Вартість розраховується індивідуально — залежить від складності інфраструктури та кількості модулів. Оцінимо проєкт безкоштовно — просто опишіть задачу. Працюємо понад 5 років, реалізували 15+ проєктів з автоматизації IaC. Гарантуємо, що згенерований код пройде всі перевірки безпеки.
Замовте аудит вашої IaC-стратегії — ми підберемо рішення під вашу інфраструктуру. Отримайте консультацію вже сьогодні.







