Orquestación vs Coreografía en microservicios


La arquitectura de microservicios puede ser considerada como un pequeño conjunto de servicios en el que cada uno tiene vida y funciones propias. Estos servicios, pueden funcionar de manera aislada sin ningún problema, pero en ocasiones necesitan interaccionar con el mundo externo. Es en este último punto es cuándo nos preguntamos Orquestación vs Coreografía en Microservicios?

Orquestación vs Coreografía
Orquestación vs Coreografía

Vamos a comenzar definiendo cada una:

Arquitectura de Orquestación en Microservicios

En las orquestas de músicos, el Director de la orquesta guía a todos los músicos para obtener un objetivo común; si trasladamos este concepto a una arquitectura de microservicios, tendríamos un controlador centra que se encargaría de gestionar todas las interacciones y transmitirla.

Orquesta
Orquesta

Podríamos decir que es un sistema centralizado, yo te llamo y espero tu respuesta, para a su vez poder transmitirla.

Ventajas de una Arquitectura de Orquestación en Microservicios

  • Más sencillo y simple de mantener.
  • Proporciona una buena manera de controlar todo el flujo de la aplicación, en procesos síncronos.

Desventajas de una Arquitectura de Orquestación en Microservicios.

  • Se crean dependencias de un servicio a otro, es decir, al tener que esperar la respuesta del servicio A, podemos provocar cuellos de botella.
  • En el caso en el que tengamos un orquestador único para todas las peticiones, tenemos un punto de fallo. Si este orquestador se cae, se vendría abajo todo el sistema.
  • Al tener un sistema síncrono para todas las peticiones, si un servicio A, quiere realizar una petición que pasa a través de varios servicios, el tiempo de respuesta, será la suma de todos los servicios por lo que pasa.
  • Por lo general este en microservicios, se piensa en realizar servicios que estén desacoplados y sean independientes, por lo general con este tipo de arquitectura, estamos haciendo un fuerte acoplamiento entre servicios.

Arquitectura de Coreografía en Microservicios

Por otro lado, tenemos una arquitectura de Coreografía, que podríamos imginarla o compararla con una danza, en la que cada bailarín ejecuta sus propios movimientos de manera independiente.

Si este concepto lo trasladamos a los micorservicios, es justo lo que intentamos conseguir, es decir, aislar y evitar dependencias.

En este tipo de arquitectura, lo que se busca es que todos los servicios implementados, puedan trabajar de una manera independiente, que es uno de los problemas que existe en la arquitectura de orquestación.

Por lo general, cada servicio no requiere ninguna instrucción para que funcione. Se busca un sistema descentralizado, que en muchas ocasiones, pueda funcionar por eventos, y los servicios estarán subscritos a esos eventos. Este tipo de aproximación es conocido también como arquitectura reactiva, la cual nos permite una arquitectura reactiva.

Ventajas de una arquitectura de Coreografía en Microservicios

  • Por lo general el desarrollo en este tipo de arquitectura es más ágil, y nos permite un mayor desacople, lo cual, en el caso en el que se tenga que eliminar un servicio o se caiga, no perjudicará al sistema entero.
  • El control del sistema es distribuido, por lo que no hay un único punto de fallo.
  • En modelos donde se fomenta el agilismo funciona bastante bien, en el cual los equipos se pueden encargar de diferentes microservicios.
  • Permite la utilización de patrones de diseño orientados a eventos como el Event Sourcing, o el patrón Command Query Responsability Segregation (CQRS).

Conclusión

En esta entrada sobre orquestación vs coreografía en Microservicios, hemos comentado tanto ventajas y desventajas que pueden aparecer cuando se decide utilizar una de estas dos arquitecturas. Ambas arquitecturas, son igual de válidas, lo único que la elección de una u otra dependerá del escenario.


1 pensamiento sobre “Orquestación vs Coreografía en microservicios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *