Mid Авторский

Port, Kratix, Humanitec: сравнение подходов

Три подхода к построению IDP — и чем они отличаются от Backstage

Три философии, одна задача

Backstage задал стандарт для developer portal-ов, но далеко не единственный способ построить IDP. Три инструмента — Port, Kratix и Humanitec — представляют три принципиально разных подхода к одной задаче: снизить когнитивную нагрузку на разработчиков и дать им self-service-доступ к инфраструктуре. Каждый из них делает ставку на свою сильную сторону, и выбор между ними зависит от вашей организации, инфраструктуры и уровня зрелости.

Port: конструктор портала без кода

Port — SaaS-платформа, которая позволяет платформенным инженерам строить developer portal через визуальный интерфейс. В отличие от Backstage, где вы пишете код на React и TypeScript, в Port вы определяете «блюпринты» — модели данных для ваших сущностей (сервисы, окружения, кластеры, деплойменты) — и связываете их друг с другом.

Как работает. Вы создаёте блюпринт «Сервис» с полями: владелец, репозиторий, язык, окружения, SLO. Потом создаёте блюпринт «Окружение» и связываете его с сервисами. Port умеет автоматически подтягивать данные из GitHub, GitLab, AWS, Kubernetes, Datadog, PagerDuty и десятков других источников через готовые интеграции. На выходе разработчики получают каталог сервисов, дашборды, скорекарды зрелости и self-service-действия — всё через web-интерфейс Port.

Сильные стороны. Время до работающего портала — дни, а не месяцы. Не нужны React-разработчики. Бесплатная версия без ограничений по времени и количеству пользователей. По Forrester TEI, стоимость платных планов — около $65 за пользователя в месяц, но бесплатного тарифа хватает для старта.

Ограничения. Вы зависите от вендора: данные в облаке Port, кастомизация ограничена тем, что Port предоставляет. Если вам нужна уникальная интеграция, которой нет в каталоге, — придётся ждать или писать запрос. Гибкость Backstage-плагинов здесь недоступна.

Kratix: платформа для строителей платформ

Kratix — open-source фреймворк от Syntasso, и он решает другую задачу. Kratix — это не портал. Это инструмент, который помогает платформенной команде описывать возможности платформы как Kubernetes API и предоставлять их разработчикам через механизм «промисов» (Promises).

Как работает. Платформенная команда создаёт Promise — описание ресурса, который можно запросить. Например, Promise «PostgreSQL database» включает: API-спецификацию (какие параметры принимает запрос), workflow для провижининга (какие Terraform/Helm-команды выполнять) и политики (размер инстанса, бэкапы, сетевые правила). Разработчик подаёт запрос через kubectl apply с YAML-манифестом, и Kratix выполняет весь workflow: создаёт базу, настраивает доступы, прописывает секреты.

Сильные стороны. Полная гибкость: вы определяете свои абстракции и workflow. Отлично работает в мультикластерных окружениях — Kratix умеет распределять ресурсы между кластерами. Лицензия Apache 2.0, весь код открыт. Если у вашей платформенной команды сильная Kubernetes-экспертиза, Kratix даёт максимальный контроль.

Ограничения. Интерфейс Kratix — это Kubernetes API. Точка. Если ваши разработчики не работают с kubectl каждый день, им нужен портал поверх Kratix (и здесь Backstage или Port могут выступить frontend-ом). Kratix требует серьёзных Kubernetes-знаний для настройки и эксплуатации. Syntasso предлагает коммерческую версию (SKE) с enterprise-поддержкой и маркетплейсом готовых промисов.

Humanitec: оркестратор платформы

Humanitec — коммерческий SaaS-продукт, который позиционирует себя как Platform Orchestrator. Если Backstage и Port — это портал (UI для людей), а Kratix — фреймворк для описания возможностей, то Humanitec — бэкенд платформы, который управляет связями между приложениями и инфраструктурой.

Как работает. Разработчик описывает свою рабочую нагрузку в файле Score — декларативная спецификация, которая говорит «моему сервису нужна PostgreSQL-база, Redis-кэш и S3-бакет», без указания конкретных провайдеров или конфигураций. Humanitec берёт эту спецификацию и через Resource Definitions подбирает правильную реализацию для каждого окружения: в dev — контейнер PostgreSQL, в prod — RDS на AWS с репликой и бэкапами. Разработчик описывает что ему нужно, платформенная команда определяет как это предоставить.

Сильные стороны. Разработчики полностью абстрагированы от инфраструктуры. Один Score-файл работает во всех окружениях. Humanitec как SaaS не требует инженерных ресурсов для эксплуатации — Humanitec предоставляет SLA. Поддерживает AWS, GCP, Azure и in-cluster ресурсы. По данным Humanitec, более 90% запросов к оркестратору приходят через Score.

Ограничения. Коммерческий продукт с закрытым кодом и enterprise-ценником. Vendor lock-in: Score — открытый стандарт (CNCF sandbox), но Platform Orchestrator — проприетарный. Модель Resource Definitions требует времени на настройку: платформенной команде нужно описать все возможные комбинации ресурсов для всех окружений.

Сравнительная таблица

КритерийPortKratixHumanitec
ТипSaaS-порталOpen-source фреймворкSaaS-оркестратор
Основной интерфейсWeb UIKubernetes APIScore + API/UI
Время до первой ценностиДниНеделиНедели
Нужна Kubernetes-экспертизаНетДа, глубокаяСредняя
Каталог сервисовДа, встроенныйНет (нужен портал)Да, через UI
Self-service provisioningДа, через действияДа, через промисыДа, через Score
СтоимостьБесплатный старт, ~$65/мес за пользователяБесплатно (Apache 2.0)Enterprise-ценник
Vendor lock-inСреднийНетВысокий

Как выбрать

Выбор инструмента зависит от трёх вопросов.

Какая у вас экспертиза? Если в команде сильный Kubernetes-опыт и вы хотите полный контроль — Kratix. Если нужен портал без React-разработки — Port. Если вы хотите абстрагировать инфраструктуру от разработчиков полностью — Humanitec.

Какой у вас бюджет? Kratix — единственный полностью бесплатный вариант, но требует инженерных инвестиций в настройку. Port даёт бесплатный старт с платным масштабированием. Humanitec — enterprise-закупка с длинным циклом продаж.

Нужен ли вам портал? Kratix — бэкенд без UI, и вам понадобится портал поверх него. Port и Humanitec дают web-интерфейс из коробки. Backstage может выступить frontend-ом для любого из этих инструментов — и часто так и работает: Backstage как портал, а Humanitec или Kratix как оркестратор за ним.

Главное правило: инструмент должен соответствовать зрелости вашей платформенной практики. Если вы строите первую IDP, начните с Port или Backstage. Если у вас зрелая Kubernetes-инфраструктура и вы хотите предоставить её как API — посмотрите на Kratix. Если ваша цель — полная абстракция инфраструктуры для разработчиков — Humanitec.