DevOps

Las 7 características de estructuras monolíticas y los microservicios

Conoce la características principales de servicios de las arquitecturas monolíticas y de microservicios.

Publicado el 13 de Noviembre de 2018
Compartir

Tipos de llamadas

En monolíticos todas las llamadas son locales, toda la aplicación está corriendo en la misma máquina y en el mismo ejecutable o proceso, de forma que todas las llamadas son llamadas a métodos a memoria.

En el caso de los microservicios, están distribuidos en cluster, entre varias máquinas, por tanto las llamadas son remotas, y la red es la que se encarga de hacer estas llamadas.

Funcionamiento de servicios

En monolíticos todas las partes están funcionando siempre, ya que es un proceso que tiene todos sus módulos dentro, por lo que o toda la aplicación funciona o la aplicación no funciona.

Mientras que en el caso de microservicios, al ser una arquitectura distribuida, los servicios están distribuidos en varias máquinas. Por este motivo, una máquina puede dejar de funcionar y, por tanto, los servicios que está gestionando dejarán de funcionar, pero otras partes de la aplicación, otros servicios, pueden seguir funcionando.

Para estos casos, en microservicios tenemos service discovery y circuit breakers patterns para dar solución a estos problemas.

Depurar

Como en una arquitectura monolítica todos los servicios están corriendo en el mismo proceso, es muy fácil de debugar.

En el caso de los microservicios es posible hacerlo, pero realmente se necesitan herramientas externas y no es tan fácil de hacer.

Testear

Las arquitecturas monolíticas son muy fáciles de testear, ya que toda la aplicación está corriendo y por lo tanto simplemente tenemos que arrancarla y comenzar a hacer los tests, ya no solo tests unitarios, sino tests de integración o end-to-end tests.

Mientras que en microservicios el concepto de end-to-end tests se diluye un poco, y aparecen técnicas como CDC (Consumer Driven Contract) o service virtualization, para poder validar y testear que nuestros microservicios se comportan como deberían.

Refactorización

Es muy fácil refactorizar un monolítico, ya que simplemente con nuestro IDE podemos cambiar el nombre de un método o de un parámetro, lo refactorizamos y el propio IDE lo modifica en toda la aplicación.

Mientras que en el caso de microservicios, como los servicios están distribuidos y se comunican por la red, si por ejemplo cambiamos el campo que devuelve un servicio, y le cambiamos el nombre de name a full_name, el servicio que consume esta información seguramente deje de funcionar, porque no encontrará el campo antiguo name sino que recibiría el nuevo campo full_name.

Es decir, tiene que haber una comunicación entre desarrolladores, ya sea de forma automática o en persona, ya que en caso de no haberla y surja un problema, no lo detectaremos hasta que no se despliegue todo en producción.

Escalado

En un monolítico se escala todo como una unidad, es decir, podemos replicar todo nuestro monolito, todas las partes.

En el caso de microservicios podemos escalar de forma individual, es decir, un servicio puede tener más instancias de forma individual que otra parte del servicio de los que componen nuestra aplicación.

Soporte transacciones

El soporte de transacciones en monolítico es una transacción a todos los módulos, podemos hacer un begin transaction, hacer muchas operaciones y al final hacer un commit.

En microservicios tenemos una consistencia eventual, ya que las transacciones, generalmente, son a nivel de servicio, pero nuestra aplicación son muchos servicios.

Si todo esto te interesa y quieres profundizar mucho más, puedes hacer el curso de arquitecturas monóliticas basadas en microservicioscon el que aprenderás de principio a fin cómo desarrollar una arquitectura monolítica compuesta de microservicios.
 
curso-microservicios-arquitectura-monolítica

Recuerda que puedes comenzar este curso con tu suscripción de OpenWebinars. Si todavía no estás suscrito, aprovecha para hacerlo ahora.


Compartir este post

También te puede interesar...

Arquitecturas monolíticas y microservicios

Curso de arquitecturas monolíticas basadas en microservicios

4 horas y 1 minuto · Curso

Aprende a mezclar técnicas de Microservicios en servicios con arquitecturas monolíticas.

  • Gestión de la configuración
Tecnología

Diferencia entre arquitectura monolítica y de microservicios

12 Noviembre 2018 Alex Soto Bueno
Artículos
Ver todos