Platform Engineering: внутренние платформы, golden paths, self-service
↑ Этап 8 · Senior: надёжность, безопасность, платформа
Зачем это на собесе
Тренд и путь роста DevOps: внутренняя платформа как продукт, снижающая когнитивную нагрузку разработчиков.
Проблема
В росте организации DevOps «каждая команда сама» приводит к: разрозненным пайплайнам/шаблонам, высокой когнитивной нагрузке (разработчик должен знать Kubernetes, Terraform, безопасность, наблюдаемость), дублированию, очередям в команду DevOps (тикеты), неодинаковому качеству и рискам безопасности.
Platform Engineering — проектирование и развитие внутренней платформы разработчика (IDP — Internal Developer Platform): набора самообслуживаемых инструментов, сервисов и стандартных путей, позволяющих командам быстро и безопасно поставлять ПО. Платформа — продукт, а разработчики — её клиенты.
Ключевые понятия
| Понятие | Суть |
|---|---|
| IDP | самообслуживаемая платформа: окружения, деплой, наблюдаемость, секреты, доступы, документация |
| Golden path (золотой путь) | рекомендуемый, поддерживаемый и автоматизированный способ решить типовую задачу («создать сервис → пайплайн → деплой → мониторинг»); «быстро и безопасно по умолчанию», но не принуждение |
| Paved road (асфальтированная дорога) | то же: удобный путь, отклонение возможно, но на свой риск |
| Self-service | разработчик сам создаёт ресурсы через портал/CLI/Git без тикетов |
| Developer Experience (DevEx) | удобство, скорость обратной связи, снижение трения |
| Cognitive load | объём знаний, необходимых для работы; платформа его абстрагирует |
| Team Topologies | типы команд: stream-aligned (продуктовые), platform team, enabling, complicated-subsystem; взаимодействия: X-as-a-Service, коллаборация, фасилитация |
| Platform as a Product | roadmap, обратная связь, метрики, поддержка, документация, SLA |
Слои платформы
Developer Portal (Backstage, Port, Cortex, OpsLevel) — каталог, шаблоны, документация, self-service
│
Оркестрация / Control plane (Crossplane, Terraform/OpenTofu, Humanitec Score/Orchestrator, Kratix, Argo/Flux)
│
Инфраструктура и сервисы (Kubernetes, облака, БД/очереди как сервис, сети, секреты, реестры)
│
Сквозные возможности: CI/CD, GitOps, observability (метрики/логи/трейсы), безопасность (политики, сканирование), FinOps, доступ (SSO/RBAC)Backstage
Открытый фреймворк Developer Portal (Spotify, CNCF):
- Software Catalog: все сервисы, библиотеки, команды, API, владельцы, зависимости (
catalog-info.yamlв каждом репозитории; сущности Component, API, System, Domain, Resource, Group, User); - Software Templates (Scaffolder): создание нового сервиса по шаблону (репозиторий, CI, Helm/манифесты, регистрация в каталоге, мониторинг) одной формой;
- TechDocs: документация как код (Markdown в репозитории → портал);
- Плагины: Kubernetes (состояние подов), ArgoCD, GitLab/GitHub CI, PagerDuty/Grafana, SonarQube, Vault, стоимость, Scorecards, поиск;
- Аутентификация (OIDC/Keycloak), права (permissions framework).
# catalog-info.yaml
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: clinic-api
description: API записи на приём
annotations:
gitlab.com/project-slug: clinic/api
argocd/app-name: clinic-api
grafana/dashboard-selector: "service=clinic-api"
pagerduty.com/integration-key: XXXX
spec:
type: service
lifecycle: production
owner: team-clinic-backend
system: clinic
dependsOn: [resource:default/clinic-db]
providesApis: [clinic-api]Золотые пути (примеры)
- Новый .NET-микросервис: шаблон репозитория (Dockerfile, .gitlab-ci.yml, Helm-чарт, health checks, OTel, логирование, алерты, SLO-заготовка), автоматическая регистрация в каталоге, создание namespace, доступов, pipeline, Sentry/Grafana-дашборд;
- Окружение по запросу (preview-environment на MR), временные стенды с TTL;
- БД/кэш/очередь как сервис (через Crossplane/операторы: заявка → PostgreSQL с бэкапами и мониторингом);
- Секреты и доступы: запрос в Git/портале → автоматически через Vault/ESO;
- Релиз: стандартный progressive delivery (canary), автооткат;
- Наблюдаемость «из коробки»: метрики, логи, трейсы, дашборд, алерты по SLO;
- Безопасность по умолчанию: сканирование образов, политики, подписи, non-root — встроены, без усилий команд.
Crossplane и control plane
Crossplane превращает Kubernetes в универсальный control plane: облачные ресурсы описываются как K8s-объекты (Managed Resources), а Composition/XRD создают собственные абстракции («PostgreSQLInstance: size=small, region=…»); команды запрашивают через Claim, платформа реализует детали (облако, сеть, бэкапы, теги). Альтернативы: Terraform + Atlantis/Spacelift, Pulumi, Humanitec, Kratix, Cluster API (кластеры).
apiVersion: platform.example.org/v1
kind: PostgreSQLInstance
metadata: { name: clinic-db, namespace: clinic }
spec: { size: small, version: "17", backups: { enabled: true, retentionDays: 14 }, environment: prod }Метрики платформы
- DORA: частота деплоев, lead time, change failure rate, MTTR — для продуктовых команд;
- Adoption: доля сервисов на золотом пути, использование шаблонов;
- Time to first deploy / onboarding time нового сервиса/разработчика (дни → часы);
- Self-service ratio (доля запросов без тикетов), число тикетов в платформенную команду, время выполнения запросов;
- Developer satisfaction (NPS, опросы, SPACE/DevEx Framework), когнитивная нагрузка (опросы);
- Надёжность платформы (SLO платформы, аптайм CI, время сборки), стоимость платформы и экономия.
Платформенная команда
- состав: инженеры платформы (SRE/DevOps/разработчики), продакт-менеджер платформы, технический писатель/DevRel внутренний;
- работа как продуктовая: интервью и опросы клиентов (разработчиков), roadmap, приоритизация по ценности, MVP + итерации, документация и обучение, поддержка (каналы, on-call платформы), обратная связь;
- принципы: не навязывать, добиваться использования ценностью; пороги входа; расширяемость (возможность выйти за золотой путь с guard-rails); абстракция без сокрытия (разработчик может увидеть, что под капотом);
- интерфейсы: Git/PR (декларативные запросы), CLI, портал/UI, API;
- governance: политики и guardrails (policy as code), а не ручные согласования; автоматические проверки соответствия (scorecards: обязательные владельцы, SLO, runbook, сканирование).
Антипаттерны
- «Ivory tower»: платформа без участия пользователей, навязанная сверху;
- «DevOps как сервисная команда»: тикеты вместо самообслуживания;
- Слишком ранняя/гигантская платформа (overengineering) при малой организации: до ~50–100 разработчиков часто достаточно общих шаблонов;
- Портал без автоматизации (красивый каталог, но все операции вручную);
- Отсутствие метрик и продукта (нет владельца, обратной связи);
- Жёсткая унификация без гибкости: команды обходят платформу;
- Копирование чужих решений без адаптации.
Этапы внедрения
- Пойти к командам: где боль и потери времени (онбординг, окружения, релизы, доступы).
- Стандартизировать: шаблоны репозитория, единый пайплайн, базовые чарты, наблюдаемость.
- Каталог (Backstage или проще: реестр сервисов).
- Self-service: автоматизировать самые частые запросы (создать сервис, окружение, БД, доступ).
- Политики и scorecards: безопасность и зрелость по умолчанию.
- Измерять и улучшать (DORA, DevEx, adoption).
Вопросы с ответами
Что такое Platform Engineering и чем он отличается от DevOps?
Платформенная инженерия создаёт внутреннюю платформу как продукт с самообслуживанием и золотыми путями, снижая когнитивную нагрузку команд; DevOps — культура и практики совместной ответственности за разработку и эксплуатацию, платформа — один из способов их масштабирования.
Что такое golden path?
Рекомендуемый, автоматизированный и поддерживаемый платформой путь решения типовой задачи (создать сервис, задеплоить, наблюдать) — быстрый и безопасный по умолчанию, но без принуждения.
Как измерить успех платформы?
DORA-метрики продуктовых команд, время до первого деплоя и онбординга, доля сервисов на золотом пути, self-service ratio, число тикетов, удовлетворённость разработчиков и надёжность самой платформы.