microservicios-720x320

La arquitectura de software utilizada cada vez más para el desarrollo de aplicaciones, actualmente el considerar el uso de esta arquitectura o no, se torna en una decisión crucial, ya que esto se notará en que tan cómodo se encuentra el usuario final en tu aplicación.

 

¿Qué es y cuál es la diferencia entre la arquitectura tradicional?

microervicios

La arquitectura de microservicios es una nueva forma de ver a la aplicación y también porque no la forma de trabajo con tu equipo.

Esta nueva arquitectura divide a la aplicación en pequeños módulos los cuales deben de ser atómicos, y hacer esta división no es tan sencilla como pareciera, ya que está siendo considerada como un arte. por qué? Dado que ahora debes de considerar el tráfico que puede existir en cada uno de los módulos, la forma de comunicación entre ellos, el trato de errores que podrían existir, ya que al utilizar esta estructura no quiere decir que estas excepto de errores, caso contrario debes de tratarlo con mayor detalle.

Para entenderlo mejor podemos considerar las siguientes diferencias resaltantes.

 

Arquitectura Tradicional Arquitectura en Microservicios
Desarrollada en un solo lenguaje de programación. Puede ser desarrollada en varios lenguajes de programación.
Al crecer la aplicación es necesario de más recursos para todos los módulos. Solo crecerá el módulo que sea necesario.
Al crecer la aplicación crece la complejidad. Los módulos son simples y más fáciles de entender.
Al hacer un pequeño cambio, debes de re desplegar toda la aplicación, dejándolo sin funcionamiento total. Solo haces el cambio al módulo necesario, y la aplicación no deja de funcionar es su totalidad.
El código es utilizado solo por la aplicación. El módulo puede ser reutilizado fácilmente para otras aplicaciones.
Agregar a un nuevo programador depende de la complejidad y tamaño del programa. Ya que los módulos son más simples, el agregar a un nuevo programador es más simple.

 

Muy bien pero no todas son ventajas, entre los retos que existen están:Changing the word impossible to possible.

  • Si es complicado encontrar a un desarrollador para un determinado lenguaje imagínate el encontrar a un programador que sepa diversos lenguajes en los que están escritos tus módulos.
  • La organización para el despliegue de los módulos es complicada, dependiendo de cómo los módulos son llamados.
  • La forma de tratar los fallos debe de ser atendida con más detalle de lo que fuese en una arquitectura tradicional.

Viendo estas ventajas y retos ¿te animas a crear una aplicación o migrar una ya existente a esta nueva arquitectura?

Bueno, por qué no verdad, si grandes empresas lo hicieron y tienen muy buenos resultados como Netflix, Amazon y otros.

¿Cuándo implementarlo?

Al saber que la aplicación crecerá y podrá ser utilizada en varios dispositivos.

¿Existe documentación?

Claro, esta estructura está siendo considerada desde el 2014 y es utilizada cada vez más.

¿Cómo implementarlo?

Debes de considerar que no estás solo, ya existe actualmente mucha documentación sobre esta arquitectura, y variados frameworks (spring boot, gRPC, Hapi, entre otros) que te servirán para empezar a trabajar en esta estructura, y no lo olvides, no es necesario trabajar en solo un lenguaje de programación, ni en una sola base de datos.1bf

Además, ya existen herramientas que te ayudan en este proceso como Docker, entre otros.

Es un reto para cada equipo, pero a lo largo es una buena decisión el utilizar esta arquitectura…