Ne livrez pas au hasard le potentiel de communication de votre architecture
L'efficience d'une architecture IT repose en grande partie sur la manière dont ses composants interagissent entre eux. Compte tenu des enjeux, ces modalités d’interactions découlent logiquement de choix fondamentaux issus d'un processus de conception des échanges maîtrisé, méthodiquement suivi et rigoureusement appliqué.
Pour autant, ces décisions cruciales sont de moins en moins fréquemment justifiées, offrant une suprématie notable aux communications asynchrones qui sont considérées comme un pilier des architectures modernes.
En réalité, la communication synchrone conserve toute sa pertinence dans de nombreux contextes, en particulier lorsque coordination précise et cohérence immédiate s’avèrent primordiales.
La sélection d’un de ces deux modes de communication doit donc reposer non pas sur un simple engouement ou une tendance, mais bien sur une évaluation méticuleuse des besoins spécifiques de chaque composant du système.
Voyons donc pourquoi justifier les choix de mode de communication est vital pour l'efficacité des architectures IT, comment garantir la juste décision et ce qui fait que la communication synchrone a encore toute sa place dans cette réflexion.
Communication System Design : une démarche clé
Le Communication System Design peut à la fois être abordé comme une démarche, une approche et une discipline essentielles permettant de garantir une communication efficace et fiable entre les composants d'une architecture applicative, contribuant ainsi à la cohérence et à la performance globale du système.
Dans le contexte qui nous intéresse ici, il couvre la conception des mécanismes de communication, des protocoles d’échange et des interfaces qui permettent aux différents composants du système d’information de communiquer entre eux, que ceux-ci soient des applications, des services, des modules, ou d'autres entités.
Plus précisément, il vise à expliciter en détail et de manière exhaustive les échanges de données et leur coordination. Cela implique de déterminer la structure des informations transmises, mais aussi comment elles sont réceptionnées, traitées et gérées par le système de communication. En somme rien qui puisse être laissé à l’improvisation, bien au contraire.
Des principes fondamentaux classiques
En tant qu’approche, le Communication System Design est une séquence d'étapes et d'actions tout à fait classiques qui forment un processus complet permettant de concevoir, implémenter et gérer un système de communication. Chaque étape joue un rôle bien précis dans la mise à disposition d'un système de communication efficace et fiable.
L’analyse des besoins et des objectifs en est bien évidemment la phase initiale. Elle permet d’identifier et de comprendre les objectifs du système, ses contraintes et les besoins en communication. Ces points sont les entrants de la phase de conception de l'architecture dont l’un des objectifs est de permettre de déterminer comment les composants interagiront et sur la base de quels protocoles.
C'est seulement une fois que les grandes lignes de la conception ont été définies que le choix d’un mode de communication synchrone ou asynchrone peut être envisagé. Sa sélection, comme celles successives de la technologie appropriée pour le mettre en œuvre, des moyens de gestion des canaux de communication, des modalités de leur maintien en sécurité, des mesures de garantie de la confidentialité des données sont autant d’aspects clés qui, bien menés, assureront la pertinence du système de communication livré. À condition bien sûr que les critères de choix découlent des performances recherchées, de la fiabilité et du niveau de disponibilité attendu du système.
Avec ou sans synchronisation : est-ce la bonne question ?
Au sein des architecture IT, le mode synchrone a prédominé longtemps après l’avènement du premier moyen de communication asynchrone. Cette synchronisation précise offre encore aujourd’hui un contrôle rigoureux des échanges, mais présente également des limites qui expliquent quelque peu la popularité de la communication asynchrone. Cette dernière, il faut bien l’admettre, apporte des avantages considérables en termes de flexibilité, d'évolutivité et de gestion de la charge, offrant des interactions plus fluides et moins tributaires du temps de traitement des appels. Il est cependant important de souligner que le mode synchrone reste pertinent dans de nombreux contextes, en particulier lorsque la cohérence et l’aboutissement des opérations est une exigence.
Le choix entre ces deux modes de communication doit donc découler d'une évaluation minutieuse des besoins spécifiques de chaque composant du système. Les avantages et inconvénients de chaque approche doivent être soigneusement évalués pour garantir la performance et la robustesse du système d’information dans son ensemble.
En fin de compte, il est moins question de choisir de manière exclusive entre les modes synchrone ou asynchrone que de déterminer lequel de ces modes est le mieux adapté à chaque échange en fonction des exigences qui le caractérisent, quitte à les mettre en œuvre de concert au sein d’un système de communication hybride.
L’hybridation : bien plus qu’une option
Ne considérer que la communication asynchrone revient à oublier délibérément que les systèmes d’information n’ont pas été conçus en une seule fois et qu’ils sont le résultat de l’évolution constante d’un patrimoine qui ne peut être raisonnablement révolutionné d’un instant à l’autre.
Recommandé par LinkedIn
À contrario, n’opter que pour un mode synchrone sous prétexte que la majeure partie du système implémente cette solution revient à négliger l'importance d’apporter à l’existant une capacité d’adaptation lui permettant d’absorber à moindre frais les futures évolutions imposant des paradigmes différents. Une telle approche, source de rigidité excessive, peut tout simplement devenir un obstacle à toute innovation car les systèmes modernes sont de plus en plus axés sur la modularité et structurés autour de composants évoluant à des rythmes différents.
Dans ce contexte, l'hybridation, en tant que moyen de conciliation, devient une réponse pragmatique aux contraintes opérationnelles. Elle offre une approche flexible permettant de faire cohabiter harmonieusement les modes de communication, et confère ainsi au système une flexibilité et une évolutivité tout en maintenant sa performance et sa fiabilité.
Critères de Sélection
La nature des tâches, la cohérence des données, la tolérance aux pannes, les limites du modèle d'architecture, la fiabilité, la sécurité, la latence, la scalabilité sont autant d’enjeux majeurs à prendre en considération lors du choix du mode de communication, et ce quel que soit le périmètre considéré au sein du système d’information global. Il est donc essentiel de comprendre comment ces enjeux interagissent et influencent les critères de choix.
Voici quelques pistes qui peuvent vous aider à prendre une décision éclairée.
La nature des tâches joue un rôle prépondérant dans le choix du mode de communication. Pour les tâches nécessitant une coordination précise, la communication synchrone peut être préférable. En revanche, pour les tâches de fond non critiques, la communication asynchrone peut être plus appropriée.
La cohérence des informations échangées est essentielle à l'intégrité des données gérées par le système d’information dans son ensemble. La communication synchrone se distingue par sa capacité à garantir une cohérence rigoureuse des échanges, ce pourquoi elle est encore à ce jour prépondérante dans les domaines financiers, notamment bancaires.
La tolérance aux pannes est un facteur critique de la disponibilité du système. Le niveau de tolérance aux pannes du mode de communication retenu influence donc directement la résilience du système. Si la tolérance aux pannes est cruciale, la communication asynchrone offre un avantage, car elle permet nativement au système de continuer à fonctionner dans un mode dégradé en cas de défaillance d'un module. Il faudra cependant rendre les messages persistants pour permettre une reprise après incident sans perte d'échanges, nécessité qui peut quelque peu complexifier l’architecture.
Les limites du modèle d'architecture définissent les contraintes et les capacités du système. Certains modèles peuvent favoriser un mode de communication particulier, tandis que d'autres peuvent nécessiter une approche hybride pour répondre à des besoins spécifiques. Ainsi, le mode asynchrone convient particulièrement aux environnements distribués, notamment industriels, au sein desquels la latence des communications peut fortement varier. Par exemple, dans le domaine de l'Internet des objets (IoT) et des systèmes embarqués, l'asynchronisme est couramment utilisé pour gérer de grandes quantités de données malgré des communications intermittentes.
Les pertes de données ou les erreurs de transmission peuvent être source de graves conséquences. La fiabilité des échanges est donc essentielle pour garantir que les données sont transmises correctement et en toute sécurité. La communication synchrone offre un contrôle rigoureux sur les échanges. Chaque message est confirmé, ce qui garantit la fiabilité des données transmises. Lorsque chaque donnée doit être validée en temps réel, le mode synchrone assure que les erreurs sont détectées immédiatement et que des mesures correctives peuvent être prises instantanément. Cependant, En cas de perturbations, comme des défaillances temporaires des composants, la communication asynchrone peut être plus fiable. Les messages peuvent être mis en file d'attente et envoyés ultérieurement, minimisant ainsi les risques de perte de données. Dans le cas ou les erreurs de transmission sont susceptibles d’être induites par la charge supportée par le service appelé, la communication asynchrone peut s’avérer pertinente du fait de sa capacité à lisser la charge réseau. En effet, les messages ne sont distribués que lorsque le module destinataire est disponible pour les prendre en compte, ce qui peut être également plus avantageux dans des environnements où la bande passante est limitée.
La sécurité garantit que les informations sensibles restent confidentielles. Les systèmes d'information doivent mettre en place des mesures de protection adéquates, et le choix du mode de communication peut influencer la vulnérabilité du système aux attaques. Ainsi, lorsque la sécurité exige une réaction immédiate aux menaces, la communication synchrone est avantageuse. Les réponses aux attaques peuvent être immédiates, réduisant le temps d'exposition aux risques. De son côté, La communication asynchrone peut réduire l'exposition aux attaques en évitant que les données sensibles ne soient en permanence en transit. Les messages peuvent être stockés de manière sécurisée, réduisant ainsi les fenêtres d'opportunité pour les attaquants.
Retenons que, quel qu’il soit, le mode de communication implémenté n’est pas sans conséquence sur l’efficacité d’une architecture applicative. Il est donc essentiel de le choisir de manière éclairée, pour ses apports sur le périmètre considéré, en toute maitrise de ses limites, plutôt que de simplement suivre des tendances.
Considérant les exigences et les contraintes, le Communication System Design est une démarche à laquelle il convient de se référer afin d’être en mesure de justifier les décisions prises pour garantir la meilleure efficacité et fiabilité des communications entre composants d'une architecture robuste.
Documenter ces décisions via des Architecture Decision Records (ADR) est un excellent moyen de maintenir la traçabilité, la transparence et la compréhension des choix architecturaux tout en facilitant la communication et la gestion des architectures à long terme.
Pour aller plus loin
La transformation induite par l'intelligence artificielle (IA) dans le domaine de la supervision des systèmes d'information consolide la robustesse du système de communication livré pendant son exploitation en production. Mais ceci ne constitue pas son principal impact. En effet, elle nous invite progressivement à revoir nos approches pour concevoir un système de communication proactif et « intelligent ».
Pour ce qui relève des communications inter-composants, l'IA excelle dans l'analyse des tendances et la détection précoce des anomalies. Elle est capable d'anticiper les goulots d'étranglement et les problèmes de performance sur la base de comportements atypiques bien avant qu'ils ne dégénèrent en dysfonctionnements majeurs.
Cette aptitude prédictive révolutionne la manière dont il est possible de gérer les communications au sein de l'architecture du SI. Par exemple, en cas de latence dans les réponses des composants, l'IA peut déclencher une transition réfléchie d'un mode de communication synchrone idéal vers un mode asynchrone, évitant ainsi les interruptions de service. De plus, elle peut optimiser cette transition, agissant à la manière d’un « circuit breaker » pour garantir la continuité des échanges.
Ne faut-il pas alors revoir notre manière de penser et de concevoir nos systèmes de communication pour les doter de capacités synchrones et asynchrones activables selon le contexte d’exploitation dont l’analyse est laissée à la main d’une supervision capable d’anticipation et de réactivité, garantissant ainsi une architecture robuste et adaptative ?
Architecte solutions chez Ministère des Armées
1 ansTout à fait en phase. Excellent article Christophe. Le mode synchrone amène à une architecture non résiliente tandis que le mode asynchrone complexifie grandement l'architecture. La seule voix est bien l'hybridation
Directeur du DELIVERY Groupe / Expert en gestion et assurance projet / Formateur certifié en gestion de projet (PM²)
1 ansIl va falloir penser à écrire un livre.