Moteur de process et microservices
L'architecture microservice, normalement, on commence à connaître, mais le BPM un peu moins.
Le BPM, pour Business Process Management, comment ça marche ? On modélise, on code et on fait tourner un moteur de process comme Camunda. Simple non ?
Camunda est un moteur BPM codé en Java et opensource. La société éponyme propose une version enterprise avec des fonctionnalités supplémentaires (notamment la partie insights présentée à la fin de la vidéo). J'ai découvert les moteurs BPM lors d'une mission d'audit chez Orange, qui utilise ce type de moteur pour gérer des centaines de milliers d'instances de process pour gérer les souscriptions internet/adsl/fibre sur le réseau France Télécom. Si vous avez internet, vous êtes passé par un moteur BPM un jour.
Pour aller un peu plus loin q'une simple définition de BPM voici les étapes clefs de son utilisation:
- modélisation: le format BPMN, N pour notation, est le standard de graphe au format xml permettant de modéliser un process. Cette modélisation peut plus ou moins se rapprocher d'une vision métier (facturation, suivi de commande, ...) et peut également servir de documentation
- automatisation: différents types d'actions peuvent être traités (manuelle, call API, ...) comme des appels à des services Spring et qui permettent de gérer tout ou partie du process (envoi de notification, persistence de fichier, ...)
- motorisation: tout ça tourne dans un moteur BPM, qui fait vivre chaque process sur le modèle défini, orchestre les actions et changements de statut et en permet le suivi (méchanisme de retry, timeout, gestion d'erreur)
Voici un talk qui aborde 2 sujets intéressants:
- comment mieux faire communiquer des microservices
- introduction à un cas d'usage de BPM: Camunda
Auteur: Niall Deehan
Contexte: Devoxx Belgium 2019
Début du talk (pour passer l'intro): https://youtu.be/ky_mG4giNm4?t=63
Appeler une chaîne de microservice synchrone ça a ses limites, ajoutons un moteur BPM: https://youtu.be/ky_mG4giNm4?t=572s
Le code source utilisé dans cette démo: https://github.com/NPDeehan/kaffee-und-kuchen
Le starter et le site de Camunda: https://start.camunda.com/https://camunda.com/