Arquitectura de microservicio: escalado

El escalado es un proceso de descomposición de un software en diferentes unidades. La escala también se define en términos de escalabilidad. La escalabilidad es el potencial para implementar funciones más avanzadas de la aplicación. Ayuda a mejorar la seguridad, la durabilidad y el mantenimiento de la aplicación. Tenemos tres tipos de procedimientos de escalado que se siguen en las industrias. A continuación se muestran las diferentes metodologías de escalado junto con los correspondientes ejemplos de la vida real.

Escala del eje X

La escala del eje X también se denomina escala horizontal. En este procedimiento, toda la aplicación se subdivide en diferentes partes horizontales. Normalmente, cualquier aplicación de servidor web puede tener este tipo de escala. Considere una arquitectura MVC normal que sigue el escalado horizontal como se muestra en la siguiente figura.

Como ejemplo, podemos considerar cualquier aplicación de servlet JSP. En esta aplicación, el controlador controla cada solicitud y generará una vista comunicándose con el modelo cuando sea necesario. Normalmente, las aplicaciones monolíticas siguen este método de escala. El escalado del eje X es de naturaleza muy básica y consume menos tiempo. En esta metodología, se escalará un software en función de la tarea diferente de la que sea responsable la unidad. Por ejemplo, el controlador es responsable de controlar la solicitud entrante y saliente, la vista es responsable de representar la funcionalidad comercial a los usuarios en el navegador, mientras que el modelo es responsable de almacenar nuestros datos y funciona como la base de datos.

Escala del eje Y

La escala del eje Y también se denomina escala vertical que incluye cualquier escala de nivel de recursos. Cualquier sistema DBaaS o Hadoop puede considerarse escalado en el eje Y. En este tipo de escalado, la solicitud de los usuarios se redirige y restringe implementando alguna lógica.

Consideremos Facebook como ejemplo. Facebook necesita manejar 1,79 millones de usuarios por segundo; por lo tanto, controlar el tráfico es una gran responsabilidad de los ingenieros de redes de Facebook. Para superar cualquier peligro, siguen la escala del eje Y, que incluye ejecutar varios servidores con la misma aplicación al mismo tiempo. Ahora, para controlar este enorme nivel de tráfico, Facebook redirige todo el tráfico de una región a un servidor específico, como se muestra en la imagen. Esta transferencia de tráfico basada en la región se denomina equilibrio de carga en lenguaje arquitectónico.

Este método de dividir los recursos en pequeñas unidades de negocio independientes se conoce como escalamiento del eje Y.

Escala del eje Z

La escala de los ejes X e Y es mucho más fácil de entender. Sin embargo, una aplicación también se puede escalar a nivel empresarial, lo que se denomina escalado del eje Z. A continuación, se muestra un ejemplo de cómo escalar una aplicación de servicio de taxi en las diferentes verticales de unidades comerciales.

Ventajas del escalado

  • Cost - El escalado adecuado de un software reducirá el costo de mantenimiento.

  • Performance - Debido al acoplamiento flojo, el rendimiento de un software correctamente escalado es siempre mejor que el de un software no escalado.

  • Load distribution - Usando diferentes tecnologías, podemos mantener fácilmente la carga de nuestro servidor.

  • Reuse - La escalabilidad de un software también aumenta la usabilidad del software.