Apache Camel, Mule ESB, Spring : bien choisir son framework d’intégration
Un bon framework d’intégration devrait sous-tendre toute stratégie d’application. Apache Camel, Spring Integration et Mule ESB peuvent simplifier l’intégration à l’échelle. Nous les présentons dans cet article.
Le framework d'intégration est la colle qui lie les éléments constitutifs d'une architecture applicative. Les composants doivent échanger en permanence des données critiques qui facilitent les opérations des utilisateurs, l'évolution des services, la surveillance des menaces, les opérations de back-end, le déclenchement d'événements, etc. Sans un processus d'intégration fiable, les défaillances des applications et des services inonderont un environnement logiciel.
Pour y remédier, les développeurs se sont tournés vers trois grands frameworks d'intégration pour les applications d'entreprise : Apache Camel, Spring Integration et Mule ESB. Chacun d'eux répond au dilemme de la simplification de l'intégration des applications d'entreprise de manière évolutive. Cependant, ils ont aussi leurs forces, leurs faiblesses et des cas d'usage où ils sont plus efficaces.
Les 3 principaux frameworks d'intégration
Apache Camel est un framework open source qui a obtenu un large soutien communautaire parmi ses utilisateurs. Il fonctionne particulièrement bien au sein des architectures logicielles fortement open source. Camel prend en charge plus de 50 formats de données et dispose d'une bibliothèque de plus de 280 composants complémentaires. Les architectes peuvent étendre les composants pour des scénarios spécifiques, tels que la messagerie asynchrone, les tests de simulation et le développement d'applications orientées événements.
Ensuite, Spring Integration fait partie du Spring Framework pour Java, qui comprend également la plateforme de programmation Spring Boot. Spring Integration permet aux développeurs de coder en utilisant des composants à granularité fine qui offrent une grande réutilisabilité et une gestion simplifiée des applications.
Enfin, Mule ESB est le bus de services d'entreprise de la plateforme d'intégration de données Anypoint de MuleSoft, qui a été acquise par Salesforce en 2018. Contrairement à d'autres frameworks axés sur des architectures hautement distribuées, Mule ESB se prête au modèle SOA plus traditionnel pour les applications d'entreprise. Mule ESB fonctionne avec l'EDI AnyPoint Studio, en utilisant le moteur d'exécution de Mule.
Apache Camel vs Spring Integration vs Mule ESB
Chacun de ces trois frameworks peut connecter une application autonome à d'autres dans un écosystème IT B2B. De plus, ils présentent tous une approche légère et modulaire de l'intégration des applications qui permet de connecter les terminaux à l'aide de composants et d'adaptateurs. Tous s'appuient sur le modèle d'intégration décrit dans le livre « Enterprise Integration Patterns » de Gregor Hohpe et Bobby Woolf.
Toutefois, il existe encore des différences notables d'un cadre à l'autre, en termes de convivialité, de technologie et de support :
Interface utilisateur. Mule ESB possède une interface utilisateur accessible pour les débutants. Cependant, les développeurs plus expérimentés peuvent préférer l'expérience non visuelle offerte par Camel et Spring Integration.
XML contre DSL. Camel et Spring Integration utilisent tous deux des langages spécifiques à un domaine (DSL) pour créer des itinéraires ou des flux pour les intégrations. Mule ESB, en revanche, s'appuie sur des fichiers de configuration XML plus traditionnels. Le XML a sa raison d'être, mais de nombreux développeurs Java préféreront les DSL, notamment lorsqu'ils construisent des itinéraires complexes.
L'utilisation des ESB. Comme son nom l'indique, Mule ESB se concentre sur le bus de services d'entreprise. Bien qu'il reste une option légère, l'ESB a perdu beaucoup de terrain en tant que modèle de déploiement, en grande partie en raison de l'essor des microservices par rapport à l'architecture orientée services et de l'APIsation des SI. Camel et Spring se prêteront, quant à eux, à ces nouvelles formes plus modulaires de conception et de développement d'architecture.
Documentation. Camel et Spring Integration disposent d'une excellente documentation spécifique à ces plateformes, notamment en raison de leurs communautés d'utilisateurs importantes et actives. MuleSoft inclut la documentation de Mule ESB dans les documents de l'ensemble de sa plateforme. Il est apparemment plus difficile de trouver des pages et des sujets spécifiques à Mule ESB, enfouis profondément dans la hiérarchie de la documentation.
Communauté. Camel a la plus grande communauté d'utilisateurs, suivie de Spring Integration, puis de Mule ESB. Camel a plus de 9 000 questions étiquetées sur Stack Overflow, Spring Integration en a plus de 6 000, tandis que Mule ESB en a moins de 1 000.
Support. MuleSoft offre un support dédié pour Mule ESB. Bien qu'open source Spring est soutenu par le propriétaire de sa marque, VMware. Camel, en revanche, s'appuie exclusivement sur la communauté open source pour le support. Votre décision peut dépendre de la façon dont vos développeurs préfèrent ou exigent que vous teniez la main.
Coût. Camel est entièrement open source, ce qui signifie qu'il a le coût initial le plus bas. Cependant, vous aurez besoin d'une équipe interne qualifiée pour maintenir la plateforme, ce qui peut représenter d'embaucher des spécialistes aux salaires élevés. Spring Integration, bien qu'il soit open source, facture ses services de formation et d'assistance facultatifs. Mule ESB nécessite de souscrire à AnyPoint de MuleSoft.
Choisir son framework suivant ses besoins
Mule ESB est un excellent candidat pour les organisations ayant fortement investi dans l'écosystème Salesforce/MuleSoft. Il offre l'expérience la plus simple, et il est relativement rapide à mettre en œuvre et à démarrer.
Apache Camel et Spring Integration sont étroitement liés en termes d'architecture et de démographie des utilisateurs. Ici, les équipes centrées sur Java qui préfèrent les projets Spring se tourneraient naturellement vers Spring Integration. Elle offre le meilleur des mondes ouvert et propriétaire : un cadre ouvert soutenu par un support de niveau entreprise de VMware.
Apache Camel est le plus ouvert du lot, offrant le support le plus large. Si votre organisation utilise des technologies open source populaires, comme Kubernetes et Apache Kafka, Camel s'adaptera probablement. Cependant, cette prouesse technique gratuite a un coût, car elle exige que vous et votre personnel conserviez l'expertise interne de Camel. Heureusement, sa communauté importante peut aider à fournir cette expertise, mais il faut quand même prendre le temps d'explorer et d'apprendre le contenu de la documentation.