DevOps · Platform Engineering|12 min de lectura|

Platform Engineering: Cómo Construir una Plataforma Interna de Desarrollo (IDP)

Durante una década, 'DevOps' significó que cada equipo se hiciera cargo de su propia infraestructura. Funcionó hasta que dejó de funcionar: en organizaciones con muchos equipos, cada uno reinventó pipelines, resolvió los mismos problemas de forma distinta y acumuló carga cognitiva que no tenía nada que ver con el producto. Platform Engineering es la respuesta a ese desgaste — construir una plataforma interna que trate a los desarrolladores como clientes y les ofrezca caminos pavimentados en lugar de un kit de piezas. Esta guía documenta qué es un Internal Developer Platform (IDP), cómo se construye sin caer en los errores típicos, y cómo medir si realmente está funcionando.

De DevOps a Platform Engineering: por qué el cambio

El 'shift left' de DevOps le dio a los equipos autonomía sobre su infraestructura, pero a escala esa autonomía tiene un costo: carga cognitiva. Un desarrollador que quiere lanzar un servicio nuevo termina tomando decisiones sobre Kubernetes, Terraform, CI/CD, secretos, observabilidad y redes — ninguna de las cuales aporta valor directo al producto. Platform Engineering reconoce que la mayoría de esas decisiones ya se tomaron bien una vez, y que repetirlas en cada equipo es desperdicio.

La idea central: un equipo de plataforma trata la plataforma interna como un producto, con los desarrolladores de la organización como usuarios. En lugar de tickets y wikis, ofrece self-service; en lugar de documentar cómo hacer algo, hace que la forma correcta sea la más fácil. El resultado se mide en tiempo: cuánto tarda un desarrollador desde 'quiero un servicio nuevo' hasta 'está en producción con logs, métricas y CI/CD'.

Qué es un Internal Developer Platform (IDP)

Un IDP es la capa que se sienta entre los desarrolladores y la complejidad de la infraestructura. No es una sola herramienta — es un conjunto de capacidades integradas que un desarrollador consume sin necesitar entender lo que hay debajo:

  • Self-service: el desarrollador aprovisiona lo que necesita (un servicio, una base de datos, un entorno) sin abrir un ticket ni esperar a otro equipo.
  • Golden paths: caminos pavimentados y opinados para las tareas comunes — crear un servicio, añadir una base de datos, exponer una API — con las decisiones correctas ya integradas.
  • Catálogo de software: un inventario vivo de todos los servicios, sus dueños, dependencias y estado. Responde '¿qué existe y quién lo mantiene?' sin arqueología.
  • Plantillas (scaffolding): generación de nuevos servicios ya cableados con CI/CD, observabilidad, seguridad y estándares de la organización desde el primer commit.
Un IDP no es 'comprar Backstage e instalarlo'. Backstage es un portal — la interfaz. El IDP es todo lo que hay detrás: los golden paths, la automatización de aprovisionamiento y las políticas. Empezar por el portal sin la sustancia detrás produce un catálogo bonito que nadie usa.

Golden Paths: el corazón del IDP

Un golden path es la forma recomendada y soportada de hacer algo común, empaquetada para que sea la ruta de menor resistencia. No prohíbe alternativas — hace que el camino correcto sea tan fácil que la mayoría lo elige por defecto. El ejemplo canónico: crear un servicio nuevo.

Sin golden path, un servicio nuevo implica copiar otro repo, ajustar el pipeline, configurar secretos, añadir dashboards y esperar no olvidar nada. Con un golden path, es un comando o un formulario que genera todo eso correcto desde el inicio:

yaml
# Backstage Scaffolder — plantilla de "servicio nuevo" (golden path)
apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
  name: nodejs-service
  title: Servicio Node.js (con CI/CD y observabilidad)
  description: Crea un servicio con pipeline, dashboards y estándares de IQS
spec:
  parameters:
    - title: Datos del servicio
      required: [name, owner]
      properties:
        name:  { type: string, description: Nombre del servicio }
        owner: { type: string, description: Equipo dueño }
  steps:
    - id: fetch
      action: fetch:template
      input:
        url: ./skeleton
        values:
          name: ${{ parameters.name }}
          owner: ${{ parameters.owner }}
    - id: publish
      action: publish:gitlab
      input:
        repoUrl: gitlab.com?repo=${{ parameters.name }}
    - id: register
      action: catalog:register        # se registra solo en el catálogo
      input:
        catalogInfoUrl: /catalog-info.yaml

El esqueleto (skeleton) que genera esta plantilla ya incluye el pipeline de CI/CD, el Dockerfile, los manifiestos de Kubernetes, la configuración de logs y métricas, y el archivo de catálogo. El desarrollador no toma ninguna de esas decisiones — las tomó el equipo de plataforma una vez, bien, y las codificó.

El catálogo de software con Backstage

El catálogo responde la pregunta que se vuelve imposible a escala: '¿qué servicios existen, quién los mantiene y de qué dependen?'. Cada componente se describe con un archivo declarativo que vive junto al código, de modo que el catálogo nunca se desactualiza:

yaml
# catalog-info.yaml — vive en la raíz del repositorio del servicio
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
  name: checkout-api
  description: API de checkout y órdenes
  annotations:
    gitlab.com/project-slug: iqs/checkout-api
    backstage.io/techdocs-ref: dir:.
spec:
  type: service
  lifecycle: production
  owner: team-payments
  dependsOn:
    - resource:postgres-orders
    - component:pricing-service

Con esta información declarada por cada servicio, el portal construye automáticamente el grafo de dependencias, las páginas de propiedad por equipo y la documentación técnica. Cuando algo falla, el catálogo responde en segundos quién es el dueño y qué más se ve afectado.

Self-service sin perder gobernanza

El miedo legítimo al self-service es el caos: si cualquiera puede aprovisionar lo que quiera, la seguridad y los costos se descontrolan. La solución no es volver a los tickets — es codificar la gobernanza dentro del propio camino de self-service. El desarrollador pide en términos de aplicación; la plataforma traduce a infraestructura conforme a las políticas.

yaml
# El desarrollador declara la intención; la plataforma impone el estándar.
# Recurso de alto nivel (Crossplane) — no toca Terraform ni IAM directamente
apiVersion: platform.iqs.io/v1alpha1
kind: PostgresInstance
metadata:
  name: orders-db
spec:
  size: small          # small | medium | large -> tamaños aprobados
  environment: prod
  team: team-payments  # deriva permisos, tags de costo y backups por política

Detrás de ese recurso simple, la plataforma aplica cifrado, backups, tags de costo, reglas de red y permisos mínimos — todo sin que el desarrollador los configure ni pueda saltárselos. La gobernanza deja de ser una revisión manual y se vuelve parte de la definición.

Diseña la plataforma como pavimento, no como reja. Si el golden path es más fácil que hacerlo a mano, la gente lo usará sin que lo impongas. Si lo impones con prohibiciones pero el camino es incómodo, la gente construirá atajos por fuera y perderás la visibilidad que buscabas.

Métricas: cómo saber si tu plataforma funciona

Un IDP es un producto interno, y como todo producto se mide por adopción y por el resultado que produce, no por las features que tiene. Las métricas que importan:

  • Tiempo al primer deploy: cuánto tarda un desarrollador nuevo desde cero hasta su primer cambio en producción. Es el indicador más honesto de la fricción real de tu plataforma.
  • Adopción de golden paths: qué porcentaje de servicios nuevos usan las plantillas de la plataforma frente a los que se crean por fuera. Baja adopción significa que el camino no es lo bastante fácil.
  • Métricas DORA: frecuencia de despliegue, lead time, tasa de fallo de cambios y tiempo de recuperación. Una buena plataforma las mejora de forma transversal a todos los equipos.
  • Satisfacción del desarrollador (DevEx): encuestas cortas y periódicas. La plataforma existe para servir a los desarrolladores; si la odian, no importa qué tan elegante sea por dentro.

Errores comunes al adoptar Platform Engineering

  • Construir la plataforma sin tratar a los desarrolladores como clientes: si el equipo de plataforma decide en aislamiento qué necesitan los demás, construye algo que nadie pidió. Habla con tus usuarios internos como hablarías con clientes externos.
  • Empezar por el portal en vez de por los golden paths: un Backstage instalado sin automatización detrás es un catálogo bonito y vacío. El valor está en los caminos pavimentados, no en la interfaz.
  • Imponer en lugar de pavimentar: forzar la plataforma con prohibiciones genera atajos clandestinos. Gana adopción haciendo que el camino correcto sea el más cómodo.
  • Adoptar Platform Engineering demasiado pronto: con 2-3 equipos, el overhead de una plataforma formal no se justifica. Tiene sentido cuando la duplicación entre equipos y la carga cognitiva empiezan a costar más que la plataforma.
Platform Engineering no reemplaza a DevOps ni elimina la necesidad de que los desarrolladores entiendan lo que despliegan. Abstrae la complejidad repetitiva, no la responsabilidad. Un equipo que no entiende nada de lo que corre debajo de la plataforma es tan frágil como uno que tiene que configurarlo todo a mano.

Preguntas frecuentes

¿A partir de qué tamaño tiene sentido Platform Engineering?
No hay un número mágico, pero la señal clara aparece cuando tienes suficientes equipos como para que la duplicación de esfuerzo sea evidente — típicamente a partir de 4-5 equipos de producto o cuando notas que cada equipo resuelve los mismos problemas de infraestructura de forma distinta. Con 2-3 equipos, el overhead de una plataforma formal supera el beneficio; una buena base de plantillas compartidas suele ser suficiente en esa etapa.
¿Backstage es la única opción para construir un IDP?
No. Backstage (creado por Spotify, hoy en la CNCF) es el portal open-source más popular, pero es solo la capa de interfaz. Hay alternativas comerciales como Port, Cortex o Humanitec que aceleran el arranque, y también IDPs construidos sobre herramientas propias. Lo importante no es el portal sino la sustancia detrás: golden paths, automatización de aprovisionamiento y gobernanza. El portal se puede cambiar; los caminos pavimentados son el activo real.
¿Qué tamaño debe tener el equipo de plataforma?
Empieza pequeño: 2-4 ingenieros dedicados suelen ser suficientes para arrancar en una organización mediana. La clave es que sea un equipo dedicado con producto propio, no una tarea secundaria de un equipo de infraestructura ya sobrecargado. Un equipo de plataforma a tiempo parcial produce una plataforma a medias que nadie adopta.
¿Platform Engineering reemplaza a DevOps o a los SRE?
No los reemplaza, los reorganiza. Platform Engineering es una evolución de las prácticas DevOps: en lugar de que cada equipo cargue con toda la complejidad operativa, un equipo de plataforma la abstrae en self-service. Los SRE siguen siendo necesarios para la confiabilidad de los sistemas críticos. Es un cambio de modelo operativo, no la eliminación de disciplinas.
¿Cuánto tarda en verse el retorno de un IDP?
Los primeros golden paths pueden dar valor en 2-3 meses si se enfocan en el flujo de mayor fricción (típicamente crear y desplegar un servicio nuevo). El retorno completo — adopción amplia, mejora transversal de las métricas DORA y reducción real de carga cognitiva — se ve entre 6 y 12 meses. Es una inversión de producto, no un proyecto con fecha de cierre.

¿Tu organización creció y cada equipo reinventa su infraestructura? Diseñamos e implementamos plataformas internas y golden paths que reducen la fricción sin perder gobernanza.

Habla con el equipo

Artículos relacionados

Jairo Gabriel Melo Jiménez
Jairo Gabriel Melo Jiménez

Cofundador · Cloud, DevOps e Infraestructura

IQS | Platform Engineering e Internal Developer Platforms | IQS