Este principio del pilar de confiabilidad del Google Cloud framework de Well-Architected proporciona recomendaciones para ayudarte a usar la escalabilidad horizontal. Si usas la escalabilidad horizontal, puedes garantizar que tus cargas de trabajo enGoogle Cloud puedan escalar de manera eficiente y mantener el rendimiento.
Este principio es pertinente para el área de enfoque del alcance de la confiabilidad.
Descripción general del principio
Rediseña tu sistema para que tenga una arquitectura horizontal. Para adaptarse al crecimiento del tráfico o 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.
Un caso de uso común para el escalamiento vertical es usar una base de datos 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 debas repetir este proceso varias veces. El problema es que existen límites estrictos sobre cuánto puede crecer una base de datos. Los tamaños de 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 provocar respuestas de error o una interrupción en todo el sistema que afecte a todos los usuarios. Evita los puntos únicos de falla, como se describe en Compila 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 capacidad de procesamiento y memoria.
En cambio, 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 una sola VM 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 ajuste de escala 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. En el caso de las aplicaciones alojadas en contenedores, Cloud Run es una plataforma sin servidores que puede ajustar automáticamente la escala de 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 los componentes individuales según sea necesario, en lugar de escalar toda la aplicación. Para obtener más información, consulta Promueve 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.