Этот пост был переведён автоматически. Для оригинальной версии нажмите здесь.
Removing the Monkey Work of Migration with Agentic Platform Engineering — руководство по Git-Ape (инструменту git для агентной инженерии платформ), который мигрирует реальный репозиторий AWS Terraform в Azure, фокусируясь на извлечении намерения вместо построчного преобразования.
Входные данные: contoso-migration
Источником является реальный проект Terraform (contoso-migration), который разворачивает приложение Next.js на AWS — EC2 для вычислений, ALB для балансировки нагрузки, S3 для артефактов и ключи IAM для идентификации. Стоимость: ~34 $/месяц. Цель — не воспроизвести ту же инфраструктуру в Azure; речь идёт о том, чтобы понять, что развёртывание действительно пытается сделать, и воссоздать это с помощью нативных сервисов Azure.
Шаг 1: Валидация и аутентификация
Git-Ape начинает с проверки всех необходимых инструментов CLI — az, aws, gh, jq, git — и подтверждения активных сеансов аутентификации перед тем, как что-либо трогать. Никаких частичных запусков.
Шаг 2: Извлечение намерения
Агент читает весь исходный репозиторий через API GitHub и извлекает намерение развёртывания: среда выполнения (Node.js), тип вычислений, шаблон ingress, обработка артефактов, модель идентификации, сеть и мониторинг. Это ключевой шаг — строится семантическая модель того, что делает развёртывание, а не какие ключевые слова Terraform оно использует.
Шаг 3: Сопоставление сервисов
Сервисы AWS сопоставляются с эквивалентами Azure:
- EC2 → App Service (Linux, Node 20 LTS)
- ALB → Встроенная балансировка нагрузки App Service
- Роли/ключи IAM → Managed Identity
- Terraform → Bicep + GitHub Actions
Шаг 4: Агент-критик
Перед генерацией вывода запускается агент-критик, который обнаруживает две блокирующие проблемы:
- Антипаттерн сборки при запуске — исходный Terraform запускал
npm install && npm run buildна EC2 при старте. Исправление: собирать в CI, разворачивать готовый артефакт. - Ненужный Blob Storage — S3 использовался для промежуточного хранения артефактов, что можно устранить при правильном CI/CD. Агент-критик полностью удалил его.
Шаг 5: Сгенерированный вывод
Результатом являются ~80 строк Bicep вместо оригинальных 200+ строк Terraform. Агент создал новый репозиторий GitHub с infra/main.bicep и .github/workflows/deploy.yml и удалил все файлы, специфичные для AWS.
Сравнение уровня безопасности
Миграция также принесла значительное улучшение безопасности:
| AWS оригинал | Вывод Azure |
|---|---|
| Только HTTP | Только HTTPS, TLS 1.2 |
| SSH открыт для 0.0.0.0/0 | Нет SSH-экспозиции |
| Ключи доступа IAM | OIDC + Managed Identity |
| Нет мониторинга | Application Insights |
Стоимость: ~13 $/месяц против первоначальных 34 $/месяц.
Чем это отличается от конвертора синтаксиса
Шаг агента-критика — вот что отличает это от механического перевода. Он обнаружил паттерны, которые работали бы на AWS, но были бы неверны на Azure — и исправил их вместо того, чтобы воспроизводить. Вывод — это не «AWS в синтаксисе Azure»; это нативное для Azure развёртывание, которое достигает той же цели более чисто.
Смотрите полное руководство для полной трассировки агента и сгенерированных файлов.
