Port, Kratix, Humanitec: сравнение подходов — Лаборатория DX
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-файл работает во всех окружениях. 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.