Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

Microservicios: Beneficios y funcionamiento

Esaú A.
  • Escrito por Esaú A. el 21 de Abril de 2016
  • 4 min de lectura | Sistemas
Microservicios: Beneficios y funcionamiento

Aunque la arquitectura de microservicios es relativamente nueva, ya vimos en una entrada anterior cómo grandes empresas han conseguido a través del software multiservicio hacer evolucionar sus plataformas hacia un servicio mucho más estable y que da cabida a cualquier incremento en el número de usuarios.

Recordemos sin embargo algunos de los principios o características de las aplicaciones basadas en microservicios:

  • La aplicación será compuesta por la conjunción de varios servicios independientes que compondrán un software totalmente funcional.

  • Cada servicio o microservicio estará escrito en el lenguaje de programación más apto para su desempeño.

  • Para la obtención de datos desde la aplicación, se hará uso del gestor de información más eficiente en cada caso.

  • La comunicación entre microservicios se realizará a través de métodos como REST o similares, ahorrando así el desarrollo de tuberías entre los diferentes módulos.

  • Una vez confeccionada la aplicación podrán añadirse, modificarse o eliminarse módulos según hacia donde queramos orientar el proyecto, pudiendo así tener varias versiones de una app con un único proceso de desarrollo.

¿Qué beneficios nos aporta la Arquitectura de Microservicios?

Este método de arquitectura de software presenta una serie de beneficios a los desarrolladores como por ejemplo el que cada módulo se ejecute en y con su propio proceso, lo cual hace más fácil la localización de dicho bloque dentro de un sistema plagado de procesos en funcionamiento.

Otra ventaja es poder implementar módulos redundantes , programando que ante la caída o fallo de uno de los módulos el tráfico se derive al servicio redundante y así no provocar la caída del servicio ni si quiera en parte.

La colaboración entre empresas de desarrollo puede darse también mediante esta arquitectura, cediendo el uso de determinados módulo y no teniendo que pasar una aplicación al completo sin controlar lo que esta otra compañía obtendrá más allá de lo estipulado. Mediante el “préstamo” de módulos para aplicaciones basadas en microservicios, el tiempo de desarrollo se reduce muchísimo para las empresas colaboradoras , el conocimiento puesto en común llega por ambas partes lo que hará que todos los equipos crezcan con aportaciones de sus colaboradores.

La implementación de modificaciones también es un punto a favor de este tipo de estructura de software, debido a que al contrario de las aplicaciones monolíticas donde un mínimo cambio requerirá del despliegue de una versión de la aplicación totalmente nuevo. Mientras que en estas estructuras de microservicios es monolíticas donde un mínimo cambio requerirá del despliegue de una versión de la aplicación totalmente nuevo. Mientras que en estas estructuras de microservicios podremos editar un módulo ofreciendo las características del resto de módulos al cliente sin que se produzca interrupción alguna en el resto de servicios.

Definiendo algunas diferencias

Si bien la idea de cómo trabaja una aplicación con arquitectura de microservicios puede ser similar al de una app que trabaja con una librería , existen fundamentales diferencias que hacen de esto una mera ilusión.

La diferencia principal la vemos al observar cómo se comunican y acceden los componentes del programa . Por ejemplo, en una aplicación monolítica la librería se importa al código dentro de la app. Esta librería se convierte entonces en parte de la solicitud de datos, por lo que las llamadas a una librería dentro de la aplicación y no fuera pasarán a ser funciones en memoria. El código es parte del mismo proceso, por lo que un fallo en la librería traería un fallo en la aplicación.

Mientras tanto, la arquitectura de microservicios se basa en que estos servicios se ejecutan de forma independiente como ya comentábamos, en su propio proceso. Y para hacer uso de este servicio, la aplicación requerirá de una llamada fuera de su proceso hasta llegar al módulo que se requiera.

En el caso de que este módulo falle, la aplicación verá que no está disponible, pero no tiene por qué bloquearse ni dejar de funcionar. Todo lo que tendrá que hacer la aplicación es buscar otra fuente hacia donde hacer la llamada o mostrar un fallo referenciando un módulo caído, pero la app en su conjunto deberá seguir funcionando como si tal cosa.

Consideraciones para Desarrolladores

Por norma general a la hora de desarrollar una aplicación monolítica, se suele repartir el trabajo dividiendo varios apartados de los que se encargarán diferentes personas o equipos de programadores (por ejemplo alguien se encarga de la interfaz, otro de la lógica del lado del servidor, la gestión de la base de datos…). Y los problemas llegan cuando un equipo necesita parte del código de otro, se necesita implementar una nueva función o casos similares, donde una aplicación se puede volver difícil de gestionar y su código difícil de comprender.

Con la arquitectura de microservicios y el funcionamiento modular estos problemas se reducen a su mínimo, únicamente encontrándose a la hora de conectar unos servicios con otros.

Conectándolo todo

Las “piezas” que unen los microservicios son las Application Programming Interfaces o API’s, que a diferencia de las librerías que cargan su código en la aplicación, gracias a las API’s l os microservicios funcionan como llamadas a procesos remotos , creando la aplicación una consulta a un microservicio que se ejecuta en otro proceso.

Como ya dijimos, las API’s REST son las más extendidas hoy día, al basarse en la tecnología HTTP, funcionar de forma similar y no necesitar protocolos específicos para su funcionamiento.

Cabe recalcar que una única llamada a un servicio front-end, puede conllevar la ejecución de varias llamadas a servicios back-end. Si por ejemplo un cliente solicita la información de un equipo informático al front-end, éste gestionará las solicitudes back-end de imágenes a un microservicio, el precio actualizado a otro servicio en contacto con el departamento de contabilidad y características de los componentes a un tercer microservicio que obtendrá de alguna base de datos la información más reciente.

Con estas nociones espero haber calado un poco más en vuestra curiosidad por este método de desarrollo de software, del cual tenéis un curso aquí en Openwebinars . Recordad suscribiros y seguirnos por las redes sociales. Un saludo!

Estas son algunas de las empresas que ya confían en OpenWebinars

Profesores y profesionales

Nuestros docentes son profesionales que trabajan día a día en la materia que imparten

Conviértete en profesor de OpenWebinars