Vue d'ensemble des frameworks pour l'orchestration de microservices: Conductor, Zeebe, Temporal

L'orchestration de microservices vous aide à créer des processus complexes dans les produits. Afin de ne pas avoir à écrire ce mécanisme à la main, les développeurs peuvent utiliser des frameworks prêts à l'emploi qui incluent des outils de gestion de microservices. Chez True Engineering, nous avons étudié ce sujet et parlons de trois de ces cadres.





Lors de l'automatisation d'un processus métier complexe, un produit peut impliquer plusieurs microservices à la fois. Et s'il est assez simple de construire l'interaction de plusieurs modules dans un monolithe, alors dans une architecture distribuée, où chacun de ces composants est une application distincte, des difficultés surviennent.





L'orchestrateur de microservices surveille l'exécution des processus. En conséquence, les données ne sont pas perdues, il devient plus facile pour le support de résoudre les problèmes et il devient plus facile pour les développeurs de gérer le développement de l'ensemble du système.





Vous pouvez écrire un tel module à partir de zéro, ou vous pouvez utiliser un framework prêt à l'emploi. Si une entreprise dispose de plusieurs équipes de développement, de tels cadres sont indispensables. Premièrement, les programmeurs n'ont pas à faire le même travail encore et encore. Deuxièmement, lorsque tout le monde utilise des outils communs, les équipes ont des normes de travail uniformes, ce qui affecte immédiatement la qualité des produits. Au lieu de réinventer la roue, tout le monde se concentre sur le développement d'un outil commun.





Architecture du cadre d'orchestration

Le framework comprend des composants d'orchestration prêts à l'emploi. Il s'agit de l'orchestrateur lui-même, qui accepte les tâches et les transfère vers des microservices opérationnels pour exécution.





(, ), , . « », « », « ». . , , .





, .





  • . , . , .





  • . . , - , , - . , Saga – , - .





  • . , .





  • . , (, Java .NET).





, . , .





Conductor Netflix. - JSON-. , . - – .





Zeebe Camunda. Camunda – BPMN-, (, -). Camunda, Zeebe . – , -. XML-.





Temporal. . – , . .





:





  • . Zeebe . Temporal – .





  • . , yj Zeebe . Saga .





  • . .





  • . Java-, .NET- .





La comparaison montre qu'il n'y a pas de solution miracle - chaque cadre est bon à sa manière. L'outil doit être sélectionné dans une boîte de dialogue avec des commandes - quelqu'un peut être plus à l'aise avec JSON, un autre appréciera la visualisation et le troisième voudra utiliser du code propre.





Mais tout framework est meilleur que d'intégrer l'orchestration dans le code de chaque produit séparément. De cette façon, les développeurs doivent se plonger à nouveau dans les mécanismes et surcharger le code à chaque fois. Et dans toute l'entreprise, vous bénéficierez de normes uniformes qui vous permettront de rassembler toutes vos équipes sur une plate-forme de développement commune.








All Articles