Comment éviter que l'omnicanalité ne se termine en saga
Alors que la plateforme démarches simplifiées obtient les fonds lui permettant de répondre aux enjeux du service client « omnicanal », une majorité des consommateurs jonglent déjà sans effort entre smartphone, ordinateur et points de vente physiques et s’attendent à pouvoir interagir avec une entreprise de manière continue en basculant autant que de besoin et à tout instant d’un canal de communication à l’autre en toute fluidité et en parfaite cohérence.
Ces pratiques sont à ce point ancrées chez plus de 70% des clients qu’il ne leur paraît tout simplement plus concevable que leurs actions et interactions ne soient pas systématiquement synchronisées entre ces différents moyens.
De fait, les entreprises sont désormais contraintes de garantir en permanence une expérience utilisateur omnicanal harmonieuse, cohérente et ininterrompue, ce qui implique encore aujourd’hui de résoudre de nombreux défis tels que la synchronisation des données, la sécurité des transactions et l'intégration fluide des canaux à un niveau choisi en toute conscience.
Répondre à cet enjeu implique d’opter pour une approche holistique englobant la complexité des interactions entre canaux et clients afin de concevoir une infrastructure technologique robuste qui nécessitera la plupart du temps des solutions technologiques avancées.
Explorons de plus près les alternatives possibles et comment relever les défis techniques que chacune d’elles impose dans le cadre des infrastructures technologiques des entreprises.
La synchronisation temps réel des données, le graal
Pour garantir la synchronisation en temps réel des données sur différents canaux, les systèmes doivent traiter des opérations de lecture et d'écriture de manière cohérente afin que chaque point de contact avec le client accède aux informations les plus récentes. Un tel objectif nécessite bien souvent des mécanismes sophistiqués susceptibles de nuire à l’évolutivité du système, mais également à ses performances et donc, finalement, d’impacter la satisfaction client.
La cohérence à terme, une alternative à envisager
Alors que la forte cohérence permise par une synchronisation temps réel des données privilégie une intégrité instantanée sur la performance et la disponibilité, la cohérence à terme (eventual consistency) propose exactement l’inverse au risque d'une possible lecture de données obsolètes pendant la phase de convergence progressive des données sur l'ensemble du système.
Ce choix peut être justifié dans des contextes pour lesquels la propagation des mises à jour sur l’ensemble des nœuds peut être gérée de manière asynchrone sans compromettre l'expérience utilisateur.
Adopter une approche holistique
Choisir globalement ou de manière plus atomique entre ces deux alternatives exige une prise de décision éclairée prenant en considération l'ensemble des facteurs pertinents, qu'ils soient d'ordre technique, organisationnel, social ou stratégique.
Cette approche nécessite, pour ce qui nous concerne ici, de transcender les silos et les domaines spécialisés pour considérer l'ensemble du système d’information de l’entreprise, parcours client compris. En effet, cela est indispensable à l’obtention de la vision globale nécessaire à la compréhension des implications de chaque choix et à l’élaboration de stratégies viables menant aux possibles solutions tout en tenant compte de toutes les temporalités, passé, présent et avenir.
Faire face aux défis de la forte cohérence
Comme évoqué précédemment, dans le contexte des systèmes distribués, garantir que tous les nœuds du système sont à même de fournir à chaque instant une vue unifiée des données nécessite une pleine maîtrise de dispositifs particuliers permettant de maintenir la cohérence des données en propageant instantanément les changements effectués dans un canal à tous les autres canaux concernés, sans délai perceptible.
Un des principaux défis consiste à faire en sorte que les différentes technologies et plateformes utilisées au sein du système d’information soient capables de communiquer entre elles de manière transparente. Cela nécessite une intégration efficace des systèmes existants et l'adoption de solutions compatibles avec plusieurs canaux. L'intégration de différentes technologies* utilisées sur les canaux en ligne, mobiles et physiques pouvant se révéler particulièrement complexe, de nombreuses entreprises choisissent de mettre en place des plates-formes d'intégration centralisées afin de faciliter cette tâche. En minimisant les délais, cette solution réduit la probabilité d'erreurs liées à des données obsolètes et améliore de fait la fiabilité des informations disponibles, ce qui contribue à offrir une expérience client plus réactive et pertinente.
En complément, pour assurer efficacement la propagation des modifications en temps réel, il sera bien souvent indispensable d’investir dans des technologies adaptées telles que des bases de données en temps réel et des systèmes de messagerie instantanée tout en gardant à l’esprit la nécessité de garantir l’évolutivité de l’architecture du système d’information dans son ensemble.
L'utilisation judicieuse de solutions de bases de données en temps réel peut s’avérer cruciale, notamment pour absorber des mises à jour fréquentes et permettre une lecture rapide des données. Les bases de données NoSQL, les bases de données temps réel et les solutions de streaming sont autant d’opportunités à envisager, en ne perdant pas de vue qu’un certain nombre d’entre-elles se basent sur le principe de cohérence à terme. Parallèlement, l'intégration de systèmes de mise en cache dans l’objectif d’y stocker temporairement des données fréquemment consultées via des requêtes répétitives est une option à ne pas négliger.
Bien que plus structurante, l'adoption d'une architecture orientée événements peut également s’avérer être une stratégie efficace. En effet, les systèmes de messagerie orientés événements associés à une architecture microservices ont vocation à permettre la mise à jour en temps réel de parties spécifiques du système sans solliciter l'ensemble de la solution déployée.
Enfin, pour garantir la scalabilité et la gestion des ressources, l'adoption de technologies de conteneurisation et d'orchestration reste une piste à envisager en parallèle de mécanismes d'équilibrage de charge.
Les contraintes inhérentes à la cohérence forte n'étant pas négligeables, l’étude parallèle de l’éligibilité de la cohérence à terme ne peut être négligée.
La cohérence à terme, une priorité évidente
La cohérence à terme est un concept issu des premiers projets « mobiles ». Ce concept est souvent utilisé dans les systèmes distribués à grande échelle pour lesquels la performance et la disponibilité sont des aspects essentiels. C’est pour cela, entre autres, qu’il est régulièrement implémenté dans les systèmes de bases de données distribuées.
Rappelons que son principe repose sur le fait qu’une certaine asynchronie temporaire entre les données de différents canaux est acceptable sachant qu’elles finiront par converger vers un état cohérent avec le temps. Reste alors à voir quels sont les mécanismes qui entrent en jeu pour garantir la synchronisation finale de l’ensemble des nœuds.
La réplication asynchrone
La réplication asynchrone est une pratique répandue pour garantir la cohérence finale des données dans les systèmes distribués. Contrairement à la synchronisation instantanée, la réplication asynchrone permet de diffuser les modifications de manière non immédiate sur les différents nœuds du système. Cette méthode offre plusieurs avantages significatifs, notamment une amélioration des performances globales et une meilleure tolérance aux pannes en réduisant la dépendance immédiate entre les répliques.
Il est important de prendre conscience que la mise en place de la réplication asynchrone des données entraine irrémédiablement une problématique centrale à laquelle il est impératif d’apporter des solutions : la réconciliation des données. En effet, la propagation asynchrone des mises à jour autorise l’évolution parallèle des éléments du système, ce qui peut amener à des conflits lors des tentatives de propagation des mises à jour.
Mécanismes de résolution de conflits
En intégrant des mécanismes de réconciliation robustes, le système distribué peut maintenir une cohérence à long terme tout en exploitant les avantages de la réplication asynchrone en termes de performances et de tolérance aux pannes. Cependant, quelle que soit la solution retenue, forte cohérence ou cohérence à terme, il est crucial de concevoir ces mécanismes avec soin pour éviter toute perte de données significative et garantir une expérience utilisateur fluide et cohérente.
Recommandé par LinkedIn
Ces mécanismes visent donc avant tout à identifier et résoudre les divergences entre les différentes répliques ayant évolué indépendamment. Pour cela, plusieurs approches complémentaires telles que la définition de règles de résolution des conflits, l'intégration de stratégies de vérification de la cohérence au niveau du système ou encore l'utilisation d'algorithmes de fusion intelligents peuvent être envisagées.
La définition de règles de résolution des conflits constitue une première étape, permettant d'établir des critères clairs sur la manière de fusionner les mises à jour concurrentes. Après quoi, l'intégration de stratégies de vérification de la cohérence au niveau du système impliquant la mise en place de mécanismes de détection des incohérences et d'alerte en cas de divergence notable revêt une importance cruciale.
En outre, l'utilisation d'algorithmes de fusion intelligents représente une approche avancée pour harmoniser les données divergentes. Ces algorithmes peuvent prendre en compte différents facteurs tels que la priorité des sources et la qualité des données pour guider le processus de fusion vers des résultats pertinents.
Orchestration de tâches
Les outils d’orchestration offrent des fonctionnalités avancées telles que la planification, la parallélisation et le suivi des tâches qui permettent de coordonner l'exécution de tâches dans un système distribué tout en garantissant une exécution cohérente et fiable des opérations.
En organisant méthodiquement la séquence des opérations, la planification garantit une cohérence temporelle dans l'exécution des processus, contribuant ainsi à la stabilité du système.
La parallélisation, quant à elle, autorise l'exécution simultanée de plusieurs tâches. Cette capacité à traiter des opérations de manière concurrente améliore considérablement l'efficacité opérationnelle, réduisant les délais et optimisant l'utilisation des ressources. Ici la parallélisation des tâches de propagation des mises à jour est d’autant plus facile que l’architecture microservices respecte l’indépendance de ces composants.
Résolution des erreurs
Pour garantir la cohérence finale en présence d’éventuelles erreurs réseau, pannes serveur ou conflits de données, les systèmes distribués exigent le déploiement de mécanismes robustes et proactifs de résolution des erreurs en tant que pilier fondamental de la cohérence à long terme.
Cependant, la résolution proactive des erreurs implique la mise en place de stratégies de détection précoce des anomalies, permettant d'anticiper et de corriger les problèmes potentiels avant qu'ils n'affectent la cohérence, voire l’intégrité, des données elles-mêmes.
Par ailleurs, la conception de procédures de récupération efficaces de type rollback est essentielle pour restaurer la cohérence après la survenue d'une erreur majeure.
En parallèle, ne serait-ce que par ce qu’en plus de faciliter le processus de résolution, elle renforce la confiance des utilisateurs et des administrateurs dans la robustesse du système d’information, une documentation exhaustive et détaillée des erreurs, de leur impact et des actions correctives entreprises est primordiale.
Un compromis dynamique
Le compromis entre cohérence et disponibilité, souvent représenté par le théorème CAP (Consistency, Availability, Partition Tolerance) formulé en 2000 et également connu sous le nom de théorème de Brewer, suggère qu'il est difficile d'obtenir simultanément une forte cohérence et une disponibilité totale dans un système distribué en cas de partitionnement réseau. Pourtant, ce compromis peut être géré de manière dynamique en fonction des besoins spécifiques du système et des circonstances.
Il est important de comprendre que les compromis entre cohérence et disponibilité ne sont pas obligatoirement figés et que les systèmes distribués peuvent être conçus de manière à gérer ces compromis de manière dynamique en fonction de conditions changeantes. En effet, les systèmes modernes sont souvent conçus pour permettre des réglages dynamiques en fonction des besoins. Ils permettent ainsi une application de politiques de cohérence paramétrables capables d’ajuster leurs propres paramètres en fonction des nouvelles exigences du système grâce à des mécanismes de détection proactive des partitions et de stratégies de priorisation dont l’apprentissage est désormais automatisable.
Un entre deux plus atomique
En complément, les microservices, par nature distribués et, surtout, indépendants, offrent l’opportunité d’opter pour une approche nuancée permettant de garantir à la fois une cohérence immédiate des données et une convergence progressive à long terme ciblées.
Ainsi, les microservices au cœur des processus critiques peuvent bénéficier d'une cohérence forte et d’une intégrité immédiate sans que les contraintes induites par ce niveau d’exigence ne s’étendent à l'ensemble de l'architecture au risque d’entraver sa flexibilité globale.
D'un autre côté, la cohérence à terme peut être adoptée pour les microservices acceptant des asynchronies temporaires sans compromettre la fiabilité globale.
Cette approche hybride s'inscrit dans une logique qui vise à ce que le niveau de cohérence appliqué à chaque microservice soit déduit de ses caractéristiques et exigences spécifiques.
En somme, l’infrastructure optimale permettant de répondre aux impératifs d'une expérience utilisateur omnicanal aboutie résulte de l’exploration holistique et méthodique des enjeux stratégiques, organisationnels, sociaux puis techniques.
Il parait pertinent de conduire ses travaux en privilégiant une cohérence à terme qui pourra, si nécessaire être complétée par le déploiement ciblé de la cohérence forte au bénéfice des services critiques ne tolérant aucune asynchronie temporaire des données.
Au final, la capacité à notifier de manière proactive, sans intervention de sa part, tout utilisateur, quel que soit son canal d’interaction, de toute mise à jour pertinente pour lui illustrera la convergence réussie entre les choix architecturaux, les technologies et outils mis en œuvre et les attentes de chacun.
Pour aller plus loin
Nous pouvons nous attendre à de prochaines avancées dans le domaine des systèmes distribués et de la cohérence des données, ce qui est plutôt une bonne chose, puisqu'avec l'essor de l'informatique périphérique et de l'internet des objets (IoT), disposer de moyens simples permettant de garantir la cohérence des données au sein d’un écosystème constitué de composants dispersés ne sera plus une option.
En attendant, l'intégration de la programmation réactive émerge comme une opportunité intéressante permettant de dépasser la simple notification en anticipant les besoins utilisateurs, renforçant ainsi la pertinence de l’approche omnicanale.
* systèmes de gestion de la relation client (CRM), plateformes de commerce électronique, systèmes de points de vente, applications mobiles, …