Skip to content

12. Escalabilidad y orquestación

Temas del programa: 4.4

Aplicaciones posteriores de los fundamentos

Los contenedores facilitan empaquetar y ejecutar componentes de una aplicación

Pero no garantizan por sí solos que el sistema soporte más usuarios

Contenerizar
│
▼
Estandarizar el entorno
│
▼
Medir el comportamiento
│
▼
Identificar límites
│
▼
Tomar decisiones de escalabilidad
Usuarios registrados
↓
Usuarios activos
↓
Usuarios concurrentes
↓
Solicitudes por segundo

Son medidas diferentes

No es correcto afirmar que una aplicación soporta una cantidad determinada de usuarios solamente porque utiliza Docker

La capacidad debe medirse con un escenario definido

  • Solicitudes por segundo
  • Latencia
  • Percentiles como p95
  • Errores
  • CPU
  • Memoria
  • Capacidad de la base de datos
  • Consumo de conexiones
  • Comportamiento durante la recuperación

Los resultados deben distinguirse entre valores medidos estimaciones y objetivos de diseño

Vertical

Asignar más recursos a una instancia

CPU y memoria
↑
más recursos
Horizontal

Ejecutar más instancias de un servicio

app app app
\ | /
tráfico

La estrategia adecuada depende de la arquitectura y de los límites de cada componente

¿Qué ocurre si la base de datos es el límite?

Section titled “¿Qué ocurre si la base de datos es el límite?”
app 1 ──┐
app 2 ──┼──► PostgreSQL
app 3 ──┘

Agregar más instancias de la aplicación puede aumentar la presión sobre la base de datos

Antes de escalar hay que identificar el cuello de botella

Puede estar en el código la CPU la memoria el almacenamiento la red o una dependencia externa

Cuando hay muchos contenedores y servicios puede ser necesario automatizar tareas como

  • Programar contenedores en distintos nodos
  • Recuperar servicios después de ciertos fallos
  • Distribuir tráfico
  • Gestionar actualizaciones
  • Escalar cargas de trabajo
  • Descubrir servicios

Kubernetes es una plataforma de orquestación de contenedores

En este bloque se estudian sus fundamentos conceptuales sin convertirlo en la herramienta principal

Docker y Kubernetes cumplen funciones diferentes

Section titled “Docker y Kubernetes cumplen funciones diferentes”
Contenedores
│
▼
Docker y otras herramientas
│
▼
Construir distribuir y ejecutar imágenes
Orquestación
│
▼
Kubernetes
│
▼
Administrar cargas de trabajo en un clúster

La orquestación se estudia después de comprender imágenes contenedores redes y almacenamiento

Continúa con 13. Aplicación integradora.