Restricciones de rendimiento de una aplicación monolítica

Completado

Hay muchas razones por las que podría optar por cambiar la arquitectura de un sistema. La agilidad operativa, el costo, la escalabilidad y el rendimiento son solo algunos de los factores relevantes a la hora de determinar la arquitectura de un sistema. En el ejemplo, se examina con detalle cómo el rendimiento se convierte en un factor para el sistema de entregas mediante drones.

A medida que la empresa de entregas mediante drones de Fabrikam crece, aumenta la carga del sistema. La carga supone un esfuerzo para la arquitectura actual. En Fabrikam quieren proporcionar una mayor flexibilidad para escalar la aplicación que no está disponible en la arquitectura monolítica actual. La mejora de la escalabilidad de la aplicación es uno de los impulsores que Fabrikam busca mediante el cambio de la aplicación a una arquitectura de microservicios.

Escalado de un monolito frente a microservicios

Una de las principales ventajas de una arquitectura de microservicios es el aumento de las funciones de escalado. Como los servicios están separados, es más fácil escalarlos de forma individual a medida que aumenta la carga entre ellos.

Esta diferencia de funciones se puede apreciar en el sistema de entregas mediante drones. Con una arquitectura monolítica, todos los servicios se encuentran en una única instancia de la aplicación. Exponen una interfaz API a los clientes para enviar y administrar las solicitudes de entrega. A medida que aumentan las solicitudes de los clientes, aumenta la carga del sistema. Esto requiere que se asignen más recursos al sistema para evitar un impacto negativo en la experiencia del usuario.

En una arquitectura monolítica, el escalado individual de este servicio también requiere el escalado de los recursos para los demás servicios, ya que están incluidos en cada instancia de la aplicación. Esta disposición no resulta eficaz, ya que la carga para los demás servicios podría ser mínima y no necesitar el uso de recursos adicionales.

En una arquitectura de microservicios, como cada servicio es independiente, se puede escalar la API de forma independiente a los demás servicios. Esta disposición aumenta la eficacia, ya que no es necesario consumir los recursos de los servicios innecesarios.

Desafíos con la arquitectura monolítica de Drone Delivery

El servicio de paquetería se ha identificado como una parte crítica de la empresa y originalmente formaba parte de la estructura monolítica. La dependencia de los clientes de este servicio está aumentando drásticamente y el rendimiento se ve afectado de forma negativa a medida que aumenta la carga. Para solucionar esta situación, Fabrikam ha dedicado un equipo de desarrollo con control total sobre esta parte de la empresa. El equipo planea desarrollar e iterar en este servicio, y serán los únicos responsables de todos los aspectos del servicio de paquetería.

Como el servicio de paquetería se encuentra en la aplicación monolítica, el equipo no puede funcionar con autonomía. Tienen que basarse en datos compartidos y estructuras de datos. Tampoco pueden iterar tan rápido como necesitan. Junto con los problemas de rendimiento y escalabilidad, este servicio se ha identificado como el principal candidato para un microservicio.

Se analizará con más detalle cómo Fabrikam puede analizar y descomponer su aplicación para aprovechar las ventajas de una arquitectura de microservicios.