Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

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

Alex Soto
  • Escrito por Alex Soto el 13 de Noviembre de 2018
  • 2 min de lectura | DevOps
Las 7 características principales de estructuras monolíticas y de microservicios
El reproductor de video será cargado en breves instantes.

Conoce las diferencias de características entre servicios monolíticos y microservicios.

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.

Relacionado

Te dejamos una selección de cursos, carreras y artículos

Microservicios: Beneficios y funcionamiento

Microservicios: Beneficios y funcionamiento

Redes y Sistemas

21 de Abril de 2016

Los beneficios que da usar Microservicios y sus funcionamientos. Conoce a fondo qué son y los beneficios que nos da la implementación de Microservicios.

Estas son algunas de las empresas que ya confían en OpenWebinars

Profesores y profesionales

Nuestros docentes son profesionales que trabajan día a día en la materia que imparten

Conviértete en profesor de OpenWebinars