Capacity Planning: la ingeniería de predecir antes de apagar fuegos

Si la primera vez que piensas en capacidad es durante un incidente, ya es tarde.

Capacity planning y dimensionamiento de sistemas

"Necesitamos más servidores." Esa frase, dicha con urgencia a las 2 de la mañana mientras un servicio se cae por saturación, es el síntoma de un problema que debió resolverse semanas antes. Capacity planning no es reaccionar cuando la infraestructura colapsa. Es la disciplina de entender cuánta capacidad tienes, cuánta vas a necesitar, y tomar decisiones antes de que la demanda supere la oferta.

La mayoría de los equipos no hacen capacity planning. Aprovisionan por intuición, escalan por pánico y descubren los límites de su infraestructura cuando los usuarios ya los están sufriendo.

Capacity planning no es "agregar más servidores cuando va lento"

Escalar reactivamente es caro, lento y arriesgado. Cuando ya estás en un incidente de saturación, aprovisionar nuevos recursos toma tiempo: minutos si tienes autoscaling bien configurado, horas si necesitas aprobar presupuesto y levantar máquinas manualmente. Y durante ese tiempo, los usuarios están sufriendo degradación o caídas totales.

Capacity planning es un proceso continuo de tres fases: medir la capacidad actual, proyectar la demanda futura, y decidir cuándo y cómo escalar. Las tres requieren datos, no intuición.

Las métricas que importan (y por qué los promedios mienten)

Los cuatro recursos fundamentales son CPU, memoria, disco y red. Pero la forma en que los mides determina si tu capacity planning sirve o no.

El promedio de CPU al 45% parece saludable. Pero si el p95 está al 92% y el p99 toca el 100%, tienes un problema que el promedio oculta. Los percentiles altos revelan la realidad que los promedios esconden. Para capacity planning, siempre usa p95 y p99, nunca promedios.

Modelos de predicción: tres enfoques que funcionan

Predecir la demanda futura no requiere modelos de machine learning sofisticados. Requiere disciplina y datos históricos.

En la práctica, los tres se complementan. Extrapolación para el baseline, eventos para los picos, y pruebas de carga para validar que tus proyecciones se sostienen bajo presión real.

Vertical vs horizontal: cuándo escalar en cada dirección

No toda la escala es igual, y elegir mal la dirección tiene consecuencias.

Escalar verticalmente (más CPU, más RAM, disco más rápido) es la primera opción por simplicidad. No requiere cambios en la arquitectura. Una base de datos que necesita más memoria para su working set se beneficia directamente de un upgrade vertical. Pero tiene techo: eventualmente llegas al límite del hardware disponible, y cada salto de instancia es desproporcionadamente más caro.

Escalar horizontalmente (más instancias detrás de un balanceador) escala mejor a largo plazo, pero requiere que tu aplicación lo soporte: estado distribuido o sin estado, distribución de carga, consistencia eventual en muchos casos. Si tu servicio fue diseñado como monolito con estado en memoria, escalar horizontalmente no es simplemente "agregar más nodos."

La regla práctica: vertical primero, horizontal cuando el vertical no alcanza. Pero diseña siempre pensando en que eventualmente necesitarás horizontal.

En la práctica: el proceso trimestral

Capacity planning no es un proyecto de una vez. Es un proceso recurrente. Así lo implemento:

El anti-patrón: sobre-aprovisionar por miedo

El extremo opuesto al bajo aprovisionamiento es igualmente problemático. He visto organizaciones que aprovisionan 10x la capacidad necesaria "por si acaso." El resultado: facturas de cloud de seis cifras mensuales con utilización promedio del 8%.

El sobre-aprovisionamiento nace del miedo, no de los datos. Es la versión infraestructura de "tiremos dinero al problema." No es capacity planning — es ausencia de planning con presupuesto infinito.

Capacity planning real busca el equilibrio: suficiente margen para absorber picos sin desperdiciar recursos en capacidad ociosa. Ese equilibrio requiere datos, no corazonadas.

El costo de no planificar

La falta de capacity planning no se manifiesta como un error en un log. Se manifiesta como latencia que sube gradualmente, como incidentes que ocurren siempre en las mismas horas pico, como equipos que viven apagando fuegos en lugar de construir funcionalidad.

Cada incidente de saturación que podría haberse previsto es tiempo de ingeniería desperdiciado, usuarios perdidos y confianza erosionada. Y a diferencia de un bug en el código, la saturación no se resuelve con un hotfix de 5 minutos.

Capacity planning es la diferencia entre escalar con control y escalar con pánico. Mide, proyecta, decide. Antes de que el sistema te obligue.

Jorel del Portal

Jorel del Portal

Ingeniero de sistemas especializado en arquitectura de software empresarial y plataformas de alta disponibilidad.