Para poder explicar cuales son los beneficios y responsabilidades de los microservicios es necesario en las características claves de estos, vamos a ello!.

El negocio va primero, como en todo proyecto lo importante es cumplir con los objetivos de negocio, ya que es a partir de ellos que se inician los desarrollos, una vez realizado el análisis y la identificación de los microservicios, es necesario que cada microservicio contenga un objetivo de negocio, mientras mas pequeño mejor ya que si «hace algo que lo haga bien» se logra si el contexto esta delimitado y esta finamente granulado.

El tamaño de un microservicio no se puede medir en lineas de código, o en el numero de elementos del dominio que involucra, ya que el objetivo es que cada microservicio cumpla al menos un objetivo de negocio, para que sea útil.

Autonomía de los microservicios, Los microservicios deben de ser desarrollados, probados, desplegados y escalados de forma independiente, con esto cada vez que necesitemos realizar una modificación no tendremos porque preocuparnos que nuestros cambios afecten a otros microservicios.

No tenemos ESB central, tenemos los servicios terminales inteligentes y las tuberías tontas, con esto seguimos en la misma linea que la logia de negocio reside en los microservicios, y la comunicación entre ellas es como una tubería tonta.

Datos no centralizados, este es uno de los puntos personalmente que es mas dificil de aceptar e implementar en los desarrollos en México, es una especie de: Queremos microservicios pero nuestros datos son centrales. Si bien es cierto esto solo me ha pasado con empresas grandes y gobierno.

Para mi es importante explicarte la necesidad de separar los datos, y mostrarte los beneficios como que cada microservicio decide donde almacenar la información de acuerdo a su negocio y no depende de la implementación global del proyecto.

Es por ello que este tema lo tratare exhaustivamente en otro post, pero ahora es importante que pienses que para implementar correctamente los microservicios es necesario separar los datos de forma independiente en cada microservicio.

Tolerancia a fallos, Cuando logramos la independencia de los microservicios y sus datos podemos de forma fácil crear mecanismos de tolerancia a fallos. Tengamos en cuenta lo siguiente: tenemos una colección de microservicios que se comunican entre ellos, si uno falla es probable que desate un error en cadena, es por ello que necesitamos que cuando uno falle responda de una forma que permita continuar funcionando en lo que puede contestar el microservicio.

Monitorear todo, en nuestra arquitectura de microservicios un punto clave es poder monitorear no solo los microservicios y predecir posibles errores y tomar medidas para que estos no pasen (como escalar automaticamente los nodos del microservicio), sino tambien monitorear el desarrollo, los despliegues y las pruebas.

Gobierno de microservicios, Aunque el gobierno de los microservicios es descentralizado es necesario implementar una forma de tener aspectos claves que funcionaran en todos los microservicios como las arquitecturas permitidas, los building blocks de arquitectura, entre otros como: los puntos centrales como el API Manager, versionamiento, etc.

Beneficios de los Microservcios

Sin duda los beneficios que describo a continuación son las principales razones por las que este tipo de arquitectura es ahora la mas popular:

  • Desarrollo Rápido y Agil de las funcionalidades de negocio, esto se logra por la autonomía de los miscroservicios, con esto nos enfocamos en cada uno de ellos en su negocio y no en el global.
  • Reemplazables, aunque esto se logra por la autonomía, es necesario hacerlo nota ya que si tu contexto es delimitado en los microservicios estos se vuelve reemplazables.
  • Escalabilidad, al tener de forma independiente cada uno de los servicios, podemos crecerlos ante una repentina aumento de peticiones, y aumentamos solamente el servicio en cuestión.
  • Control de Fallos, con la autonomía podemos implemetar mecanismos que nos permitan identificar un error ya que esto se encuentra todo separado, otro punto importante es que con esta data podemos incluso predecir cual microservicio fallará y tomar medidas que lo eviten.

Sin duda me hacen falta describir tambien algunos compromisos de la arquitectura como: La comunicación de lo microservicios, El gobierno de microservicios, Manejo de transacciones entre microservicios. Pero esto lo dejaremos en otra entrada, para que sea mas facil y no cargarnos de teoria.

Te pido que visites mis redes sociales y mi canal de youtube.

https://www.youtube.com/channel/UCiT79x_EgTQ-mcynU5SRxbg

https://www.instagram.com/abrahamstalin/

Última modificación: 10 marzo, 2021

Autor