Java en Kubernetes: Deja de Quemar Dinero
Poner Java a correr en Kubernetes es fácil. Hacerlo correr bien es otra historia. La mayoría de los equipos termina sobredimensionando recursos por miedo a los OOMKills, pagando por capacidad que nunca usan, y culpando a la infraestructura cuando el verdadero problema está en cómo la JVM y el orquestador se entienden — o más bien, cómo no se entienden.
En esta sesión práctica y sin hype, vamos a ir directo a lo que importa:
Configuración de memoria que realmente funciona: Por qué -Xmx ya no es suficiente, cómo usar MaxRAMPercentage para que la JVM entienda los límites del contenedor, y qué pasa con toda la memoria que no es el heap.
Requests y Limits como palanca de ahorro: La diferencia entre el escenario que quema dinero, el que genera inestabilidad y el que da balance real con la metodología de 4 pasos para calcular los valores correctos basados en datos medidos.
CPU Throttling, el asesino invisible: Cómo detectarlo con una sola query de Prometheus y tres estrategias concretas para eliminarlo.
Observabilidad accionable: Las métricas no negociables para Java en K8s y cómo usar Java Flight Recorder en producción con menos del 1% de overhead para encontrar lo que los dashboards no muestran.