Orquestación de microservicios, silos, personas y robots

  • Opinión

Miguel Valdés Faura, director general de Bonitasoft 1

Las arquitecturas de microservicios para aplicaciones de negocio generan cada vez más interés, y últimamente ha surgido el debate sobre si usar coreografía u orquestación para gestionarlas. En este artículo, abordaré las ventajas de la arquitectura de microservicios en relación con el desarrollo de aplicaciones empresariales y, sobre todo, trataré de explicar qué significa la orquestación y por qué creo que los motores BPM son un poderoso complemento a la flexibilidad que ofrece la arquitectura de microservicios.

La ventaja que ofrecen los microservicios, por encima de todo, es una gran flexibilidad y capacidad de implementación utilizando componentes basados ​​en la nube. Los microservicios son entidades desplegables autónomas que pueden interactuar entre sí directamente según sea necesario. Los problemas aparecen cuando se producen errores y hay muchas llamadas de servicio. En estos casos, es complicado identificar de dónde viene el problema.

Los pioneros de microservicios como Netflix se han encontrado ya con la limitación de la coreografía. Cuanto más complejo era el entramado de servicios añadidos por Netflix, más claro les quedaba que este modelo de coreografía les estaba limitando y vieron las ventajas y atractivos del sistema de orquestación. A partir de aquí, construyeron su plataforma de código abierto Conductor para orquestar sus microservicios.

Orquestación: para qué se construye un motor BPM

Al igual que Netflix ha desarrollado Conductor, otras empresas han desarrollado plataformas de orquestación como Cadence, Apache Airflow y Google Cloud Composer para gestionar las interacciones entre los microservicios. Pero como yo soy un tipo que se ha dedicado toda la vida a los procesos, no puedo evitar hacer la siguiente pregunta: ¿puede un motor BPM orquestar microservicios? Sé que la primera reacción a esto podría ser “espera, el BPM es para flujos grandes y complejos; nosotros estamos tratando de mantener la simplicidad con nuestro enfoque de microservicios”.

No hay ninguna regla que diga que un proceso tiene que ser complejo. O, más exactamente, un proceso complejo puede estar formado por muchos procesos más pequeños y sencillos, cada uno de los cuales gestiona el flujo de trabajo de un microservicio individual.

Enfoque BPMN

La mayoría de los motores de BPM hoy en día soportan el estándar BPMN, es decir, utilizan notación gráfica para definir la lógica de orquestación para que sea más fácil entender la imagen completa. Algunas de las ventajas visibles de este enfoque son:

1) Los errores pueden ser manejados automáticamente y exactamente donde pueden ocurrir, usando casos de excepción, temporizadores y otros elementos BPMN. Si se necesita la intervención humana, también puede incluirse en la lógica.

2) BPMN permite la definición de reglas para el enrutamiento y manejo de datos. Por ejemplo,  en la lógica de cómo se asignan las tareas a los servicios correctos, a las personas adecuadas, etc.

3) Los datos sobre los casos y la ejecución del proceso se recopilan para la elaboración de informes, la supervisión y el análisis.

Para cerrar, me gustaría señalar que un motor BPM ofrece mucho más que la orquestación de microservicios. Permite la orquestación -y automatización- de cualquier servicio: operaciones gestionadas a través de APIs, integraciones con sistemas especializados heredados y propietarios, integraciones con "monolitos" como SAP y otras operaciones de plataformas ERP, integraciones IoT, etc. Es también el caso de los robots RPA, cada vez más presentes en todo tipo de operaciones. Mediante la orquestación, los motores BPM pueden integrarse fácilmente con los asistentes robóticos para recoger y aprovechar información de los clientes, algo muy útil para lanzar, por ejemplo, ofertas y promociones especiales.

Miguel Valdés Faura, director general de Bonitasoft