API VEGA

TerraVision

Преобразуйте код Terraform в профессиональные диаграммы облачной архитектуры, синхронизируемые с вашей инфраструктурой — автоматически, безопасно, живые документы

📖 Полная документация сайта →


Посмотрите 4-минутное введение


Что такое TerraVision?

TerraVision автоматически преобразует ваш код Terraform в профессиональные диаграммы облачной архитектуры с использованием официальных наборов иконок AWS, GCP и Azure. Ваши диаграммы остаются в синхронизации с вашей инфраструктурой — больше не нужно держать устаревшие файлы Visio, draw.io или Lucidchart.

Зачем Terravision?

  • Всегда актуально — диаграммы генерируются напрямую из вашего кода Terraform
  • 100% клиентской стороне — доступ к облаку не требуется, работает локально, ваш код никогда не покидает ваше устройство
  • Готово к CI/CD — автоматическое обновление диаграмм при каждом слиянии PR
  • Бесплатно и с открытым исходным кодом — без дорогих лицензий на инструменты для диаграмм
  • Мультитронность (Multi-cloud) — AWS (полная поддержка), GCP и Azure (ядро сервисов)
  • Интерактивный HTML-вывод — кликабельные узлы, панорамирование/масштабирование, поиск, анимация потока данных по рёбрам
  • Редактируемый экспорт в draw.io — открыть в draw.io, Lucidchart или любом редакторе mxGraph
  • Опциональные AI-аннотации — подписи, заголовки и последовательности потоков из Ollama (локально) или AWS Bedrock
  • Совместимо с Terragrunt — автоматически распознаёт одномодульные и многомодульные проекты Terragrunt
  • MCP сервер — позвольте AI-агентам генерировать диаграммы из вашего Terraform, руководство см. здесь

Поддерживаемые облачные провайдеры

ПоставщикСтатусРесурсы
AWS✅ Полная поддержка200+ сервисов
Google Cloud🔄 Частичная поддержкаОсновные сервисы
Azure🔄 Частичная поддержкаОсновные сервисы

Быстрый старт

Установка

pipx install terravision   # или: pip install terravision, если в виртуальном окружении

Вам также потребуются Python 3.10+, Terraform 1.x, Graphviz и Git. См. Руководство по установке для инструкций по платформам, Docker и Nix.

Создание вашей первой диаграммы

git clone https://github.com/patrickchugh/terravision.git
cd terravision

# Пример EKS кластера
terravision draw --source tests/fixtures/aws_terraform/eks_automode --show

# Azure VM scale set
terravision draw --source tests/fixtures/azure_terraform/test_vm_vmss --show

# Из общедоступного Git-репозитория (обратите внимание на // для подкаталога)
terravision draw --source https://github.com/patrickchugh/terraform-examples.git//aws/wordpress_fargate --show

Готово — ваша диаграмма сохраняется как architecture.png и автоматически открывается.

Создание интерактивной HTML-диаграммы

terravision visualise --source ./path-to-your-terraform --show

Нажмите на любой ресурс, чтобы увидеть его метаданные Terraform, выполните поиск ресурсов, перемещайте/масштабируйте карту и наблюдайте за анимацией потока данных по рёбрам. HTML-файл представляет собой один автономный файл, который полностью работает офлайн.


Попробуйте интерактивные демо

Нажмите на любую демо-страницу ниже, чтобы увидеть интерактивный HTML-вывод TerraVision:

  • 🟧 Демо AWS — Wordpress на ECS Fargate с CloudFront, RDS, EFS
  • 🟦 Демо Azure — VM scale set с балансировщиком и VNet
  • 🟩 Демо GCP — ядро сетей и вычислений GCP

Базовое использование

Создать диаграмму

# из локального каталога
terravision draw --source ./path-to-your-terraform

# из Git-репозитория
terravision draw --source https://github.com/user/repo.git

# Пользовательский формат и имя файла
terravision draw --source ./path-to-your-terraform --format svg --outfile my-architecture

# Редактируемый файл draw.io
terravision draw --source ./path-to-your-terraform --format drawio --outfile my-architecture

Использование предварительно сгенерированного плана Terraform (без учетных данных облака)

plan.json
terraform graph > graph.dot

# Шаг 2: создание диаграммы, без Terraform и доступа к облаку
terravision draw --planfile plan.json --graphfile graph.dot --source ./path-to-your-terraform
# Шаг 1: в вашей среде Terraform
terraform plan -out=tfplan.bin
terraform show -json tfplan.bin > plan.json
terraform graph > graph.dot

# Шаг 2: создание диаграммы, без Terraform и доступа к облаку
terravision draw --planfile plan.json --graphfile graph.dot --source ./path-to-your-terraform

Аннотации на основе ИИ (опционально)

terravision draw --source ./path-to-your-terraform --ai-annotate ollama   # локальный LLM (данные останутся на вашей машине)
terravision draw --source ./path-to-your-terraform --ai-annotate bedrock  # AWS Bedrock через boto3 (используются ваши учетные данные AWS)
terravision draw --source ./path-to-your-terraform --ai-annotate restapi  # любой эндпоинт, совместимый с OpenAI (OpenAI, LiteLLM, vLLM, ...)

Передаваться будет только метаданные и итоговый граф — ваш исходник .tf никогда не передаётся в LLM. Бэкенд bedrock аутентифицируется через стандартную цепочку учетных данных AWS (без развертывания инфраструктуры); restapi настраивается через TV_RESTAPI_URL, TV_RESTAPI_KEY и TV_RESTAPI_MODEL. См. руководство Annotations Guide и AI-Powered Annotations для полной конфигурации.

Упрощённый вид

terravision draw --source ./path-to-your-terraform --simplified

Устраняет VPC, подсети и сетевые «мелочи». Отлично подходит для презентаций для руководства.

Общие параметры

terravision --help показывает полную справку.

ПараметрОписаниеПример
--sourceКаталог Terraform или URL Git./path-to-your-terraform
--formatФормат вывода: png, svg, pdf, drawio и др.svg
--outfileИмя выходного файлаmy-architecture
--workspaceРабочая область Terraformproduction
--varfileФайл переменных (повторяемый)prod.tfvars
--planfileПредгенерированный план JSONplan.json
--graphfileПредгенерированный DOT графgraph.dot
--ai-annotateБэкенд AI-аннотацииollama, bedrock, restapi
--simplifiedУпрощённый вид (без сетей)(флаг)
--showОткрывать после генерации(флаг)

Документация

Полная документация доступна на patrickchugh.github.io/terravision.

Для пользователей:

Для участников проекта:


Часто задаваемые вопросы (FAQ)

Общие вопросы — учетные данные облака, конфиденциальность данных LLM, работа офлайн, Terragrunt, форматы вывода и многое другое — отвечаются в FAQ на сайте документации.


Внесение вклада

Мы рады вкладу. См. CONTRIBUTING.md для инструкций по настройке окружения, стандартам кодирования и процессу PR.

Поддержка

Лицензия

См. LICENSE.

Благодарности

  • Graphviz — визуализация диаграмм
  • Terraform — разбор инфраструктуры
  • Terragrunt — оркестрация мульти-модульных проектов
  • Иконки облачных поставщиков из официальных наборов иконок AWS, GCP и Azure