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.