Microservicios, divide y vencerás en el desarrollo ágil de aplicaciones

Los Microservicios, o lo que es lo mismo trabajar con muchas pequeñas aplicaciones interconectadas, conforman un estilo de arquitectura y una forma de trabajo que aporta diversas ventajas de cara a la mejora de procesos y al desarrollo ágil de las aplicaciones, una de las tendencias más demandadas en el desarrollo IT hoy en día y muy relacionada también con las DevOps.

A grandes rasgos, las aplicaciones basadas en Microservicios resuelven las necesidades IT a través de pequeñas aplicaciones conectadas entre sí, en vez de con la tradicional y rígida arquitectura monolítica.  En este artículo, resumimos los motivos por los que  proyectos y profesionales están decantándose cada vez más por este tipo de arquitectura, capaz de adaptarse mejor a todo tipo de situaciones.

Martin Fowler, un reputado programador escritor de varios de los libros más representativos de desarrollo, fue el primero en expresar este concepto de Microservicios, aunque muchas personas ya venían utilizando esta forma de trabajar sin darle un nombre en concreto. Fowler define los Microservicios como un  estilo de arquitectura  basado en crear varios pequeños servicios ligeros que colaborando entre si forman una aplicación completa, donde generalmente la comunicación entre ellos se realiza usando el protocolo HTTP.

Los Microservicios son una alternativa ágil para el desarrollo, muy pensada para el momento en el que nos encontramos. En la actualidad, es muy habitual que  las necesidades de los proyectos sean cambiantes, con cierta incertidumbre respecto al destino final que un proyecto debe tomar, por lo que generalmente tenemos que hacer un esfuerzo adicional de adaptación a esas necesidades cambiante.

También sucede que  las tecnologías evolucionan rápidamente (con nuevos lenguajes, frameworks, etc.) que resuelven mejor los problemas. A la vez, se buscan desarrollos ligeros, baratos y que tengan una etapa de desarrollo corta, que puedan probarse su viabilidad sobre la marcha.

El problema de las estructuras monolíticas…

Anteriormente, las aplicaciones eran proyectos grandes, con un único núcleo capaz de resolver todos los requerimientos. Estaban desarrolladas generalmente con un único lenguaje y con gran acoplamiento entre módulos. El problema de trabajar así es su rigidez. Si queremos cambiar una pieza muchas veces nos afecta a toda una serie de módulos. Además, es poco admisible la mezcla de varias tecnologías o el cambio en general.

… Así que pasemos a los Microservicios

En lugar de hacer una única gran aplicación con una visión monolítica, la tendencia actual es desarrollar un conjunto de pequeñas aplicaciones capaces de trabajar entre ellas para resolver el fin común. Trabajando con Microservicios, los equipos de desarrollo pueden elegir la tecnología, lenguaje, framework que mejor se adapta a aquel problema que tengan que resolver. O bien los que mejor se adapten a sus costumbres de desarrollo. El caso es que cada pequeño servicio puede ser independiente y, por ello, es posible que unos se desarrollen con unas herramientas y otros con otras perfectamente distintas.

Pero no solo eso, también nos beneficiamos de una mayor escalabilidad, una virtud deseable hoy en cualquier tipo de problemas y un mayor desacoplamiento entre módulos, que al final también facilita el mantenimiento. Con los Microservicios, al ser más independientes, podemos desmontar, cambiar y volver a montar la parte que necesitemos, sin que esto afecte a otros servicios. Si una parte del proyecto se queda pequeña no necesitamos replicar toda la aplicación, sino simplemente aquel servicio que se encuentra saturado.

En general, los Microservicios constituyen una apuesta de grandes beneficios que merece la pena estudiar con calma, muy acorde con el desarrollo con enfoques ágiles, tan de actualidad (y necesario) hoy en día.

Compartir

Share on FacebookTweet about this on TwitterShare on LinkedInEmail this to someoneShare on Google+
0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *