Un guide complet sur les stratégies de migration technologique : (Partie 3 – Migration de base de données)

Publié: 2020-12-25

Imaginez un scénario où vous achetez un nouvel appartement, vous êtes tous prêts à emménager et avez soigneusement planifié le processus. Vous êtes prêt à emménager dans votre nouvelle maison, puis soudain vous vous rendez compte qu'il y a un problème. Les meubles et les artefacts ne correspondent pas bien à votre nouvel appartement.

Comment vous sentiriez-vous si vous deviez jeter tous vos meubles et recommencer à zéro ? Pour aller plus loin dans cette analogie, considérez le nouvel appartement comme votre nouvelle base de données et les meubles comme les données. Nous sommes sûrs que les données seraient beaucoup plus importantes que le mobilier pour votre entreprise, et vous voudriez donc en conserver chaque élément pendant que vous envisagez de migrer.

Dans le prolongement de notre série sur la migration technologique, dans ce blog, nous essaierons de découvrir les bases de la migration de base de données (DBM), ce qu'il faut comprendre, prendre en compte et prendre en compte lors de la migration de la base de données.

Pourquoi et quand la migration de base de données est-elle nécessaire ?

quand-la-base-de-base-de-migration-est-elle-nécessaire

Dans le prolongement de notre précédent blog sur la migration d'applications, l'article d'aujourd'hui est centré sur la migration de base de données (également appelée migration de schéma) car il s'agit de l'une des migrations les plus importantes qui traite principalement de la sélection, de l'extraction, du transfert/de la mise à jour des données d'un cadre de base de données vers une autre.

Essentiellement, le besoin de migration de base de données peut être spécifique à une exigence commerciale, ou même pour satisfaire les dernières politiques réglementaires multiples instituées par divers régulateurs. Bien qu'il n'y ait pas de situations définies où DBM est nécessaire, nous avons répertorié certaines situations où cela est inévitable :

  • Une raison courante est de déplacer votre système obsolète vers un système qui répond aux exigences de votre entreprise et aux besoins de données modernes. Les techniques de stockage nouvelles et modernes sont devenues une nécessité à l'époque du Big Data.
  • Certains régulateurs ont rendu obligatoire le maintien des données dans une zone géographique particulière uniquement. Par conséquent, il est nécessaire que les données distribuées soient migrées vers un emplacement unique.
  • Certaines entreprises préfèrent déplacer une base de données sur site vers une base de données cloud. Cela permet généralement d'économiser sur l'infrastructure et les ressources d'expertise nécessaires pour prendre en charge les données, et rend également les systèmes plus rapides.
  • La migration vers une nouvelle plate-forme garantit l'intégrité complète des données. Il réduit les coûts de stockage et de médias, ce qui se traduit par une amélioration significative du retour sur investissement.
  • De nombreuses entreprises modernes souhaitent conserver toutes leurs données au même endroit. De cette façon, les données sont accessibles à tous les départements de l'entreprise.

La migration du système de base de données vers une nouvelle plate-forme réduit l'interruption des opérations commerciales quotidiennes. Cela peut être fait avec un minimum d'efforts manuels si la sélection d'une nouvelle plate-forme de base de données est faite judicieusement.

Types de bases de données

Avant de procéder à la migration de la base de données, examinons d'abord les différents types de bases de données :

types-de-base de données
  • Base de données relationnelle - Les bases de données relationnelles sont connues comme les bêtes de somme de l'industrie des bases de données. Ces bases de données sont classées par un ensemble de tables. Les tableaux se composent de lignes et de colonnes où la ligne contient l'instance de données et la colonne contient l'entrée de données pour une catégorie spécifique. SQL - Structured Query Language est une interface de programmation standard pour la base de données relationnelle.
  • Base de données distribuée - Comme son nom l'indique, les données sont distribuées sur divers sites de toute organisation. Les liens de communication sont utilisés pour connecter les sites entre eux. Cela permet d'accéder facilement à la base de données distribuée.
  • Base de données orientée objet - Ce type de base de données fusionne les attributs de la base de données relationnelle et de la programmation orientée objet. Divers éléments créés en C++ et Java peuvent être stockés dans des bases de données relationnelles, cependant, une base de données orientée objet leur convient mieux.
  • Base de données NoSQL - La base de données NoSQL peut analyser efficacement de grandes données non structurées stockées sur plusieurs serveurs virtuels. En revanche, une base de données relationnelle ne peut pas gérer efficacement certaines performances du Big Data. Les bases de données NoSQL peuvent facilement gérer de tels cas et sont utilisées pour un grand nombre de données distribuées.
  • Cloud Database – Cloud Database est un environnement virtuel qui offre la possibilité de payer à l'utilisation. L'utilisateur n'a qu'à payer pour la bande passante et la capacité de stockage qui correspondent à ses besoins.
  • Base de données de graphes - En termes simples, un graphe est une collection de nœuds et d'arêtes. La base de données de graphes contient des nœuds qui représentent des entités et le bord décrit les relations entre ces entités. Il s'agit d'un type de base de données NoSQL et utilise la théorie des graphes pour cartographier, stocker et interroger les relations.
  • Base de données centralisée – Avec ce type de base de données, les données sont stockées dans un emplacement centralisé unique. La base de données contient essentiellement des procédures d'application qui permettent aux utilisateurs d'accéder également à la base de données à partir d'emplacements distants.

Approches de migration de base de données

La migration des données d'une plate-forme de base de données à une autre peut être une tâche cruciale. Si la migration est prévue dans un environnement LIVE, la migration doit être effectuée avec la plus grande prudence. Il faut choisir un moment de migration convenable avant de poursuivre la migration des données. Les systèmes en direct connaissent souvent des temps d'arrêt lorsque les données sont transférées vers une nouvelle base de données.
Il existe principalement deux approches de migration de base de données :

Migration de données Big Bang :

Cette approche consiste à choisir de migrer la base de données complète en une seule fois dans un laps de temps limité. Bien que la migration des données Big Bang semble moins complexe, elle nécessite un temps d'arrêt suffisant pour le site Web en direct. De plus, avec cette approche, une restauration complète du processus de migration peut ne pas être facile à réaliser en cas d'échec de la migration à tout moment.

Migration lente des données

Avec cette approche, il faut diviser le processus de migration en plus petits morceaux ou phases. Presque comme une approche agile de la migration, si une phase unique échoue, seule cette phase doit être annulée et le processus répété. Cependant, la migration des données Trickle prend beaucoup de temps et peut donc augmenter le coût du projet.

Différents types de migration

différents-types-de-migration

BD relationnelle vers BD relationnelle

Cette approche est la migration la plus simple. Il existe des tonnes d'outils disponibles qui effectuent ce type de migration assez efficacement, presque 100% efficaces.

BD relationnelle vers BD non relationnelle et vice-versa

Cette migration est plus difficile par rapport à celle mentionnée ci-dessus. Étant donné que la base de données relationnelle et la base de données non relationnelle sont fondamentalement différentes, leur migration peut ne pas être efficace à 100 %. Essentiellement, migrer vers une base de données non relationnelle signifie sacrifier les propriétés ACID (atomique, cohérente, isolée et durable) qui garantissent l'évolutivité d'une base de données.
Cependant, il existe plusieurs outils gratuits disponibles qui prennent en charge la migration de la base de données relationnelle vers une base de données non relationnelle. Bien que leur utilisation ne soit pas largement recommandée car ces outils ne prennent pas en charge la structure de schéma du système et la plupart semblent trop rigides pour s'adapter aux exigences du système.

Bien qu'il existe quelques conseils de conversion de base que nous pouvons rendre pour ce type de migration que nous pouvons envisager (pour plus de facilité, considérons MySQL comme notre base de données relationnelle et MongoDB comme notre base de données non relationnelle)

convertir-mysql-string-data-type-to-string-in-mongodb
  • Convertissez le type de données MySQL String en String dans MongoDB. Cela peut inclure char, varchar, blob, texte, etc.
  • Convertissez le type de données MySQL Numeric en Number dans MongoDB. Cela peut inclure int, float, décimal, double, etc.
  • Convertissez le type de données MySQL Date en Date dans MongoDB. Cela peut inclure la date, l'année, l'horodatage, etc.
  • Convertissez les types de données MySQL Bool & Boolean en Boolean dans MongoDB.
  • Vous pouvez évaluer d'autres cas de la même manière.

Migrer avec un modèle hybride

La conception du modèle hybride intègre les deux modèles de base de données populaires dans un cadre unique tout en atténuant les inconvénients de chaque système. Par exemple, nous pouvons toujours opter pour une approche hybride où nous pouvons exploiter une base de données relationnelle pour des opérations moins exigeantes, en combinaison avec une base de données non relationnelle pour des initiatives gourmandes en données.

Sauvegarde de données

La planification de la stratégie de migration avant l'exécution peut garantir un processus de migration fluide. Cela étant dit, nous devons toujours avoir un plan B. En supposant un scénario du pire des cas où il y a une perte de données, ou les données sont corrompues lors de l'exécution de la migration ; vous devez être prêt à restaurer les données à leur état d'origine avant de réessayer. C'est pourquoi la sauvegarde des données est une étape hautement impérative lors de la DBM (Database Migration). Alors, quelles options existent pour assurer une sauvegarde sécurisée des données, approfondissons-les.

Sauvegarde sur le cloud

sauvegarde sur le cloud

L'une des méthodes les plus efficaces et les plus sécurisées pour protéger votre initiative de migration consiste à exécuter une sauvegarde sur le stockage cloud. Essentiellement, lorsque vous sauvegardez vos données sur un stockage en nuage, vos fichiers sont stockés hors site. Cela élimine les vulnérabilités matérielles locales qui peuvent causer des problèmes. Alors, pourquoi une sauvegarde cloud ?

  • Les sauvegardes dans le cloud sont abordables car vous devez payer uniquement à l'utilisation.
  • Une sauvegarde Cloud est sécurisée car elle fournit un cryptage de bout en bout.
  • Permet une reprise après sinistre et une restauration de données faciles
  • Les options de sauvegarde cloud robustes incluent la sauvegarde complète de l'image système. Ainsi, vous n'avez pas besoin de réinstaller le système d'exploitation. Les ordinateurs et les serveurs sont restaurés à la dernière version fonctionnelle.

Logiciel de partage de fichiers

pourquoi-sauvegarder-dans-le-cloud

Les suites logicielles comme Dropbox se développent pour répondre aux besoins de leurs utilisateurs. Dropbox conserve des versions de fichiers qui peuvent être restaurées si nécessaire. Semblable à la sauvegarde dans le cloud, cette option est abordable et les fichiers sont stockés hors site. Quels sont ses avantages ?

  • Les fichiers peuvent être restaurés sur n'importe quel système à n'importe quel endroit.
  • Il est gratuit et prend en charge la collaboration.
  • Hautement sécurisé (le stockage en nuage crypte vos fichiers en transit)
  • Capacités de travail hors ligne

Un inconvénient, cependant, est que la restauration n'est pas automatisée. Vous devez copier et coller les données dans la structure de répertoires de partage de fichiers afin de sauvegarder les données. Les fichiers doivent résider dans une structure définie, sinon ils ne seront pas sauvegardés. Si les fichiers se trouvent dans un dossier ou un répertoire partagé, vous aurez probablement besoin de plus de bande passante pour sauvegarder ces fichiers.

De manière générale, il existe d'autres supports disponibles pour la sauvegarde, comme une sauvegarde sur un lecteur flash ou un disque dur externe. Mais ces options ne sont pas recommandées car elles ne sont pas entièrement sécurisées par rapport aux logiciels de sauvegarde ou de partage de fichiers dans le cloud. Par exemple, tout dommage physique sur un disque dur peut entraîner une perte de données. De plus, ils sont plus vulnérables et sensibles aux attaques de ransomwares et aux crypto-virus.

Comment s'assurer que les données sont sécurisées ?

Lors de la migration des données, vous devez vous assurer que les données sensibles ne sont pas violées ou altérées. Si la migration se passe mal, cela peut entraîner des conséquences plus importantes et entraîner des fuites ou des pertes de données telles que les exemples cités ici en 2020.

Malheureusement, les fuites de données peuvent nuire à la réputation du client, entraîner une perte d'activité et de clients ; ou dans certains cas, peut provoquer des poursuites judiciaires. Pour éviter toutes ces conséquences, vous devez au préalable établir un plan de sécurité en tenant compte de la stratégie de migration.

  • Pour commencer, un accès au serveur fiable et sécurisé et un accès aux données doivent figurer sur votre liste de priorités.
  • Augmentez le nombre d'autorisations requises pour le transfert de données. Dans les grandes organisations, les services de sécurité limitent l'accès aux serveurs et définissent la migration des données entre les serveurs concernés.
  • Les données sont à haut risque lorsque plusieurs parties sont impliquées. Évitez donc les transferts entre les parties via des périphériques de stockage portables ou des e-mails. Dans de tels cas, les données peuvent être facilement compromises.
  • Pour garantir un accès, un stockage et une récupération sécurisés des données, il faut constamment pratiquer le chiffrement et le déchiffrement. Vous pouvez utiliser des algorithmes de chiffrement hybrides pour assurer une sécurité maximale des données. Mais ce n'est pas recommandé à tout le monde. Si la migration échoue, les données seraient encombrées et pourraient entraîner une corruption ou une perte de données.

Pour assurer une migration sécurisée, évitez d'utiliser des outils primitifs. L'utilisation d'outils primitifs peut affaiblir votre système et laisser des failles auxquelles les pirates peuvent accéder. Vous devez utiliser des outils robustes pour la migration des données qui sont fonctionnellement spécifiques.

Processus de migration des données

La migration des données est principalement un processus en plusieurs phases, et les étapes suivantes doivent être suivies pour éviter la perte de données et assurer une migration sécurisée de la base de données.

  1. Bilan :
  • Recueillez l'analyse des besoins de l'entreprise et définissez l'objectif clé à atteindre avec DBM.
  • Définir le périmètre
  • Effectuez un profilage approfondi des données :
    • Examiner les données source, le format des données, examiner la structure du schéma, le contenu et les relations entre les instances de données
  • Comprendre le système de destination
  • Identifier les parties prenantes
  • Budgétiser l'ensemble de l'activité
  1. Sauvegarde de données
  • Assurez-vous que les données que vous migrez sont sauvegardées en toute sécurité. L'utilisation d'une sauvegarde sur le cloud est recommandée.
  • Assurez-vous que la destination est propre et protégée contre tout piratage de données.
  1. Disponibilité des ressources :
  • Le temps disponible pour la migration et le temps d'arrêt du système de destination.
  • Assurez-vous que la ressource humaine embauchée possède les bonnes compétences.
  • Identifiez le bon outil et les bons scripts.
  1. Exécution de la migration des données :
  • Le processus de migration peut inclure des scripts, des outils ETL ou d'autres outils comparables pour déplacer les données.
  • Au moment de la migration, vous transformerez les données, normaliserez les types de données et enfin, vérifierez les éventuelles erreurs.
  1. Test & Mise au point :
  • L'équipe et l'équipe client doivent être absolument sûres que toutes les données sont correctement migrées
  • Vérifiez donc si les données sont déplacées correctement, si les données sont complètes et assurez-vous qu'il n'y a pas de valeurs manquantes.
  • Assurez-vous également que les données sont valides et ne contiennent aucune valeur nulle.
  • En cas de non-concordance des données, il doit y avoir une restauration des données et l'ensemble du processus doit être redémarré.
  1. Audit

Une fois la nouvelle base de données en ligne, un système peut être mis en place pour auditer les données. Cela garantira l'exactitude de la migration de la base de données et attirera l'attention sur les données incomplètes et inexactes.

Risques potentiels liés à la migration de la base de données

risques-potentiels-avec-la-migration-de-base-de-données

La migration de base de données est une procédure très complexe et elle comporte ses risques et ses incertitudes. Vous pouvez toujours les surmonter par une planification et une exécution appropriées. Les risques pouvant être rencontrés sont :

  • Systèmes sources obsolètes : ici, la source de données peut être obsolète, redondante, obsolète ou triviale
  • Architecture de base de données disparate : dans ce scénario, les bases de données source peuvent être situées à plusieurs endroits et elles peuvent avoir des architectures totalement différentes les unes des autres, mais la base de données de destination a besoin que tout soit synchronisé.
  • Temps d' arrêt prolongé : il y a des cas où la migration planifiée prend plus de temps que prévu, et pour cette raison, il y a un temps d'arrêt prolongé pour le système. Cela pourrait entraîner une perte commerciale pour le client final et pourrait ne pas être acceptable.
  • Perte de données potentielle : toutes les pertes de données ne peuvent pas être identifiées pendant la phase de test. Certaines instances de perte de données peuvent éventuellement être identifiées lorsque le système reçoit suffisamment de trafic.

Migration à partir d'une base de données en temps réel : pour tout site Web à transactions élevées, la migration de la base de données est toujours difficile car des mises à jour constantes des données sont en cours ; et la migration des données en direct et en temps réel n'est pas possible. Il doit y avoir un temps d'arrêt pour que toute migration se produise.

Remarques finales

Vous pouvez toujours demander conseil à des experts tiers sur la migration de base de données. Nous sommes des studios créoles spécialisés dans les migrations de bases de données, et nous serions heureux de vous aider ou de vous conseiller dans une telle entreprise. Restez attaché pour le quatrième et dernier blog de la série sur la migration technologique.