Qu'est-ce que la data replication ?

Il est question de data replication lorsque les mêmes données sont intentionnellement stockées sur plusieurs sites ou serveurs. Il y a plusieurs raisons pour lesquelles les entreprises répliquent les données. Cela permet aux données d'être disponibles sans interruption en cas d'arrêt du serveur ou de trafic intense sur le serveur. Les données deviennent accessibles aux utilisateurs de manière constante, sans interférer ou ralentir l'accès des autres utilisateurs. Pour les applications dans le cloud, la data replication permet d'accéder à une copie des données sur une base de données locale avec des performances bien supérieures à celles de l'accès aux données via l'API de l'application dans le cloud, ce qui est particulièrement utile pour l'analyse et la data science. La data replication peut également vous permettre d'éviter les limites des transactions des API et le throttling que connaissent certaines applications dans le cloud.

Diagramme de data replication

La data replication ne doit pas être confondue avec les sauvegardes normales, car elle va plus loin. Le serveur d'où proviennent les données est appelé l'éditeur et celui vers lequel les données sont répliquées est appelé l'abonné. Dans la data replication, la transaction effectuée sur l'éditeur se synchronise avec l'abonné et met à jour les données automatiquement. Toute modification des données sur l'éditeur est automatiquement répercuté sur l'abonné.

Il peut y avoir une réplication complète ou une réplication partielle. Dans le cas d'une réplication complète, toutes les données de la source sont stockées sur tous les sites de réplication. Dans le cas d'une réplication partielle, seules les données fréquemment consultées sont copiées, tandis que les autres données restent à la source.

Types de data replication

Il existe trois principaux types de data replication.

Réplication transactionnelle

Dans la réplication transactionnelle, les modifications de données fréquentes sont automatisées et distribuées entre les serveurs. La réplication des changements de l'éditeur à l'abonné a lieu quasi en temps réel. Elle ne se contente pas de répliquer le résultat final de la transaction, mais enregistre chaque étape de la transaction et l'ordre dans lequel les changements se produisent.

Par exemple, dans le cas de transactions prenant place à un guichet automatique, la réplication de l'éditeur à l'abonné ne concerne pas seulement le solde final enregistré, mais toutes les transactions individuelles effectuées entre-temps. Une autre caractéristique clé de la réplication transactionnelle est que si les changements de données chez l'éditeur sont répliqués chez l'abonné, l'inverse n'est pas vrai. Par défaut, les changements de données ne se produisent pas au niveau de l'abonné.

Réplication d'instantané

La réplication d'instantané synchronise les données entre l'éditeur et l'abonné à un moment donné. Elle déplace des morceaux de données de l'éditeur à l'abonné en une seule transaction. Les mises à jour dans une réplication d'instantané ne sont pas aussi fréquentes que la réplication transactionnelle. Elle peut être effectuée avant la réplication transactionnelle pour établir un état de base des deux serveurs. Elle ne met pas à jour chaque transaction entre les serveurs ni l'ordre de changement des données.

Ce processus est utilisé pour synchroniser des données qui changent au cours d'une période donnée. Par exemple, de nombreuses entreprises répliquent des données telles que les comptes, les contacts et les opportunités d'un CRM dans le cloud vers une base de données locale à des fins de reporting. Cette opération peut être effectuée toutes les 15 minutes, une fois par heure ou une fois par jour, selon la fréquence à laquelle les données changent. Pour plus d'efficacité, le processus de réplication peut détecter les données qui ont changé dans l'éditeur et ne répliquer que les changements au lieu de prendre un instantané complet à chaque intervalle de réplication.

Fusionner la réplication

La réplication par fusion est une forme légèrement plus complexe de réplication. La synchronisation initiale de l'éditeur est une réplication d'instantané. Toutefois, sous cette forme, elle permet de modifier les données à la fois au niveau de l'éditeur et de l'abonné. Les données mises à jour sont ensuite envoyées à un agent de fusion, qui est installé sur tous les serveurs. L'agent de fusion utilise des algorithmes de résolution de conflits pour mettre à jour et distribuer les données.

Par exemple, si un employé modifie un document directement enregistré sur un serveur dans le cloud (éditeur) sur son ordinateur portable ou son téléphone (abonné) tout en étant en ligne, il s'agirait d'une réplication transactionnelle puisque le document est enregistré en temps quasi réel. Cependant, si le document était téléchargé depuis le serveur dans le cloud et mis à jour hors ligne sur l'ordinateur portable ou le téléphone, il y aurait un conflit, puisque les données ont été mises à jour du côté de l'abonné. Une fois remis en ligne, il passerait par un agent de fusion, qui utiliserait un système de résolution des conflits pour mettre à jour le document chez l'éditeur en comparant les deux fichiers.

La réplication par fusion est utilisée dans de nombreux scénarios où un utilisateur n'a pas un accès direct à l'éditeur à tout moment, comme dans le cas des utilisateurs mobiles où il est possible d'être hors ligne pendant que les données sont mises à jour. Elle est également utilisée dans le cas où plusieurs abonnés peuvent accéder aux mêmes données, les mettre à jour à différents moments et les synchroniser avec l'éditeur ou avec d'autres abonnés. Il pourrait également être utilisé lorsque les mêmes données de l'éditeur sont mises à jour en partie par plusieurs abonnés en même temps.

Composants importants du réseau de data replication

Outre l'éditeur et l'abonné, le réseau comporte également quelques éléments clés nécessaires à sa réussite.

Distributeur

Pour modifier une configuration de réplication, il faut d'abord configurer le distributeur. Le distributeur est un serveur du réseau de réplication qui contrôle la base de données de distribution et stocke les métadonnées et l'historique de toutes les réplications. Il stocke également les transactions et les instantanés destinés à la réplication. Le distributeur peut être le même que le serveur d'édition (distributeur local) ou même un distributeur distant selon le type de réplication.

Un distributeur distant est généralement utilisé lorsqu'un distributeur unique s'adresse à plusieurs éditeurs ou lorsqu'il est nécessaire d'effectuer le traitement sur un ordinateur distinct pour ne pas affecter le mouvement des données sur l'éditeur. Il est généralement utilisé dans le cadre de la réplication transactionnelle où la fréquence des mises à jour est beaucoup plus élevée et pourrait affecter la vitesse de traitement du distributeur s'il se trouve sur le même serveur. La réplication par fusion peut être effectuée avec un distributeur local, car la fréquence de réplication et de mise à jour n'est pas aussi élevée que la réplication transactionnelle. Il est également utile que les données mises à jour par l'abonné après la fusion soient éventuellement synchronisées avec l'éditeur.

Agents de réplication

Les agents de réplication sont au cœur de la réplication et varient en fonction du type de réplication installé. Ce sont des programmes qui effectuent diverses tâches telles que la détection et la mise à jour des bases de données de l'éditeur et de l'abonné, la création de copies et la résolution de conflits. Les agents de réplication sont généralement stockés dans le distributeur. Certains des agents de réplication exécutés à partir du distributeur sont :

  • Agent d'instantané
  • Agent de distribution
  • Agent de fusion
  • Agent de lecture de journal
  • Agent de lecture des files d'attente

Avantages de la data replication

La data replication est un excellent moyen de fournir un accès cohérent aux données. Elle permet également d'augmenter l'accès aux données à plusieurs utilisateurs en même temps. Les redondances de données sont supprimées en fusionnant les bases de données et en mettant à jour les bases de données esclaves avec des données incomplètes. Et avec la data replication, l'accès aux bases de données est naturellement plus rapide.

Inconvénients de la data replication

La data replication nécessite un espace de stockage et une infrastructure importante pour être maintenue. La réplication est coûteuse et le maintien de l'infrastructure pour assurer la cohérence des données nécessite des mesures complexes. Elle expose également davantage de parties de logiciels à des atteintes à la vie privée et à la sécurité.

Meilleures pratiques pour la réplication

Une fois le réseau de réplication configuré, il est important de suivre quelques pratiques d'administration efficaces :

  • Une stratégie doit être mise en place pour sauvegarder régulièrement une base de données. Des tests doivent également être effectués régulièrement pour restaurer ces sauvegardes.
  • Dans le cadre de la reprise après sinistre, il est essentiel de scripter tous les composants de réplication et les tâches répétitives, car les scripts peuvent être stockés et sauvegardés facilement. En cas de changement de politique, les composants peuvent être facilement scriptés à nouveau.
  • Il est nécessaire d'établir les facteurs qui affectent les performances de la réplication. Cela inclut des aspects tels que le matériel, la conception de la base de données, la configuration du réseau, la configuration du serveur et les paramètres de l'agent. Tous ces éléments doivent être mis en place et surveillés en fonction de la charge de travail utilisée par l'application.

Les cinq paramètres suivants doivent être contrôlés pour assurer l'efficacité :

  • Temps nécessaire à la réplication
  • Réplication soutenue sur une période de temps
  • Concurrence ou nombre d'activités de réplication qui peuvent avoir lieu en même temps.
  • Durée de la synchronisation
  • Consommation de ressources pour la réplication
    • Pour éviter les catastrophes, il est important d'établir des seuils de performances afin que, lorsqu'ils sont atteints, ils puissent générer des avertissements et envoyer des alertes aux administrateurs. Des alertes peuvent également être établies pour les actions des agents de réplication ou des processus de réplication.
    • Surveiller la topologie de réplication
    • La validation périodique des données pour la réplication transactionnelle et la réplication par fusion doit être effectuée au niveau de l'éditeur et de l'abonné pour maintenir une réplication réussie.

La data replication va au-delà de la création d'une sauvegarde des données. Bien qu'elle soit l'un des éléments clés de la gestion des données, elle peut également être un processus coûteux et complexe si elle n'est pas gérée correctement. La clé réside dans le choix d'un processus de réplication adapté à vos besoins.