Complexité des microservices: le coût caché de la décomposition de l’architecture.

Par Rocket Software

5 min de lecture

Résumé

Un client effectue un achat en ligne. Sa carte est débitée, mais la commande n'est jamais expédiée.

Un voyageur réserve un vol. Son paiement est effectué, mais son siège n'a jamais été réservé.

Le système n'a pas planté dans les deux cas. Certaines étapes du processus ont fonctionné, mais d'un point de vue commercial, le résultat reste un échec. Dans de nombreux secteurs, un succès partiel est plus risqué qu'une panne totale.

 

Où les microservices introduisent-ils des risques ?

Ce phénomène peut se produire lors de projets de modernisation, lorsque des processus métier autrefois exécutés au sein d'un même environnement transactionnel sont désormais répartis sur plusieurs services ou plateformes. Si la décomposition peut améliorer l'agilité et l'évolutivité, elle peut aussi complexifier la coordination et la cohérence des transactions lorsqu'un processus métier unique s'étend sur de nombreux composants.

Cette flexibilité a un prix. Lorsqu'une transaction commerciale unique s'étend sur plusieurs services, chacun avec ses propres données et sa propre logique, garantir son bon déroulement devient beaucoup plus complexe. Une panne totale est immédiatement visible et déclenche une intervention. Une panne partielle (où certaines étapes réussissent et d'autres échouent) peut passer inaperçue plus longtemps, engendrant des risques financiers, l'insatisfaction des clients et une complexité opérationnelle accrue, notamment dans les environnements où les transactions critiques dépendent d'une exécution cohérente de bout en bout.

 

Pourquoi les mainframes excellent-ils encore en matière d'intégrité des transactions lors de leur modernisation ?

Dans de nombreux secteurs, un succès partiel est inacceptable. Le principe d'intégrité transactionnelle « tout ou rien » repose sur l'idée que chaque opération est soit validée avec succès, soit annulée intégralement. Dans le secteur financier, une banque ne peut se permettre une mise à jour de solde sans écriture comptable correspondante, de même qu'un assureur ne peut émettre une police sans avoir finalisé l'évaluation des risques, ou qu'un système de réservation de voyages ne peut confirmer un paiement sans avoir sécurisé la réservation.

Historiquement, les systèmes à enjeux élevés gérant ces types de charges de travail étaient construits autour d'un principe simple: une transaction s'achève intégralement ou n'a pas lieu du tout.

Monzo, une banque numérique britannique, a publiquement évoqué les difficultés opérationnelles rencontrées suite à la croissance de son infrastructure à plus de 1 500 microservices. L'entreprise a relevé ces défis grâce à des contrôles d'ingénierie renforcés, une meilleure observabilité, des pratiques de test éprouvées et une discipline opérationnelle accrue. Son expérience démontre que, face à la distribution croissante des systèmes, les organisations doivent investir davantage dans le maintien de la cohérence et de la coordination.

 

Qu'est-ce qui a changé avec l'architecture moderne ?

De nombreuses organisations exploitent aujourd'hui avec succès des systèmes distribués à grande échelle. Bien que les architectures modernes puissent offrir de solides garanties transactionnelles, ces garanties nécessitent souvent des outils et des efforts d'ingénierie supplémentaires, traditionnellement fournis par la plateforme elle-même.

Dans les environnements à fort volume de transactions et à enjeux élevés, un succès partiel est plus dommageable qu'un échec manifeste. Une restauration complète garantit la cohérence des systèmes en facilitant la détection des erreurs et en offrant aux opérateurs une procédure de récupération claire.

Ce que l'on oublie souvent dans les discussions sur la modernisation des mainframes, c'est l'origine de cette garantie. Les systèmes mainframe imposaient l'atomicité au niveau de la plateforme, jetant ainsi les bases de la fiabilité et de la résilience opérationnelle, où la cohérence des données et l'intégrité des transactions étaient indissociables. Les développeurs n'avaient pas besoin d'orchestrer la cohérence entre les différents composants, car elle était intégrée au fonctionnement même de l'exécution des transactions.

De nombreuses architectures modernes exigent toujours les mêmes garanties, mais la différence réside désormais dans le transfert des responsabilités. Au lieu d'être gérée par le système, l'intégrité des transactions est souvent reconstruite dans la logique applicative, répartie entre les services et les couches de coordination. Ce changement introduit de nouveaux modes de défaillance auxquels de nombreuses organisations sont confrontées lors de la modernisation de leurs systèmes mainframe, où les garanties transactionnelles ne sont plus appliquées au niveau de la plateforme.

 

Comment les organisations peuvent-elles moderniser leurs systèmes mainframe sans compromettre l'intégrité des transactions ?

La modernisation des mainframes exige de définir clairement la responsabilité de la coordination des transactions. Si certaines organisations choisissent de rétablir ces garanties grâce à des applications distribuées, une autre approche consiste à préserver les modèles d'exécution transactionnelle éprouvés tout en modernisant l'environnement.

Rocket Enterprise Server permet aux organisations d'exécuter des charges de travail COBOL et autres charges de travail critiques sur des plateformes distribuées et une infrastructure cloud, tout en conservant les comportements transactionnels sur lesquels de nombreuses entreprises s'appuient depuis des décennies.

Pour les charges de travail exigeant une stricte cohérence transactionnelle, Rocket Enterprise Server préserve la coordination des transactions gérée par la plateforme tout en permettant un déploiement sur une infrastructure moderne. Les entreprises peuvent ainsi moderniser leur infrastructure sans avoir à réimplémenter systématiquement toutes les garanties transactionnelles dans le code applicatif et les interactions de service.

Dans l'exemple précédent, les défaillances étaient dues à un contrôle fragmenté. En préservant l'intégrité transactionnelle au niveau de l'exécution, on réduit considérablement la probabilité d'apparition de ces modes de défaillance. À mesure que les systèmes modernes évoluent, il est essentiel de veiller à ce que les architectures modernes conservent les garanties qui ont initialement fait leur fiabilité.

 

Repenser l'architecture moderne

Pendant des années, les efforts de modernisation ont incité les équipes à décomposer les applications en services plus petits et indépendants, au nom de la rapidité et de l'évolutivité. Ce changement a certes apporté des avantages concrets, mais il a également engendré de nouveaux défis auxquels de nombreuses organisations sont encore confrontées. Dans la pratique, beaucoup d'entre elles se montrent plus sélectives quant à la manière et au lieu de décomposer leurs applications. Certaines charges de travail tirent profit d'architectures hautement distribuées, tandis que d'autres privilégient la cohérence transactionnelle et la simplification des opérations.

Les objectifs de la modernisation des mainframes sont de faire évoluer les systèmes de manière à préserver ce qui fonctionne déjà, notamment l'intégrité transactionnelle et la fiabilité qui sous-tendent la sécurité des mainframes et que de nombreux systèmes modernes peinent encore à reproduire.

Découvrez comment Rocket Enterprise Server aide les entreprises à moderniser leurs applications critiques tout en préservant la cohérence transactionnelle dans les environnements distribués et cloud.

Questions fréquemment posées

Articles connexes

Security & Compliance

Prêt pour la facturation électronique: échéances, exigences et prochaines étapes pratiques

1 min de lecture
Prêt pour la facturation électronique: échéances, exigences et prochaines étapes pratiques
Intelligence artificielle (IA)

Présentation de Rocket EVA 2.0

6 minutes de lecture
Rocket EVA 2.0 introduit des agents d'IA gouvernés pour les opérations informatiques mainframe et hybrides, aidant les équipes à accélérer les investigations, à étendre leur expertise et à appliquer [...]
Data

Nouveautés de Vertica 26.3

Mahima Kakkar
5 minutes de lecture
Les dernières innovations de la plateforme analytique de Vertica, de nouvelles fonctionnalités, des améliorations de performance et d'ergonomie qui aident les organisations à élargir leurs capacités [...]