Platform Engineering vs DevOps: qué cambió realmente (y qué no)
Qué significa platform engineering en la práctica. Golden paths, infraestructura de autoservicio, portales internos para desarrolladores, documentación que funciona, y cuándo platform engineering es sobrecarga que no puedes permitirte.
El cambio de DevOps a Platform Engineering
DevOps dijo "tú lo construyes, tú lo operas." Cada desarrollador gestiona su propia infraestructura, despliega sus propios servicios, configura su propio monitoring. En teoría, esto crea sentido de propiedad. En la práctica, crea 15 formas diferentes de desplegar un servicio, 8 configuraciones de monitoring diferentes, y cada equipo reinventando el mismo pipeline CI/CD.
Platform engineering es la corrección. En lugar de que cada equipo construya infraestructura desde cero, un equipo de plataforma proporciona herramientas con opinión definida y de autoservicio que hacen que lo correcto sea fácil y lo incorrecto sea difícil.
El cambio es real pero sobrevendido. Para equipos de menos de 30 ingenieros, platform engineering suele ser sobrecarga. Para equipos de más de 50, es necesario. Este artículo cubre los patrones prácticos. Para ver cómo desplegamos infraestructura, consulta nuestra guía de IaC y la guía de Kubernetes.
Qué es realmente Platform Engineering
Platform engineering no es una herramienta. No es Backstage. No es Kubernetes. Es un enfoque: construir herramientas internas que hagan a los desarrolladores productivos sin requerir que se conviertan en expertos en infraestructura.
| Enfoque DevOps | Enfoque Platform Engineering |
|---|---|
| Cada equipo escribe su propio Dockerfile | La plataforma proporciona una imagen base por lenguaje |
| Cada equipo configura su propia CI/CD | La plataforma proporciona un template de pipeline, el equipo llena parámetros |
| Cada equipo configura su monitoring | La plataforma proporciona observability-as-a-service con dashboards estándar |
| Cada equipo gestiona su propia base de datos | La plataforma proporciona provisioning de base de datos vía formulario o API |
| Configurar un nuevo servicio toma 2 días | Configurar un nuevo servicio toma 15 minutos usando un golden path |
La métrica clave: tiempo hasta el primer deploy de un nuevo servicio. Si un desarrollador necesita 2 días para ir de "necesito un nuevo servicio" a "está corriendo en staging", tu plataforma tiene un problema. Si toma 15 minutos, tu plataforma funciona.
Golden Paths
Un golden path es un template con opinión definida para crear un nuevo servicio. Incluye todo lo que un desarrollador necesita: estructura del proyecto, pipeline CI/CD, Dockerfile, manifiestos de Kubernetes, configuración de monitoring y documentación.
golden-path-typescript-api/
├── src/
│ ├── index.ts # Punto de entrada con health check
│ ├── routes/ # Definiciones de rutas
│ └── services/ # Lógica de negocio
├── test/
│ ├── unit/
│ └── integration/
├── Dockerfile # Build multi-stage optimizado
├── .github/workflows/
│ └── ci-cd.yaml # Build, test, push, deploy
├── kubernetes/
│ ├── base/
│ │ ├── deployment.yaml
│ │ ├── service.yaml
│ │ └── kustomization.yaml
│ └── overlay/
│ ├── staging/
│ └── production/
├── monitoring/
│ ├── alerts.yaml # Reglas de alerta estándar
│ └── dashboard.json # Template de dashboard Grafana
├── docs/
│ └── runbook.md # Template de runbook operacional
├── .env.example
├── package.json
├── tsconfig.json
└── README.md
Un desarrollador ejecuta platform create-service --name my-api --template typescript-api, responde 5 preguntas (nombre del servicio, equipo, si necesita base de datos, público o interno), y obtiene un proyecto completamente funcional con CI/CD, monitoring y manifiestos de despliegue. Primer deploy en 15 minutos.
Principios del Golden Path
| Principio | Por qué |
|---|---|
| Valores por defecto con opinión | No ofrezcas 5 opciones de base de datos. Elige una (PostgreSQL) y hazla fácil. |
| Personalizable | Equipos avanzados pueden ajustar. Pero los valores por defecto deben cubrir el 80% de los casos. |
| Mantenido | Cuando la plataforma se actualiza (nueva imagen base, nueva política de seguridad), todos los servicios usando el golden path reciben la actualización. |
| Documentado | El template en sí mismo es documentación. Los comentarios en los manifiestos explican por qué existe cada configuración. |
| Testeado | El golden path es un producto. Tiene tests, CI y versionado. |
Qué hace un buen vs mal Golden Path
| Bueno | Malo |
|---|---|
| Crea un servicio funcional en 15 minutos | Crea un esqueleto que necesita 2 días de configuración |
| Incluye CI/CD, monitoring, despliegue | Solo incluye la estructura del proyecto |
| Refleja las mejores prácticas actuales | Refleja las preferencias del autor original de hace 2 años |
| Se actualiza cuando la plataforma cambia | Nunca se actualiza después de su creación |
| Tiene 1-2 opciones (TypeScript API, Python worker) | Tiene 15 opciones para cada combinación posible |
Infraestructura de autoservicio
Los desarrolladores no deberían necesitar crear un ticket para obtener una base de datos, una instancia Redis o un nuevo namespace de Kubernetes. Autoservicio significa que pueden provisionar lo que necesitan a través de una UI, CLI o API.
// Platform CLI: provisionar una base de datos PostgreSQL
// $ platform db create --name my-api-db --size small --env staging
interface DatabaseRequest {
name: string;
size: 'small' | 'medium' | 'large'; // Con opinión: 3 tamaños, no specs arbitrarios
environment: 'dev' | 'staging' | 'production';
team: string;
backupRetention: number; // Por defecto: 7 días staging, 30 días production
}
// Detrás de escena: Terraform se ejecuta, crea la instancia RDS,
// almacena credentials en Secrets Manager, crea un K8s secret,
// agrega dashboard de monitoring, notifica al equipo
Qué ofrecer en autoservicio
| Recurso | ¿Autoservicio? | Por qué / Por qué no |
|---|---|---|
| Base de datos (PostgreSQL) | Sí | Recurso estándar, tamaños con opinión |
| Cache Redis | Sí | Recurso estándar |
| Namespace Kubernetes | Sí | Riesgo bajo, alcance de equipo |
| Bucket S3 | Sí | Recurso estándar |
| Dominio / registro DNS | Sí (con aprobación) | Riesgo bajo pero necesita gobernanza de nombres |
| Roles IAM / permisos | No (basado en solicitud) | Riesgo de seguridad, necesita revisión |
| VPC / cambios de red | No (equipo de plataforma) | Impacto en todo el clúster |
| Nueva cuenta cloud | No (equipo de plataforma) | Gobernanza de costos y seguridad |
El límite: autoservicio para recursos con alcance de equipo. Basado en solicitud para recursos que afectan a toda la organización.
Portales internos para desarrolladores
Un portal interno para desarrolladores es un catálogo de todos los servicios, sus propietarios, sus APIs, sus runbooks y su estado de salud. Backstage (de Spotify) es el más conocido, pero no es la única opción.
Qué debe mostrar un portal
| Vista | Contenido | Quién lo usa |
|---|---|---|
| Catálogo de servicios | Todos los servicios, propietarios, stack técnico, enlaces a repos | Todos |
| Documentación API | Specs OpenAPI/GraphQL, generadas automáticamente | Equipos frontend, socios |
| Runbooks | Procedimientos operacionales por servicio | Ingenieros de guardia |
| Dependencias | Quién depende de qué | Revisiones de arquitectura |
| Estado de salud | Estado actual, incidentes recientes | Ops, management |
| Costos | Costo mensual por servicio/equipo | Finanzas, management |
| Golden paths | Templates para nuevos servicios | Desarrolladores |
Backstage vs Alternativas
| Opción | Esfuerzo | Ideal para |
|---|---|---|
| Backstage | Alto (6+ semanas de setup, mantenimiento continuo) | Grandes organizaciones (100+ ingenieros), equipo de plataforma dedicado |
| Portal custom (Next.js + API) | Medio (2-4 semanas MVP) | Equipos medianos, necesidades específicas |
| README mejorado + wiki | Bajo (días) | Equipos pequeños (< 30 ingenieros) |
| Notion/Confluence | Bajo | Stakeholders no técnicos necesitan acceso |
Para equipos de menos de 30 ingenieros, Backstage es overkill. Un repositorio Git bien organizado con archivos README, un wiki Notion compartido y una hoja de cálculo simple de catálogo de servicios cubre el 80% de la necesidad.
Para equipos de más de 50 ingenieros, el problema del catálogo se vuelve real. Se crean servicios y se olvidan. Los propietarios se van y nadie sabe quién mantiene qué. Un portal con seguimiento de propiedad y dashboards de salud se vuelve esencial.
El problema de la documentación
Nadie lee tu wiki. No es un problema de personas. Es un problema de ubicación. La documentación que vive separada del código que describe se vuelve obsoleta en semanas.
Documentación que funciona
| Tipo | Dónde vive | Por qué |
|---|---|---|
| Documentación API | Generada automáticamente desde el código (OpenAPI, introspección GraphQL) | Siempre actualizada |
| Runbooks | En el repo del servicio (docs/runbook.md) | Se despliegan con el código |
| Decisiones de arquitectura | Archivos ADR en el repo (docs/adr/) | Versionados |
| Onboarding | En el template del golden path | Cada nuevo servicio empieza con él |
| Capacidades de la plataforma | Portal o Platform CLI --help | Descubrible en el momento de necesidad |
Architecture Decision Records (ADRs)
Cada decisión técnica significativa recibe un ADR:
# ADR-003: Usar PostgreSQL como base de datos principal
## Estado: Aceptado
## Contexto
Necesitamos una base de datos para el nuevo servicio. Opciones consideradas: PostgreSQL, MySQL, DynamoDB.
## Decisión
PostgreSQL 15 a través del provisioning de base de datos de autoservicio de la plataforma.
## Consecuencias
- Las herramientas estándar (backups, monitoring, migraciones) funcionan directamente
- El equipo no necesita experiencia en DynamoDB
- Latencia ligeramente mayor que DynamoDB para patrones de acceso clave-valor (aceptable)
Los ADRs previenen re-debatir las mismas decisiones. Cuando un nuevo miembro del equipo pregunta "por qué PostgreSQL?", la respuesta está en el repo, no en la memoria de alguien.
Medir la experiencia del desarrollador
Si estás invirtiendo en una plataforma, mide si realmente está ayudando:
| Métrica | Qué mide | Buen objetivo |
|---|---|---|
| Time to first deploy | Cuánto tiempo de "idea de nuevo servicio" a "corriendo en staging" | < 30 minutos |
| Frecuencia de despliegue | Con qué frecuencia los equipos despliegan a producción | Múltiples veces al día |
| Lead time for changes | Tiempo del commit a producción | < 1 hora |
| Change failure rate | Porcentaje de despliegues que causan incidentes | < 5% |
| MTTR | Tiempo medio de recuperación de incidentes | < 30 minutos |
| Satisfacción del desarrollador | Puntuación de encuesta (trimestral) | > 4/5 |
| Volumen de tickets de soporte | Solicitudes relacionadas con la plataforma por semana | Tendencia decreciente |
Las primeras cuatro son métricas DORA. Las últimas tres son específicas de plataforma. Haz seguimiento de todas. Si el time-to-first-deploy mejora pero la satisfacción del desarrollador baja, la plataforma está agregando complejidad sin valor.
Cuándo Platform Engineering es sobrecarga
Platform engineering no es gratis. Un equipo de plataforma cuesta 2-5 ingenieros a tiempo completo. Los golden paths necesitan mantenimiento. Las herramientas de autoservicio necesitan desarrollo y soporte. Un portal necesita contenido.
No construyas una plataforma cuando
- Tu equipo tiene menos de 20 ingenieros (la sobrecarga excede el beneficio)
- Tienes menos de 5 servicios (no hay suficiente oportunidad de estandarización)
- Eres una startup que podría pivotar (la plataforma se desperdiciará)
- Tu proceso de ingeniería ya es rápido (si el time-to-deploy ya es de 30 minutos, no necesitas un equipo de plataforma para mejorarlo)
Construye una plataforma cuando
- Tienes 50+ ingenieros desplegando 10+ servicios
- La creación de un nuevo servicio toma más de un día
- Los equipos reinventan los mismos patrones de infraestructura
- La guardia es dolorosa porque cada servicio tiene monitoring diferente
- La satisfacción del desarrollador es baja por fricción de infraestructura
La plataforma mínima viable para un equipo de 30-50 personas:
- Un template golden path (el tipo de servicio más común)
- Template de pipeline CI/CD (compartido, parametrizado)
- Monitoring estándar (dashboards Grafana auto-provisionados)
- Catálogo de servicios (aunque solo sea una hoja de cálculo)
- Una guía de plataforma de una página ("cómo crear un nuevo servicio")
Eso es todo. Sin Backstage, sin portal custom, sin infraestructura de autoservicio. Solo templates y estándares. Agrega complejidad cuando el equipo supere el enfoque simple.
Errores comunes
-
Construir una plataforma antes de tener estandarización. Si cada servicio usa un lenguaje, framework y método de despliegue diferentes, una plataforma no puede ayudar. Estandariza primero, luego construye la plataforma.
-
Backstage antes de 50 ingenieros. Backstage es poderoso pero complejo. Para equipos más pequeños, el costo de setup y mantenimiento excede el beneficio.
-
Golden paths que nunca se actualizan. Un template de hace 2 años con dependencias obsoletas y patrones deprecados hace más daño que bien. Mantenlo como un producto.
-
Todo en autoservicio. Los roles IAM y los cambios de red no deberían ser autoservicio. El blast radius de un error es demasiado grande.
-
Medir actividad, no resultados. "Construimos 15 funcionalidades de plataforma" no es éxito. "El time-to-first-deploy bajó de 2 días a 30 minutos" es éxito.
-
Ignorar la satisfacción del desarrollador. Una plataforma que fuerza a los desarrolladores en patrones que odian será evitada. Habla con tus usuarios (los desarrolladores) regularmente.
-
Sin documentación. Una plataforma de autoservicio sin documentación es solo otro tipo de caja negra.
Puntos clave
-
Platform engineering no es una herramienta, es un enfoque. Construye herramientas internas que hagan a los desarrolladores productivos sin requerir experiencia en infraestructura. El golden path es el producto central.
-
El time to first deploy es la métrica clave. Si un desarrollador puede ir de una idea a un servicio funcional en 15 minutos, la plataforma funciona. Si toma 2 días, no.
-
Empieza simple. Un golden path, un template CI/CD, monitoring estándar. Agrega complejidad cuando el enfoque simple no sea suficiente. La mayoría de los equipos de menos de 30 ingenieros no necesitan Backstage.
-
La documentación vive con el código. Docs de API auto-generadas, runbooks en el repo, ADRs para decisiones. Las páginas wiki se vuelven obsoletas. Los docs en el repo se mantienen actualizados.
-
Mide resultados, no actividad. Métricas DORA más satisfacción del desarrollador. Si los números no mejoran, la inversión en plataforma no está funcionando.
-
El equipo de plataforma es un equipo de producto. Sus usuarios son los desarrolladores. Su producto es la plataforma interna. Necesitan bucles de feedback, investigación de usuarios e iteración, igual que cualquier equipo de producto.
Construimos plataformas internas y herramientas para desarrolladores como parte de nuestros servicios cloud y nuestra práctica de consultoría. Si necesitas ayuda con tu estrategia de platform engineering, habla con nuestro equipo o solicita un presupuesto. Consulta también nuestra página de metodología para ver cómo abordamos la cultura de ingeniería.
Temas cubiertos
Guías relacionadas
Guía Empresarial de Sistemas de IA Agéntica
Guia tecnica de sistemas de IA agentica en entornos empresariales. Descubre la arquitectura, capacidades y aplicaciones de agentes IA autonomos.
Leer guíaComercio Agéntico: Cómo Dejar que los Agentes IA Compren de Forma Segura
Cómo diseñar comercio iniciado por agentes IA con gobernanza. Motores de políticas, puertas de aprobación HITL, recibos HMAC, idempotencia, aislamiento de tenants y el Agentic Checkout Protocol completo.
Leer guíaLos 9 Puntos Donde Tu Sistema de IA Filtra Datos (y Cómo Sellar Cada Uno)
Un mapa sistemático de cada lugar donde se filtran datos en sistemas de IA. Prompts, embeddings, logs, llamadas a herramientas, memoria de agentes, mensajes de error, caché, datos de fine-tuning y handoffs entre agentes.
Leer guía¿Listo para construir sistemas de IA listos para producción?
Nuestro equipo se especializa en sistemas de IA listos para producción. Hablemos de cómo podemos ayudar.
Iniciar una conversación