Plataforma open-source de Spotify para construir portales de desarrollador, con catálogo de servicios, templates y sistema de plugins extensible.
Backstage es una plataforma open-source creada por Spotify y donada a CNCF para construir portales de desarrollador unificados. Funciona como un marco de trabajo extensible que centraliza herramientas, servicios y documentación en una interfaz web única, permitiendo a los equipos de ingeniería crear plataformas internas de desarrollador personalizadas.
La plataforma se basa en una arquitectura de plugins que permite integrar cualquier herramienta del ecosistema de desarrollo — desde sistemas de CI/CD hasta dashboards de observabilidad. A diferencia de soluciones comerciales como Port o Cortex, Backstage ofrece control total sobre la experiencia del desarrollador, pero requiere inversión significativa en desarrollo y mantenimiento.
Su adopción ha crecido exponencialmente desde su open-sourcing en 2020, especialmente en organizaciones con más de 100 desarrolladores que necesitan estandarizar procesos y mejorar la experiencia del desarrollador.
El catálogo es el corazón de Backstage, proporcionando un inventario centralizado de todos los componentes de software. Cada entidad se describe mediante archivos catalog-info.yaml que definen metadatos, propietarios y relaciones:
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: user-service
description: Microservicio de gestión de usuarios
annotations:
github.com/project-slug: company/user-service
backstage.io/techdocs-ref: dir:.
spec:
type: service
lifecycle: production
owner: team-backend
system: user-management
providesApis:
- user-api
consumesApis:
- auth-api
dependsOn:
- resource:user-databaseLos templates permiten crear nuevos proyectos siguiendo golden paths organizacionales. Utilizan el motor de templating Cookiecutter para generar código, configuración de CI/CD y documentación inicial:
apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
name: nodejs-microservice
title: Node.js Microservice
description: Template para crear un microservicio Node.js con TypeScript
spec:
owner: platform-team
type: service
parameters:
- title: Información del servicio
required:
- name
- owner
properties:
name:
title: Nombre
type: string
pattern: '^[a-z0-9-]+$'
owner:
title: Equipo propietario
type: string
ui:field: OwnerPicker
steps:
- id: fetch-base
name: Fetch Base
action: fetch:template
input:
url: ./template
values:
name: ${{ parameters.name }}
owner: ${{ parameters.owner }}Sistema de documentación como código que renderiza Markdown en la interfaz de Backstage. Se integra con repositorios Git para mantener la documentación sincronizada con el código:
# mkdocs.yml
site_name: 'User Service Documentation'
nav:
- Home: index.md
- API: api.md
- Deployment: deployment.md
plugins:
- techdocs-coreBackstage utiliza una arquitectura de microfrontends donde cada plugin es un paquete npm independiente. Los plugins pueden contribuir con páginas, componentes y hooks al core de Backstage:
// plugins/cost-insights/src/plugin.ts
import { createPlugin, createRoutableExtension } from '@backstage/core-plugin-api';
export const costInsightsPlugin = createPlugin({
id: 'cost-insights',
routes: {
root: rootRouteRef,
},
});
export const CostInsightsPage = costInsightsPlugin.provide(
createRoutableExtension({
name: 'CostInsightsPage',
component: () => import('./components/CostInsightsPage').then(m => m.CostInsightsPage),
mountPoint: rootRouteRef,
}),
);| Plataforma | Tipo | Fortalezas | Limitaciones | Mejor para |
|---|---|---|---|---|
| Backstage | Open source (CNCF) | Máxima personalización, ecosistema de plugins, sin vendor lock-in | Requiere equipo dedicado, curva de aprendizaje alta | Organizaciones >100 devs con equipo de plataforma |
| Port | Comercial | Setup rápido, UI pulida, scorecards integrados | Menos personalizable, costo por usuario escalable | Equipos que priorizan time-to-market |
| Cortex | Comercial | Scorecards de madurez, integraciones pre-construidas | Enfocado en catálogo, menos extensible | Organizaciones enfocadas en service ownership |
| OpsLevel | Comercial | Integraciones nativas, dashboards ejecutivos | Menos flexible, funcionalidad limitada | Equipos que necesitan compliance tracking |
Backstage representa un cambio fundamental en cómo las organizaciones abordan la experiencia del desarrollador a escala. Para equipos de staff+ engineering, es la diferencia entre tener docenas de herramientas dispersas y una plataforma unificada que reduce el cognitive load y acelera la onboarding.
El ROI se materializa en tres áreas: reducción del tiempo de discovery (de horas a minutos para encontrar APIs y documentación), estandarización de procesos (templates que garantizan compliance desde el día uno), y visibilidad organizacional (métricas de health y ownership claras). Sin embargo, requiere inversión inicial significativa — típicamente 2-3 FTEs para implementación y 1-2 FTEs para mantenimiento continuo.
La decisión de adoptar Backstage versus alternativas comerciales depende del trade-off entre control/personalización y time-to-market. Organizaciones con necesidades específicas de integración o políticas de datos estrictas tienden hacia Backstage, mientras que equipos que priorizan velocidad inicial optan por soluciones SaaS.
Plataformas construidas internamente que abstraen la complejidad de infraestructura y operaciones, proporcionando self-service a los equipos de desarrollo.
Plataformas centralizadas que proporcionan a los desarrolladores documentación, APIs, herramientas y catálogos de servicios en un solo lugar.
Caminos recomendados y pre-configurados para tareas comunes de desarrollo que incorporan mejores prácticas, reduciendo la carga cognitiva de los equipos.
Disciplina enfocada en optimizar la productividad, satisfacción y efectividad de los desarrolladores mediante herramientas, procesos y entornos bien diseñados.