# Platform engineering

> Armar un producto interno para que los developers publiquen sin ser expertos en cloud.

- Nivel: Avanzado
- Temas: Cloud, Software
- URL: https://tidbit.legios.com.ar/es/platform-engineering/
- En inglés: [Platform engineering](https://tidbit.legios.com.ar/platform-engineering/)

El software actual corre sobre una pila larga de herramientas: cuentas cloud, Kubernetes, pipelines de CI/CD, infraestructura como código, secretos, monitoreo, escáneres de seguridad. La idea de DevOps de "lo construís, lo operás" le cargó buena parte de eso a cada equipo de producto, y muchos terminaron pasando más tiempo conectando herramientas que haciendo funcionalidades. La **ingeniería de plataformas** (platform engineering) responde a eso con un **equipo de plataforma** dedicado que arma una capa compartida y de autoservicio encima de toda esa complejidad.

Esa capa se llama **plataforma interna de desarrollo** (internal developer platform). Desde un portal, una línea de comandos o unos pocos archivos de configuración, un developer puede crear un servicio nuevo a partir de una plantilla, recibir un repositorio con su pipeline ya armado, pedir una base de datos, desplegar en staging y ver logs y tableros, todo sin abrir tickets ni aprender cada herramienta de abajo. Los caminos recomendados se llaman **golden paths** (caminos dorados): la forma fácil y con soporte de hacer las tareas comunes, con las reglas de seguridad y de costos ya incorporadas. Backstage, un portal open source creado en Spotify, es un punto de partida muy usado.

La clave es tratar la plataforma como un producto y a los developers como sus clientes: entrevistarlos, medir si la adoptan y hacer que el golden path sea el camino más cómodo, no una obligación. Mal hecha, la plataforma se vuelve una ventanilla burocrática más, o un montón de herramientas que nadie pidió. Bien hecha, permite que una empresa con decenas de equipos se mueva rápido y mantenga su infraestructura prolija y segura.

## Una analogía

Una cocina profesional compartida en un patio gastronómico. Cada local cocina su propio menú, pero el gas, la ventilación, las cámaras de frío y las inspecciones sanitarias los arma y mantiene un solo equipo, así los cocineros se concentran en la comida.

## Para quedarse

- Un equipo de plataforma arma herramientas de autoservicio para los demás equipos de desarrollo.
- La plataforma interna esconde los detalles de infraestructura detrás de plantillas y un portal.
- Los golden paths hacen que la forma recomendada sea también la más fácil.
- Funciona cuando se maneja como un producto, con los developers como clientes.

## Para seguir leyendo

- [¿Qué es la ingeniería de plataformas? (Red Hat)](https://www.redhat.com/es/topics/platform-engineering)
- [CNCF platforms white paper (en inglés)](https://tag-app-delivery.cncf.io/whitepapers/platforms/)
- [What is Backstage? (en inglés)](https://backstage.io/docs/overview/what-is-backstage)

## Términos relacionados

- [Kubernetes](https://tidbit.legios.com.ar/es/kubernetes/): El sistema que corre y cuida contenedores en muchas máquinas a la vez.
- [CI/CD](https://tidbit.legios.com.ar/es/ci-cd/): Automatización que construye, prueba y publica cada cambio, para que lanzar sea rutina.
- [Infraestructura como código](https://tidbit.legios.com.ar/es/infrastructure-as-code/): Describir servidores, redes y bases de datos en archivos en vez de a clics.
- [DevOps](https://tidbit.legios.com.ar/es/devops/): Romper la pared entre quienes escriben el software y quienes lo hacen funcionar.
- [Línea de comandos](https://tidbit.legios.com.ar/es/command-line/): Manejar una computadora escribiendo comandos de texto en vez de hacer clic en íconos.
- [Base de datos](https://tidbit.legios.com.ar/es/database/): Un depósito ordenado de datos que los programas consultan y actualizan sin riesgo.
- [Deploy](https://tidbit.legios.com.ar/es/deployment/): Llevar una versión nueva del software desde el equipo hasta los usuarios reales.
- [Código abierto](https://tidbit.legios.com.ar/es/open-source/): Software cuyo código cualquiera puede leer, usar, cambiar y compartir.
