Lo que realmente pasa entre “Kubernetes corre” y “listo para producción”
Kubernetes en producción: lo que realmente cuesta llegar ahí
Todos hemos pasado por lo mismo. La aplicación funciona sin problemas en nuestro portátil, dentro de un contenedor Docker. La empaquetamos, levantamos un clúster de Kubernetes y ya está “desplegada”. El equipo celebra. El CTO respira tranquilo.
Luego llega la realidad.
Lo que funciona en un entorno de desarrollo no siempre resiste el tráfico real, los datos de verdad y los fallos que ocurren a las tres de la mañana.
Por qué “funciona en Kubernetes” no es lo mismo que estar en producción
Un clúster de desarrollo y uno de producción comparten poco más que el nombre. En desarrollo todo es temporal, local y controlado por una sola persona. En producción hay que responder preguntas distintas: ¿cómo desplegamos sin intervención manual? ¿dónde viven los secretos? ¿qué ocurre si falla el almacenamiento? ¿podemos recuperar todo tras un desastre?
Estas preguntas no son opcionales. Son las que separan un experimento de un servicio del que depende un negocio.
Las fases reales de madurez
Pasar de “funciona en mi máquina” a “el equipo puede operarlo sin miedo” sigue un camino bastante predecible. No se trata de añadir funciones, sino de construir fiabilidad paso a paso.
Fase 1: Hacer que los cimientos funcionen
Antes de pensar en usuarios hay que conectar las piezas básicas:
- Usar dominios reales en lugar de direcciones locales
- Integrar un proveedor de identidad (OIDC o SAML)
- Sacar los datos persistentes fuera del clúster
- Gestionar secretos sin guardarlos en archivos YAML
Esta fase suele ser invisible. Nadie la ve como un logro,但它是基础。
Fase 2: Que el producto funcione con la infraestructura
Una vez que las piezas básicas están en lugar, hay que verificar que el producto realmente usa esas piezas:
- Los flujos de autenticación deben trabajar end-to-end
- Los archivos deben guardarse de forma duradera
- El caché debe funcionar sin timeouts
- El routing de entrada debe manejar tráfico real
Aquí es donde se descubren las asunciones que solo eran válidas en el entorno de desarrollo.
Fase 3: Controlar los cambios
Cuando manual helm install ya no es suficiente, necesitas:
- GitOps: el estado del clúster vive en Git
- Validaciones automáticas antes de cada despliegue
- Trazabilidad de quién cambió qué y cuándo
- Caminos claros de rollback
GitOps no es solo conveniencia. Es seguridad.
Fase 4: Posibilidad de recuperación
La mayoría de equipos asume que existen backups. Hasta que intentan restaurarlos.
Producción real requiere:
- Programas automáticos de backup para bases de datos, volúmenes y configuración
- Pruebas regulares de restauración (no solo una vez)
- Objetivos claros de RTO y RPO
- Procedimientos documentados que cualquiera pueda seguir
Fase 5: Ver lo que está ocurriendo
最后, la observabilidad:
- Métricas de rendimiento y errores
- Dashboards claros para ver el estado del sistema
- Alertas que avisan el momento correcto
- Logs buscables y con retención adecuada
Observability es la transición de “esperando que no pase nada” a “sabemos lo que pasa”.
La integración es el problema mayor
La mayor parte del trabajo en producción no es Kubernetes en sí. Es la infraestructura que rodet
La identidad debe flow desde el OIDC provider a través del ingress hasta el código.
La storage debe ser persistente y también recuperable.
The secrets deben estar seguros y accesible al deployment.
The configuration debe ser versionada y deployable sin manual steps.
The observability debe conectarse über alle Systeme.
当 any piece bricht, it bricht sichtbar.