¿Qué es el escalamiento?
Clase 14 de 19 • Curso de Introducción al Desarrollo Backend
Contenido del curso
Clase 14 de 19 • Curso de Introducción al Desarrollo Backend
Contenido del curso
Andres Camilo Alvarez Vasquez
Sandro Gasca España
Felix Torres Javier Antonio
Daniel Eduardo Portugal Revilla
Diego Geovanny Bracero
Juan Pablo Hillcoat
Agustín Alberto Leiva
Joaquín J. Barros T.
Daniel Esteban Acero Díaz
Lucas José Beltrán Pacheco
Fidel Parabacuto
Miguel Angel Reyes Moreno
MARIA CAMILA OSPINA GRANDA
Jesus Alejandro Gutierrez Guevara
Daniel García Romero
Joan Gomezjurado Sánchez
Fidel Parabacuto
Nicolás Trejos
Cristian Acalo
Emanuel Mustapha
Rolando Mamani Salas
Erick Marcial Machacado Rizo
Jhon Freddy Tavera Blandon
yesenia gil
Lautaro Martinez
Eduardo Jimenez
Fabián Chacón
moises montoya
ANDRES ALFONSO MIRA MEJIA
SERGIO ANDRES AVILA ALVAREZ
RESUMEN DE CLASE
Qué es el escalamiento?
Escalamiento vertical.
Es cuando tenemos un servidor y eventualmente el servidor empieza a colapsar, una forma de solucionar el problema es incrementar:
CPU
RAM
Disk
Problemas:
Escalamiento horizontal
Soluciona el problema de la disponibilidad. Se tienen varias instancias del mismo servidor. Como se tienen distintos servidores ahora se necesita de un LOAD BALANCER
LOAD BALANCER -> Tiene conocimiento de nuestras instancias/servidores (al conjunto de servidores se denomina Clouster). Si un nodo(instancia) se cae, el load balancer se encarga de desviarla. Distribuye las peticiones.
Si les gusto mi aporte pueden darme <3
Muy buen apórte
gracias por el aporte!!!
Recomendación
Les recomiendo tomar el audio-curso del Pelado Nerd donde trata más a fondo el tema del escalamiento en servidores. 👇 Audiocurso de Fundamentos de Arquitectura de Alta Concurrencia
Gracias!
Uh! Genial, me encantan los audio-cursos, gracias por recomendarlo :D
Apuntes en notion 👉🏽 notion
Genial, gracias Bro!
El escalamiento es el proceso de aumentar la capacidad de un sistema para manejar una mayor carga de trabajo. Cuando se habla de servidores, el escalamiento puede referirse a la adición de más hardware o recursos a un servidor o a la distribución de la carga de trabajo entre varios servidores.
Hay dos tipos principales de escalamiento: horizontal y vertical. El escalamiento horizontal implica añadir más servidores para distribuir la carga de trabajo entre ellos. Esto se puede hacer de manera transparente para el usuario final, y puede ser una buena opción para sistemas que tienen picos de tráfico impredecibles.
El escalamiento vertical, por otro lado, implica añadir más recursos a un servidor existente para aumentar su capacidad. Esto puede incluir cosas como añadir más memoria o procesadores a un servidor o mejorar su conectividad a Internet.
El escalamiento vertical puede ser más sencillo de implementar, pero puede ser menos flexible que el escalamiento horizontal y puede llegar a un punto en el que no sea posible añadir más recursos a un servidor.
Un Load Balancer (o equilibrador de carga) es un dispositivo o software que se utiliza para distribuir la carga de trabajo entre varios servidores. En el escalamiento horizontal, el Load Balancer juega un papel clave al asegurar que la carga de trabajo se distribuya de manera equitativa entre todos los servidores disponibles, evitando que algunos servidores se saturen mientras que otros tienen capacidad disponible.
El escalamiento horizontal está en Platzi en sus reproductores de video, en el icono de la tuerca tenemos 'Server A, Server B, Server C' :D
No pensé que el mundo del backend fuera tan amplio, ya me estresé
jajajjaja, es igual o hasta, MUCHO mas complejo que el frontend
El load Balancer, es otro servidor?
No, este sirve es para balancear la URL con relacion al servidor
El Load Balancer puede ser un hardware especializado o un software que se ejecuta en una máquina independiente. Dependiendo del tamaño y la complejidad del sistema, puede ser necesario utilizar varias máquinas para implementar el Load Balancer y asegurar un rendimiento óptimo.
Escalamiento vertical: Aumentar los recursos del servidor. Escalamiento horizontal: Platzi y sus diferentes servers en el reproductor de video.
Escalamiento 🦄✨
Se refiere a la capacidad que tiene un servidor de procesar solicitudes y en general de funcionar correctamente. Cuando existe un aumento de peticiones, el servidor requiere de una especie de “mejora”, la cual se puede hacer de dos maneras: vertical y horizontal.
Vertical
El escalamiento vertical se refiere a actualizar el hardware del mismo servidor para que tenga más capacidad de procesamiento. Esto tiene ciertas ventajas y desventajas
Ventajas:
Desventaja
Horizontal
Se trata de replicar la información de un servidor, en más servidores de similares características.
Ventajas
Desventajas
RESUMEN DE CLASE:
ESCALAMIENTO VERTICAL: El escalamiento vertical es ampliar nuestros recursos, básicamente la CPU, RAM, Disk, para que ocurran saturaciones por muchos usuarios que están en nuestra aplicación, es básicamente aumentar los recursos de la maquina, es muy fácil aumentar nuestros servicios ya que solo es pagarle mas a los que nos están alojando nuestro servidor en este caso el proveedor.
ESCALAMIENTO HORIZONTAL: Soluciona el problema de disponibilidad, básicamente es tener varias instancias del mismo servidor es decir si se cae nuestro primer servidor por muchos request que pidan van a estar otros servidores sosteniendo todos los request que hagan los clientes pero necesitamos un Load Balancer que basicamente es para repartir toda la información de los request a los dos servidor que todo este pues equilibrado, basicamente distribuye las peticiones.
este curso esta demaciado bueno
El escalamiento para un Backend Developer se refiere a diseñar y construir sistemas capaces de manejar un aumento de usuarios o de carga de trabajo, manteniendo el rendimiento y la disponibilidad. Implica hacer que la aplicación o la infraestructura sean más grandes (escalamiento vertical) o añadir más recursos (escalamiento horizontal).
📌 1. Escalamiento Vertical (Scaling Up)
✔ Aumentar la capacidad de un solo servidor.
✔ Se logra agregando más CPU, memoria RAM o almacenamiento.
✔ Es más sencillo de implementar, pero tiene un límite físico.
✅ Ejemplo:
Pasar de un servidor con 16GB de RAM a uno con 64GB de RAM.
⚠️ Problema: Llega un punto donde no se puede mejorar más el hardware.
📌 2. Escalamiento Horizontal (Scaling Out)
✔ Agregar más servidores para distribuir la carga.
✔ Mejora la disponibilidad y tolerancia a fallos.
✔ Se usa en aplicaciones distribuidas y microservicios.
✅ Ejemplo:
Un sitio web con un servidor no soporta más usuarios, por lo que se agregan más servidores para compartir la carga.
⚠️ Desafío: Requiere un balanceador de carga y una buena arquitectura.
me gusto la explicacion
Hice un compilado entre respuestas de IA y comentarios del video:
Si no escalas tu backend adecuadamente, tu aplicación puede volverse lenta, inaccesible o incluso caerse bajo carga. Esto conlleva a una mala experiencia del usuario, pérdida de clientes y, en última instancia, impacta negativamente la reputación y los objetivos de tu negocio.
Cuando hablamos de mejorar el rendimiento de una infraestructura o aplicación para que soporte más carga (usuarios, datos o procesos), existen dos caminos principales: el Escalamiento Vertical y el Escalamiento Horizontal.
Escalamiento Vertical (Scaling Up)
Consiste en aumentar la potencia y capacidades de un único servidor o nodo, aumentando sus recursos de hardware (CPU, RAM, Almacenamiento).
Escalamiento Horizontal (Scaling Out)
Consiste en agregar más servidores al ecosistema para que trabajen en conjunto/paralelo (clúster). En lugar de tener un servidor gigante, tienes muchos servidores pequeños o medianos.
¿Cuál elegir?
Para decidir entre escalabilidad vertical u horizontal, la métrica reina es el límite de saturación. Si el uso de CPU o RAM llega al 80% debido a procesos pesados e indivisibles, opta por la vertical.
Sin embargo, si el problema es el volumen de conexiones concurrentes o la necesidad de alta disponibilidad, la escalabilidad horizontal es la solución técnica definitiva.
Normalmente, el escalamiento vertical es el primer paso cuando una aplicación está creciendo, porque es rápido y barato de implementar. Sin embargo, para sistemas críticos que no pueden permitirse estar fuera de línea o que esperan millones de usuarios, el escalamiento horizontal es la norma de la industria, ya que permite que la infraestructura sea elástica y robusta.
hay alguna metrica o variable que nos indique si requerimos priorizar la escalabilidad horizontal o vertical?
Hola Eduardo,
Para decidir entre escalabilidad vertical (más potencia a un servidor) u horizontal (más servidores), la métrica reina es el límite de saturación. Si el uso de CPU o RAM llega al 80% debido a procesos pesados e indivisibles, opta por la vertical. Sin embargo, si el problema es el volumen de conexiones concurrentes o la necesidad de alta disponibilidad (evitar que el sistema caiga si un servidor falla), la escalabilidad horizontal es la solución técnica definitiva.
En un esquema horizontal, el Load Balancer actúa como el punto de entrada único que distribuye el tráfico entrante entre varios servidores (nodos). Su función es monitorizar la salud de cada instancia y redirigir las peticiones para que ningún servidor se sature, permitiendo que el sistema crezca de forma casi ilimitada simplemente añadiendo más unidades al grupo.
Como ejemplo: si tienes una base de datos que procesa cálculos complejos, podrías escalarla verticalmente para darle más "músculo" de procesamiento. Pero si lanzas una aplicación móvil que recibirá millones de clics simultáneos, debes escalar horizontalmente con un balanceador de carga para repartir el peso y asegurar que, si un servidor falla, los otros mantengan el servicio activo.
wow nunca me imagine eso :)
me sospredion mas fue Horizontal
✅
también hay plataformas que tiene autoescalamiento...