Microservicios, desarrollos de aplicaciones más ágiles

Microservicios, desarrollos de aplicaciones más ágiles

¿Qué son los microservicios?

La forma clásica de desarrollar una aplicación es monolítica, es decir, aunque internamente esté separada en módulos, la aplicación final es un grupo de componentes y servicios relacionados entre ellos y encapsulados en un único paquete.

Los microservicios cambian esta idea monolítica. Consiste en dividir la aplicación en un conjunto de servicios más pequeños conectados entre ellos pero alojados de forma separada en los servidores. Cada microservicio es una pequeña aplicación con su propia arquitectura y lógica de negocio.

Por ejemplo, para crear la aplicación de un comercio con varias tiendas lo primero que deberíamos hacer es identificar las principales partes del negocio para crear los microservicios correspondientes: gestión de tiendas, gestión de empleados, gestión de productos, ventas, etc. 

 

¿Por qué son importantes?

Utilizar microservicios facilita que nuestra empresa reaccione más rápido a las nuevas demandas que nos surjan. 

Cuando tenemos una gran aplicación monolítica puede llegar a ser complicado aplicar nuevos cambios. 

Con microservicios podemos realizar cambios más ágiles y veloces, afectando a su vez a menos partes de todo el sistema.

Además, permiten a nuestra empresa poder innovar de forma más sencilla, ya que podríamos crear un novedoso servicio para probar nuevas ideas de negocio, sin afectar al resto de microservicios.

 

Beneficios:

  • En caso de error en un servicio, es más probable que otros servicios de la aplicación puedan seguir funcionando.
  • Cuando se soluciona un error en un servicio, no es necesario volver a modificar los demás servicios.
  • A la hora de implementar la aplicación facilita el poder dividir los desarrolladores en diferentes equipos de trabajo.
  • Es posible tener servicios implementados con diferentes tecnologías, con lo cual podremos utilizar la más adecuada en cada caso.

En función de este último punto consideró que la Tecnología .NET Core es una opción muy buena para implementar nuestros microservicios.

 

Microservicios con .NET Core:

Los beneficios de utilizar .NET Core en nuestros desarrollos son múltiples, por ejemplo, es multiplataforma y de código abierto, pero lo más interesante en este caso son los referentes a la mejora que aporta en las máquinas en las que alojaremos nuestros microservicios

Debido a su naturaleza modular es uno de lo más indicados para implementar y utilizar sistemas altamente escalables y con necesidades de alto rendimiento

Gracias a su flexibilidad permite que la aplicación que estamos creando utilice una gran cantidad de microservicios y que con su alto rendimiento ofrezcamos la mejor experiencia de usuario posible.

Microservicios, .net Core, Docker y Kubernetes

Además, .NET Core tiene soporte para contenedores Docker, Kubernetes y otras tecnologías parecidas que son herramientas que facilitan la creación, implementación y ejecución de aplicaciones utilizando un enfoque de contenedores. Estos contenedores son ligeros y tardan menos tiempo en arrancar que los servidores tradicionales. También aumentan el rendimiento y ofrecen una gestión adecuada de los recursos  disponibles de las máquinas que los alojan. 

Building microservices on Azure

https://docs.microsoft.com/es-es/azure/architecture/microservices

 

Desventajas:

Como cualquier tipo de Tecnología, utilizar una arquitectura de microservicios también tiene inconvenientes que son importantes de analizar:

  • La comunicación entre servicios es compleja, se deben implementar y mantener con cuidado las solicitudes que viajan entre cada servicio.
  • A nivel de seguridad es más difícil de proteger, ya que tenemos una gran cantidad de microservicios interconectados.
  • Debido a su complejidad requieren personal que sepa administrar y mantener los diferentes servicios que tengamos en el servidor.
  • A la hora de actualizar con mejoras un servicio, puede llegar a ser complejo mantener la compatibilidad con los servicios que sean dependientes de este.

 

Conclusión:

Desde Trentia por experiencia sabemos que trabajar con micro servicios facilita la escalabilidad, implementación, gestión y mantenimiento de las aplicaciones, además de poder hacer cambios de manera más ágil y como consecuencia ser más productivos.

Las arquitecturas de Microservicios han cambiado la manera en que se concibe el software para bien.

Javier Martínez
Javier Martínez
IT Consultant