# Autoescalado

> Sumar y sacar servidores en forma automática a medida que sube y baja la demanda.

- Nivel: Intermedio
- Temas: Cloud
- URL: https://tidbit.legios.com.ar/es/autoscaling/
- En inglés: [Autoscaling](https://tidbit.legios.com.ar/autoscaling/)

El **autoescalado** (autoscaling) es una función de la nube que cambia sola la cantidad de servidores que corren una aplicación, según qué tan ocupada esté. Cuando sube el tráfico, agrega copias (**escalar hacia afuera**, scale out); cuando baja, las saca (**escalar hacia adentro**, scale in). Un balanceador de carga adelante reparte los pedidos entre las copias que haya en cada momento.

Las reglas las ponés vos: mantener la CPU promedio cerca del 50%, nunca tener menos de dos servidores ni más de veinte, sumar capacidad los días hábiles a las 8 antes de la hora pico. El sistema mira métricas como CPU, memoria, cantidad de pedidos o largo de una cola y actúa cuando cruzan el límite. En AWS se hace con **Auto Scaling groups** para EC2; Kubernetes hace lo mismo con contenedores, y las plataformas serverless como AWS Lambda escalan solas sin nada de esta configuración.

La idea es pagar por lo que usás sin caerte en el pico. Un sitio de venta de entradas puede correr pocos servidores de noche y decenas cuando sale a la venta un recital grande. Solo funciona bien si la app está pensada para esto: cualquier copia tiene que poder atender cualquier pedido, sin datos importantes guardados en un único servidor, y las copias nuevas tienen que arrancar rápido. Escalar también lleva tiempo, así que un pico repentino puede llegar antes de que los servidores nuevos estén listos.

## Una analogía

Un supermercado que abre más cajas cuando las filas se alargan y las cierra cuando el local se vacía. Nadie espera demasiado, y el súper no le paga a cajeros para que miren cajas vacías.

## Para quedarse

- Suma servidores cuando sube la carga y los saca cuando baja.
- Se maneja con reglas sobre métricas como CPU, pedidos o largo de cola, más mínimos y máximos.
- Funciona con un balanceador de carga y apps donde cualquier copia atiende cualquier pedido.
- La capacidad nueva tarda en arrancar, así que los picos repentinos igual necesitan margen.

## Para seguir leyendo

- [¿Qué es Amazon EC2 Auto Scaling? (documentación de AWS)](https://docs.aws.amazon.com/es_es/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html)
- [Autoescalado en Wikipedia](https://es.wikipedia.org/wiki/Autoescalado)

## Términos relacionados

- [Computación en la nube](https://tidbit.legios.com.ar/es/cloud-computing/): Alquilar computadoras por internet en vez de comprar las tuyas.
- [Servidor](https://tidbit.legios.com.ar/es/server/): Una computadora cuyo trabajo es responder pedidos de otras computadoras, todo el día.
- [Balanceador de carga](https://tidbit.legios.com.ar/es/load-balancer/): El agente de tránsito que reparte los pedidos que llegan entre muchos servidores.
- [CPU](https://tidbit.legios.com.ar/es/cpu/): El chip que ejecuta tus programas, una instrucción tras otra, muy rápido.
- [Amazon EC2](https://tidbit.legios.com.ar/es/amazon-ec2/): Computadoras virtuales que alquilás por hora, del tamaño que quieras, y después apagás.
- [Kubernetes](https://tidbit.legios.com.ar/es/kubernetes/): El sistema que corre y cuida contenedores en muchas máquinas a la vez.
- [Contenedor](https://tidbit.legios.com.ar/es/container/): Una caja cerrada con un programa y todo lo que necesita para correr en cualquier lado.
- [Serverless](https://tidbit.legios.com.ar/es/serverless/): Código que corre solo cuando alguien lo llama; el servidor no lo ves nunca.
