Arquitectura de Servidores para Escalabilidad y Alta Disponibilidad

Clase 24 de 27Curso de Introducción a la Nube

Resumen

¿Cómo crear una arquitectura de servidores para Platzi Wallet?

Imagínate diseñar una arquitectura para una aplicación como Platzi Wallet, enfocándonos en cómo operaría si utilizara servidores en su backend. Esta exploración abre un mundo de posibilidades sobre escalabilidad, alta disponibilidad y eficiencias operativas. Aquí te llevaremos a través del fascinante proceso de estructurar una arquitectura donde los servidores son el corazón operativo, garantizando que tu aplicación prospere con la máxima eficiencia.

¿Cuál es el enfoque inicial para la arquitectura de servidores?

Empezamos con uno de los componentes más vitales: la capa de usuario. Todo debe girar en torno a las necesidades del usuario, y por ello es fundamental diseñar la arquitectura con el usuario de Platzi Wallet en mente.

  • DNS: La primera pieza es tu DNS, en este caso, platziwallet.com.
  • CDN y WAF: Siguiendo al DNS, el contenido dinámico y seguro se maneja a través de un CDN junto con un Firewall de Aplicaciones Web (WAF).
  • Balanceador de aplicaciones: Un paso crucial es incluir un balanceador de aplicaciones, encargado de distribuir el tráfico HTTPS a nivel de la capa 7 del modelo OSI.
  • API Gateway y autenticación: Este componente gestiona la autenticación y autorización, proporcionando una capa adicional de seguridad y gestión eficiente de las solicitudes.

¿Cómo se garantiza la alta disponibilidad?

Para asegurar que Platzi Wallet opere sin interrupciones, es esencial implementar zonas de disponibilidad que prevengan fallos.

  • Zonas de disponibilidad (AZ): Se dibujan múltiples zonas de disponibilidad, por ejemplo, AZ1 y AZ2, para asegurar que la aplicación esté siempre operativa.
  • Distribución de tráfico: Los balanceadores de carga utilizan un algoritmo como round-robin para distribuir solicitudes entre servidores en diferentes zonas.

¿Qué papel juega el autoescalamiento?

En un escenario donde los usuarios crecen exponencialmente, es fundamental que la arquitectura soporte esta demanda mediante autoescalamiento.

  • Grupo de autoescalamiento: Este componente permite que el número de servidores crezca en función de la demanda, basándose en una imagen del servidor.
  • Escalabilidad horizontal: Incrementa el número de servidores sin necesidad de downtime. Ideal para enfrentar un repentino incremento de usuarios.
  • Limitación de crecimiento: Es crucial fijar una cantidad máxima de servidores, como ocho, para evitar costos excesivos en caso de ataques de denegación de servicio (DDoS).

¿Cómo se definen las reglas de autoescalamiento?

Las decisiones de cuándo incrementar o decrecer servidores son guiadas por métricas de monitoreo.

  • Métricas de CPU: Por ejemplo, agregar un servidor cuando el uso de CPU supera el 60%, o dos servidores cuando va más allá del 80%.
  • Métricas de tráfico: Considerar no solo el uso del CPU, sino también la cantidad de solicitudes de usuarios, puede proporcionar una base más real de escalamiento.

¿Qué otros componentes son esenciales?

Además del autoescalamiento y las zonas de disponibilidad, hay otras capas críticas:

  • Almacenamiento y base de datos: Incluye almacenamiento robusto y un sistema de bases de datos eficiente para manejar la información de los usuarios.
  • Conexiones híbridas: Permiten la flexibilidad para integrar diferentes sistemas y servicios.
  • Monitoreo y seguridad: Integrar sistemas de monitoreo, trazabilidad y medidas de seguridad adicionales es vital para mantener la integridad de la aplicación.

Esta arquitectura no solo garantiza que Platzi Wallet funcione de manera eficiente, sino que también permite a los desarrolladores ajustar y mejorar constantemente según las necesidades del usuario y la demanda operativa. El autoescalamiento, las zonas de disponibilidad y el monitoreo son claves para crear una arquitectura de servidores sólida y confiable. Te animamos a seguir explorando este fascinante tema y perfeccionando tus habilidades de arquitectura en la nube. ¡Vamos por más conocimiento!