Tutorial de uso de Dynos en Heroku: escalado automático y manual
Heroku es una plataforma como servicio (PaaS) que facilita el despliegue, gestión y escalado de aplicaciones en la nube. El núcleo del modelo de ejecución en Heroku son los dynos, contenedores ligeros que ejecutan procesos de tu aplicación. En este tutorial aprenderás a gestionar dynos, compararemos sus tipos, y veremos cómo escalar de forma manual y automática para satisfacer la demanda de tráfico.
1. ¿Qué es un dyno
Un dyno es un entorno de ejecución aislado que corre tu código. Heroku presenta varias características clave:
- Aislamiento: cada dyno corre en su propio contenedor con recursos dedicados.
- Ephemeral: el sistema de archivos vuelve a su estado original tras cada reinicio.
- Automatización: Heroku reinicia dynos que fallen, garantizando alta disponibilidad.
2. Tipos de dynos
Heroku ofrece varios planes de dynos adaptados a diferentes necesidades:
| Tipo | CPU / RAM | Uso ideal | Costo |
|---|---|---|---|
| Free | 512 MB RAM | Proyectos de prueba | 0/mes |
| Hobby | 512 MB RAM | Aplicaciones de bajo tráfico | 7/mes |
| Standard | 1x CPU, 512 MB RAM | Entornos de producción | 25/mes |
| Performance | 2.5 Ghz x 1, 2.5 GB RAM | Alta concurrencia | 250/mes |
Para más detalles, consulta la documentación oficial: Tipos de dynos en Heroku.
3. Escalado manual de dynos
El escalado manual te permite ajustar el número de dynos según necesidades puntuales. Se puede realizar mediante la interfaz web o la CLI de Heroku.
3.1. Usando la CLI de Heroku
Abre tu terminal y navega al directorio de tu proyecto. Luego ejecuta:
heroku ps:scale web=3
Con esto ejecutas 3 dynos del tipo web. Puedes escalar otros procesos:
heroku ps:scale worker=2
3.2. Usando el Dashboard de Heroku
- Ingresa a tu aplicación en el Dashboard.
- Selecciona la pestaña Resources.
- Localiza el dyno que quieras escalar y ajusta el control deslizante.
- Guarda los cambios y espera a que Heroku aplique la nueva configuración.
4. Monitoreo de rendimiento
Antes de automatizar el escalado, conviene conocer métricas clave:
- Throughput (RPS): solicitudes por segundo.
- Latency: tiempo de respuesta.
- Uso de CPU y memoria: uso de recursos de los dynos.
Heroku ofrece add-ons como New Relic o Papertrail para profundizar en el monitoreo.
5. Escalado automático de dynos
El escalado automático ajusta el número de dynos según reglas predefinidas. Está disponible para dynos Standard y Performance.
5.1. Requisitos
- Plan Standard 2X o Performance.
- Heroku Metrics habilitadas.
5.2. Configuración básica
Para activar el escalado automático del proceso web:
heroku ps:auto-scaling:enable web
Por defecto, Heroku mantendrá entre 1 y 10 dynos buscando una latencia de 95% en 500ms. Para ajustar parámetros:
heroku ps:auto-scaling:web --min=2 --max=15 --cpu-threshold=70
- –min: dynos mínimos.
- –max: dynos máximos.
- –cpu-threshold: porcentaje de CPU que dispara el escalado.
5.3. Ver estado del autoescalado
heroku ps:auto-scaling:web
Obtendrás algo similar a:
Min dynos: 2
Max dynos: 15
CPU threshold: 70%
6. Buenas prácticas
- Pruebas de carga: utiliza herramientas como Locust o JMeter para simular tráfico antes de escalar.
- Configuración gradual: comienza con min y max moderados para evitar saltos bruscos.
- Costos controlados: revisa periódicamente tu factura para ajustar el escalado.
- Métricas personalizadas: emplea Heroku Runtime Metrics para más visibilidad.
7. Conclusión
El uso adecuado de dynos y el escalado (manual y automático) es vital para ofrecer a tus usuarios una experiencia de alta disponibilidad y desempeño. Heroku simplifica muchas tareas, pero requiere comprender los límites de recursos y configurar métricas y reglas de escalado para optimizar costos y rendimiento.
Empieza implementando el escalado manual, monitorea tu aplicación y luego da el salto al autoescalado para lograr una arquitectura verdaderamente adaptable. ¡Éxito desplegando en Heroku!
Leave a Reply