Este principio del pilar de confiabilidad del Google Cloud Well-Architected Framework proporciona recomendaciones para ayudarte a usar la escalabilidad horizontal. Con la escalabilidad horizontal, puedes asegurarte de que tus cargas de trabajo enGoogle Cloud puedan escalar de manera eficiente y mantener el rendimiento.
Este principio es relevante para el área de enfoque de alcance de la confiabilidad.
Descripción general del principio
Rediseña tu sistema para que tenga una arquitectura horizontal. Para adaptarte al crecimiento del tráfico o de los datos, puedes agregar más recursos. También puedes quitar recursos cuando no estén en uso.
Para comprender el valor del escalamiento horizontal, considera las limitaciones del escalamiento vertical.
Una situación común para el escalamiento vertical es usar una base de datos de MySQL como la base de datos principal con datos críticos. A medida que aumenta el uso de la base de datos, se requiere más RAM y CPU. Con el tiempo, la base de datos alcanza el límite de memoria en la máquina host y debe actualizarse. Es posible que este proceso deba repetirse varias veces. El problema es que existen límites estrictos en cuanto al crecimiento de una base de datos. Los tamaños de las VM no son ilimitados. La base de datos puede llegar a un punto en el que ya no sea posible agregar más recursos.
Incluso si los recursos fueran ilimitados, una VM grande puede convertirse en un punto único de falla. Cualquier problema con la VM de la base de datos principal puede causar respuestas de error o una interrupción en todo el sistema que afecte a todos los usuarios. Evita los puntos únicos de fallo, como se describe en Crea sistemas con alta disponibilidad a través de la redundancia de recursos.
Además de estos límites de escalamiento, el escalamiento vertical suele ser más costoso. El costo puede aumentar de forma exponencial a medida que se adquieren máquinas con mayor cantidad de potencia de procesamiento y memoria.
Por el contrario, el escalamiento horizontal puede costar menos. El potencial de escalamiento horizontal es prácticamente ilimitado en un sistema diseñado para escalar.
Recomendaciones
Para realizar la transición de una arquitectura de VM única a una arquitectura horizontal de varias máquinas, debes planificar con cuidado y usar las herramientas adecuadas. Para ayudarte a lograr el escalamiento horizontal, ten en cuenta las recomendaciones de las siguientes subsecciones.
Usa servicios administrados
Los servicios administrados eliminan la necesidad de administrar manualmente el escalamiento horizontal. Por ejemplo, con los grupos de instancias administrados (MIG) de Compute Engine, puedes agregar o quitar VMs para escalar tu aplicación de forma horizontal. Para las aplicaciones alojadas en contenedores, Cloud Run es una plataforma sin servidores que puede escalar automáticamente tus contenedores sin estado según el tráfico entrante.
Promueve el diseño modular
Los componentes modulares y las interfaces claras te ayudan a escalar componentes individuales según sea necesario, en lugar de escalar toda la aplicación. Para obtener más información, consulta Fomenta el diseño modular en el pilar de optimización del rendimiento.
Implementa un diseño sin estado
Diseña aplicaciones sin estado, es decir, sin datos almacenados de forma local. Esto te permite agregar o quitar instancias sin preocuparte por la coherencia de los datos.