Este principio del pilar de confiabilidad del Google Cloud Framework de arquitectura proporciona recomendaciones para ayudarte a usar la escalabilidad horizontal. Si usas la escalabilidad horizontal, puedes ayudar a garantizar que tus cargas de trabajo enGoogle Cloud puedan escalar de manera eficiente y mantener el rendimiento.
Este principio es relevante para el alcance del área de enfoque de la confiabilidad.
Descripción general de los principios
Cambia la arquitectura de tu sistema a 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.
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 anfitrión 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 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 generar 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 de alta disponibilidad a través de recursos redundantes.
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 mayores cantidades de potencia 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 VM única a una arquitectura horizontal de varias máquinas, debes planificar con cuidado y usar las herramientas adecuadas. Para ayudarte a lograr la escala horizontal, ten en cuenta las recomendaciones de las siguientes sub secciones.
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 horizontalmente. En el caso de las aplicaciones 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 Promociona 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, que no tengan datos almacenados de forma local. Esto te permite agregar o quitar instancias sin preocuparte por la coherencia de los datos.