Retour sur la session ALT.NET SOA et Service Bus

La dernière session Alt.NET du jeudi 03/10/2013 avait pour (vaste) sujet la SOA et les Service Bus. Elle était animée par la joyeuse équipe de chez ABC Arbitrage. Une belle présentation, des choix architecturaux forts, ouvrant la porte à des questions et débats intéressants.
Pour commencer, la SOA, c’est quoi ?
Service Oriented Architecture. Voilà. La principale (voire seule) idée derrière ce pattern est de matérialiser un système d’information comme un ensemble de services simples et indépendants les uns des autres. Enfin, chacun de ces services doit être cartographié. Ces services peuvent prendre des formes très différentes. On associe très souvent la notion de SOA avec des Web Services REST ou SOAP. Mais la seule contrainte est que les services puissent communiquer au travers d’un système distribué. Les bénéfices attendus sont de plusieurs ordres :
- Il est plus simple de comprendre et donc de maintenir des composants simples,
- Chaque service peut être redéployé sans avoir d’impact sur le système dans son ensemble,
- L’approche s’inscrit parfaitement dans une démarche agile, puisque le système peut évoluer petit à petit, ne nécessitant pas d’effet Big Bang.
La SOA chez ABC Arbitrage
Partant d’un legacy plutôt standard composé de clients riches dialoguant avec une grosse base de données centrale, l’IT d’ABC Consulting a fait un choix fort en 2009 en faisant le pari d’un SI cible composé de services communiquant entre eux au travers d’un bus. Chaque service est atomique et peut fonctionner de façon totalement différente des autres, tant que le contrat de communication est respecté. Cela leur a offert une souplesse non-négligeable. D’un premier service mis en production en 2009, ils en sont à une centaine aujourd’hui et la migration a été progressive. Le broker utilisé dans la première version de leur bus, développé en interne, était Apache Qpid. Aujourd’hui, le bus est dans sa deuxième version, et les services communiquent entre eux en Peer to Peer avec ZeroMQ.
La présentation est dynamique, l’équipe sympa et visiblement efficace.
Et qu’est-ce qu’on retient de tout ça ?
- Ca fait bien bien plaisir de voir une belle architecture en production. L’équipe a fait des choix forts il y a déjà 4 ans et a maintenu le cap. Quand on a plus souvent l’habitude de voir des systèmes d’information composés d’une succession sans fin de cibles auxquelles on n’est finalement jamais arrivé, c’est toujours plaisant de voir quelque chose qui a bien marché.
- Une des choses que je retiens est la volonté permanente de réduire la dette technique.
- Un usage intensif de patterns intéressants, et notamment CQRS.
- Quand on développe un système distribué, il est nécessaire de fournir beaucoup d’efforts sur sa testabilité. On a entendu le chiffre de 80% de taux de couverture de code par les tests. Bien que ce ne soit pas une métrique suffisante en soi, le chiffre est élevé et démontre d’une part une volonté forte de tester et d’autre part un investissement déjà conséquent.
- Nous avons vu un bel exemple de solution custom de développement d’un middleware. Un autre choix possible aurait pu être l’intégration d’une solution du marché. Thomas Pierrain a écrit un bon compte-rendu sur le sujet et ses questions sont légitimes.
- Les sessions Alt.Net sont toujours de bon niveau. Inscrivez-vous !