Le type de migration est déterminé par ce que vous déplacez et les environnements impliqués. Chaque type a ses propres considérations techniques, modes de défaillance et exigences de planification. Comprendre quel type, ou combinaison de types, s’applique à votre projet est l’une des premières décisions que votre stratégie de migration doit prendre.
Migrations de bases de données
Une migration de base de données transfère des données ou des applications entre deux systèmes de base de données, soit pour changer de fournisseur, soit pour mettre à niveau le logiciel de base de données. Les facteurs déclenchants courants sont les annonces de fin de vie d’un fournisseur de bases de données, les modifications des coûts de licence, les limitations de performance de la plateforme actuelle ou le passage à des alternatives open source.
Les différences entre les schémas sont la principale source de complexité. Deux bases de données peuvent stocker des données conceptuellement similaires de manière structurellement incompatible, notamment :
- Différents types de données
- Conventions de nom
- Règles de contrainte
- Approches d’indexation
Les procédures stockées et les fonctions personnalisées écrites dans le dialecte d’une base de données nécessitent souvent une réécriture pour le système cible.
Les dépendances applicatives compliquent la tâche. La plupart des bases de données de production sont utilisées par plusieurs applications qui les lisent et les écrivent. Chacune de ces applications doit être testée par rapport à la base de données cible avant le basculement, et toutes les requêtes qui reposent sur un comportement spécifique au fournisseur doivent être identifiées et réécrites. Le fait de manquer cette étape est l’une des raisons les plus courantes pour lesquelles les migrations de bases de données échouent après coup.
Que faut-il surveiller ?
- Des conversions implicites de types de données qui se comportent différemment selon les plateformes
- Différences d’encodage des caractères (UTF-8 et Latin-1, par exemple) qui corrompent les données textuelles
- Comportements de séquence et d’incrémentation automatique qui ne se transfèrent pas proprement entre les fournisseurs
- Déclencheurs et procédures stockées écrits dans des dialectes SQL spécifiques au fournisseur
Migrations vers le cloud
Les migrations cloud déplacent les données ou les applications des environnements sur site vers l’infrastructure cloud, ou entre les fournisseurs de cloud. Elles sont souvent les plus volumineuses et les plus complexes sur le plan organisationnel, car elles impliquent souvent des migrations de bases de données, des migrations de stockage et des migrations d’applications exécutées en parallèle.
Les migrations de type « lift-and-shift », qui déplacent les charges de travail vers le cloud avec un minimum de modifications, sont les plus rapides à exécuter, mais laissent souvent en place des problèmes de performances et de coûts. Le remaniement ou le remaniement des charges de travail pour tirer parti des services cloud natifs augmente la complexité de la migration, mais produit généralement de meilleurs résultats à long terme.
Les exigences de conformité, les règles de résidence des données et la latence du réseau ajoutent des dimensions auxquelles les migrations purement sur site ne sont pas confrontées. Le RGPD, l’HIPAA et d’autres réglementations peuvent restreindre le lieu de transit ou de résidence des données, même temporairement. Pour les organisations qui déplacent de gros ensembles de données, la bande passante réseau peut devenir un véritable goulet d’étranglement. Certaines migrations sont plus rapides et moins coûteuses en utilisant des services de transfert de données physiques que la transmission par câble.
Les migrations de cloud à cloud (passage entre AWS, Microsoft Azure et Google Cloud, par exemple) sont de plus en plus fréquentes à mesure que les organisations réévaluent les relations avec les fournisseurs ou consolident les environnements multi-cloud. Ces migrations nécessitent de comprendre les dépendances de services propriétaires qui se sont accumulées dans le cloud source, les API de stockage d’objets, les services de base de données managés, les fonctions sans serveur et de déterminer si des services équivalents existent sur le site de destination.
Que faut-il surveiller ?
- Coûts de sortie qui gonflent considérablement le budget de migration
- Dépendances de service propriétaires qui n’ont pas d’équivalent direct chez le fournisseur cible
- Résidence des données en conflit avec les exigences de conformité
- Impacts de latence sur les applications conçues pour un accès on-premises à faible latence
Migrations du stockage
Les migrations de stockage déplacent les données des baies de stockage existantes vers de nouveaux matériels. Ils font partie des types de migration les plus courants dans les environnements d’entreprise, en raison des cycles d’actualisation matérielle, des besoins d’extension de capacité et du passage des architectures à disques rotatifs aux architectures 100 % flash.
Contrairement aux migrations de bases de données ou d’applications, les migrations de stockage n’impliquent pas intrinsèquement la transformation des données. Le format des données ne change pas ; vous déplacez des blocs ou des fichiers d’un emplacement physique à un autre. Mais le risque opérationnel est tout aussi réel. Toute migration de baie de stockage qui interrompt l’accès aux données de production affecte chaque application et chaque utilisateur en fonction de ce stockage.
Les migrations basées sur l’hôte utilisent un logiciel exécuté sur le serveur pour copier les données de la source vers le stockage cible. Ils sont flexibles et ne nécessitent pas de matériel spécialisé, mais consomment des ressources de processeur et de mémoire du serveur pendant la migration. Les migrations basées sur des baies utilisent des capacités de réplication intégrées au matériel de stockage, ce qui génère généralement moins de frais généraux côté hôte et prend en charge le basculement sans interruption.
Pour les organisations qui utilisent des baies 100 % flash, les migrations de stockage coïncident souvent avec un effort de modernisation de l’infrastructure plus large. Passer d’un stockage sur disque hybride ou rotatif à un stockage 100 % flash modifie considérablement les caractéristiques de performance : les applications qui ont été conçues pour un stockage à latence plus élevée peuvent nécessiter une reconfiguration pour tirer pleinement parti du nouvel environnement.
Que faut-il surveiller ?
- Configuration multi-chemins d’hébergement qui doit être mise à jour lorsque les cibles de stockage changent
- Applications dotées de chemins de stockage codés en dur qui se rompent après la migration
- Différences de performances entre les baies source et cible qui affectent le comportement des applications
- Planification de la capacité qui tient compte de différents taux de réduction des données entre l’ancien et le nouveau matériel
Migrations d’applications
Les migrations d’applications déplacent les applications entre les environnements, sur site vers le cloud, dans le cloud vers le cloud ou vers une nouvelle plateforme SaaS. Il s'agit du type de migration le plus complexe à planifier et à exécuter, car ils déclenchent presque toujours les migrations de base de données et de stockage en tant que dépendances.
La complexité se complique rapidement. La migration d’un système ERP, par exemple, peut nécessiter la migration de sa base de données sous-jacente, du stockage sur lequel il s’exécute, des services réseau dont il dépend et des intégrations qu’il maintient avec d’autres applications, chacune ayant ses propres exigences de migration et ses propres contraintes de séquençage.
Les migrations d’applications présentent également le risque le plus élevé, quel que soit le type de migration, car elles affectent directement les utilisateurs et les processus métier. Une migration de stockage mal effectuée est un problème d’infrastructure. Une migration d’application mal effectuée perturbe les flux de travail dont les utilisateurs dépendent pour faire leur travail.
Les migrations SaaS, qui passent d’une application autogérée à un service cloud géré par le fournisseur, présentent un ensemble de défis différent. Vous migrez souvent vers un environnement multi-locataire avec des options de personnalisation limitées, ce qui signifie évaluer si la plateforme cible peut réellement prendre en charge vos flux de travail actuels avant le transfert de données.
Que faut-il surveiller ?
- Intégrations tierces qui se connectent à l’application via des API documentées ou non documentées
- Dépendances d’authentification des utilisateurs (LDAP, Active Directory) qui doivent être répliquées ou migrées
- Configurations et extensions personnalisées qui ne peuvent pas être transférées vers l’environnement cible
- Exigences de formation de l’utilisateur final qui doivent être prises en compte dans le calendrier du projet