Arquitectura de Microservicios: resolviendo funcionalidades independientes

octubre 02, 2019

Por Rubén Gil

Actualmente, la gran cantidad de integraciones que debemos realizar en nuestros sistemas de información con sistemas externos y propios, hacen que estos sistemas interactúen entre sí mientras deben adaptarse continuamente a la aparición de nuevos actores, a los evolutivos de los sistemas con los que se integran y los suyos propios. 

Por si esto no fuera suficiente, además, se deben hacer frente a una serie de desafíos

  • Cualquier sistema debe estar preparado para que sea accesible por el máximo posible de usuarios potenciales
  • Las aplicaciones tienen que estar preparadas para su integración con otros sistemas, a menudo por cumplimiento de normativas y tratamiento de datos personales por lo que la información se debe exponer mediante un estándar y de manera controlada. 
  • El volumen de información con el que se trabaja es máximo y no para de incrementarse. En contraposición, la experiencia de usuario y la interoperatividad con otros sistemas obliga a que la velocidad no sólo se mantenga, sino que se deba mejorar. 
  • Debido a la diversificación de los sistemas de información, es necesario conocer en tiempo real cuál es el estado de toda la plataforma, permitiendo una actuación proactiva a los incidentes que puedan ocurrir. 
  • La disponibilidad es una necesidad. La pérdida de servicio da lugar a pérdida de negocio y en una mayor magnitud, mala publicidad y descontento por parte de un usuario bien acostumbrado y poco comprensivo. 
  • Los costes deben ser acordes a los beneficios, haciendo que las unidades de proceso y la memoria sean aprovechadas estrictamente en las funcionalidades que son necesarias, haciendo el negocio sostenible. 
  • La interconexión de sistemas nos obliga a ser ágiles a la hora del cambio, no sólo por las modificaciones propias o de sistemas de terceros, sino ante las posibles modificaciones de normativas de seguridad, mantenimientos y actualizaciones de obligatorio cumplimiento. 

 
 

Implementando arquitecturas de microservicios podemos acotar la funcionalidad en pequeños módulos independientes (microservicios) limitando así su dependencia y facilitando la integración de toda la arquitectura. 

Un microservicio es un servicio que cubre una y solo una funcionalidad muy concreta. Cada microservicio se ejecuta en un proceso y puede ser desplegado de forma independiente a los demás. 

 
 

El uso de microservicios nos permite: 

  • Desarrollar servicios pequeños aplicando el principio de responsabilidad única. 
  • Tener unidades de despliegue independientes. 
  • Reducir el tiempo de desarrollo. 
  • Agilizar los hot fixes
  • Trabajar con arquitecturas con componentes de distinta tecnología. 
  • Facilitar escalado horizontal. 
  • Facilitar el trabajo en equipos independientes. 

 
 

Todo ello resulta en una mejora de nuestra agilidad operativa: la habilidad de adaptarse en tiempo real a las necesidades operativas de negocio. 

Utilizamos cookies propias y de terceros para ofrecerte una mejor experiencia y servicio, dentro de nuestra Web de acuerdo a tus hábitos de navegación. Si continúas navegando, consideramos que aceptas expresamente su utilización. Puedes obtener más información de cómo gestionar y configurar las cookies en nuestra Política de Cookies.