Какие задачи можно решать
Graphene полезен там, где пайплайн создаёт или использует ресурсы, чьи состояние, владелец, время жизни и диагностика важны за пределами одной команды.
Временная тестовая инфраструктура
Ран может объявить сеть, подсеть, виртуальную машину, агент, контейнеры и
артефакты одним деревом владения. Объявления сходятся параллельно; явный
Ready отмечает место, где коду нужен живой результат. После завершения рана
Graphene удаляет всё, чем ран продолжает владеть, в том числе после отмены или
перезапуска воркера.
Это подходит для интеграционных, нагрузочных, совместимых и upgrade-тестов, которым нужна настоящая среда, а не безымянный CI runner.
Работа на существующей машине
pipeline.NewAgentViaSSH устанавливает агент на уже существующую машину. После
bootstrap агент держит исходящее соединение с сервером и размещает машинный
воркер пайплайна. Действиям не нужен входной порт агента или постоянный
SSH-credential в каждом job.
Так можно использовать лабораторные и bare-metal хосты, appliance и VM, которыми управляет другая система.
Долгоживущая среда и передача
У ресурса ровно один владелец. По умолчанию это создавший его ран, но ран может передать поддерево постоянному стенду своего пайплайна. Необязательный срок ограничивает пребывание ресурса на стенде.
Так реализуются сохранение упавшей среды, переиспользуемые сервисы, кэши и артефакты, которые живут дольше создавшего их рана, но не становятся бесхозными.
Библиотеки ресурсов вместо закрытого каталога провайдеров
Kinds приносят библиотеки. В текущих репозиториях есть библиотеки Docker, Kubernetes, Git и File. Kubernetes-библиотека принимает нативные типизированные объекты и выводит kind Graphene из их GVK, поэтому Crossplane-ресурсы и обычные Kubernetes-объекты участвуют в том же lifecycle без собственной копии каждой provider schema внутри Graphene.
Связь пайплайнов по управлению и данным
Upstream-триггер запускает один пайплайн по результату другого. Опубликованный артефакт служит симметричным data contract: другой пайплайн присоединяется к записи и читает её blob. Обе связи явны и наблюдаемы.
Эксплуатация и диагностика
У каждой записи пять представлений: текущее состояние, история событий, логи,
метрики и трейсы. graphenectl даёт общую грамматику записей и lifecycle
ранов; Graphene Studio показывает ту же инсталляцию как дерево ресурсов,
инспекторы, раны, топологию, панели наблюдаемости и терминал агента.
Текущая граница
Встроенная поверхность автора — Go SDK. Dev-инсталляция умеет собирать и запускать Go-исходники пайплайна и допускает настройку дополнительных runtime сборки, но это не создаёт language-neutral API описания пайплайна.
Поставляемый compose предназначен для разработки и оценки. Production package, защищённый TLS-by-default deployment и часть административных сценариев пока не завершены.