Guide · Cloud
Guide de migration vers le cloud pour les entreprises, de l'évaluation à la bascule
Une migration est une suite de décisions, dont la plupart sont prises avant que le moindre serveur ne soit déplacé. Ce guide présente les phases, le choix de la région et de la résidence des données, ainsi que les pratiques qui permettent un week-end de bascule sans incident.
À quoi sert un guide de migration
Les entreprises migrent rarement une seule fois. Elles migrent un premier système, en tirent des enseignements, puis migrent les dix suivants. Un guide de migration consigne ces enseignements pour que la deuxième vague soit plus rapide et plus sûre que la première : comment les systèmes sont évalués, à quoi ressemble la landing zone, comment se déroule une bascule et ce que signifie « terminé ». Ce guide est celui qui nous sert de point de départ avec nos clients ; il doit être adapté à votre organisation plutôt que suivi à la lettre.
Deux principes le sous-tendent. Premièrement, migrer la fonction métier plutôt que le serveur : la question est de savoir comment une application et ses données continuent de servir les utilisateurs, et non comment copier une machine virtuelle. Deuxièmement, garder chaque étape réversible jusqu’au moment où elle est délibérément rendue définitive.
Les phases
Chaque phase se termine par une décision clairement identifiable par le comité de pilotage. Les phases se chevauchent d’une vague à l’autre : la deuxième vague est évaluée pendant la migration de la première.
- 1
Évaluer
Inventoriez chaque application avec son responsable, ses dépendances, la classification de ses données, ses intégrations, ses licences et son infrastructure actuelle. Regroupez les applications en vagues selon leurs dépendances et leur niveau de risque. Décidez du traitement de chacune : réhéberger (déplacer en l’état), changer de plateforme (petites modifications, par exemple une base de données managée), refactoriser (conteneuriser ou revoir l’architecture), remplacer (SaaS) ou retirer. Livrable : un plan de vagues avec le traitement retenu et un premier business case.
- 2
Planifier
Pour la première vague, concevez l’architecture cible, le chemin réseau depuis vos locaux, la gestion des identités (SSO pour les personnes, rôles pour les charges de travail), la méthode de migration des données et le mode de bascule de chaque application. Rédigez les critères de recette à ce stade : quels tests, quels utilisateurs, quels rapports doivent concorder. Livrable : une conception par application et une trame de runbook.
- 3
Construire la landing zone
Créez sous forme de code la structure des comptes, le réseau, la gestion des identités, la journalisation, les référentiels de sécurité, la sauvegarde et le contrôle des coûts avant l’arrivée de toute charge de travail. C’est le socle sur lequel reposent toutes les vagues suivantes ; il vaut donc la peine de le construire correctement, une fois pour toutes. Livrable : un environnement géré par Terraform qui satisfait à ses propres contrôles de conformité.
- 4
Migrer par vagues
Migrez d’abord les environnements hors production, puis la production, une vague à la fois. Répliquez les données en continu lorsque le mode de bascule l’exige, exécutez les tests de recette dans l’environnement cible sur des données réelles et corrigez ce qui ne fonctionne pas avant que quiconque ne soit touché. Livrable : un environnement cible recetté, l’ancien système étant toujours en service.
- 5
Basculer
Exécutez le runbook répété : gel des modifications, synchronisation finale des données, bascule du trafic, vérification et annonce. Laissez l’environnement source intact et prêt pour un retour arrière pendant une période convenue. Livrable : la production fonctionne dans l’environnement cible et le point de décision de retour arrière a été explicitement franchi.
- 6
Optimiser
Après la stabilisation, ajustez ce qui avait été surdimensionné par précaution, migrez les charges de travail éligibles vers des services managés ou des conteneurs, appliquez une tarification avec engagement lorsque l’usage est prévisible et décommissionnez le système source. Livrables : une base de référence des coûts d’exploitation et les enseignements intégrés au playbook pour la vague suivante.
Choix de la région et résidence des données
Le choix de la région vient en premier. Une région située dans le pays, lorsqu’elle existe, offre plusieurs zones de disponibilité pour la résilience et une faible latence pour les utilisateurs locaux. La région AWS Asie-Pacifique (Bangkok) (ap-southeast-7) en est un exemple : elle offre aux organisations ayant des utilisateurs en Thaïlande un choix qui n’existait pas pendant la majeure partie de l’ère du cloud, au lieu de desservir le pays depuis Singapour. Pour les systèmes sensibles à la latence et pour les organisations dont les politiques ou les régulateurs préfèrent que les données restent dans le pays, une région nationale constitue le point de départ par défaut.
Deux précautions s’imposent. Les régions récentes ne proposent pas tous les services dès leur ouverture ; vérifiez la liste des services de la région pour chaque service managé prévu dans la conception avant de vous engager, et préparez une solution de repli (un autre service, ou une autre région pour ce composant). La résidence des données est par ailleurs une décision de politique avant d’être une décision technique : les lois sur la protection des données personnelles telles que le PDPA autorisent les transferts transfrontaliers sous conditions, et les régulateurs sectoriels, dans les services financiers par exemple, peuvent avoir leurs propres exigences. Consignez par écrit les catégories de données qui doivent rester dans le pays et celles qui peuvent être répliquées à l’étranger pour la reprise après sinistre, et faites-le confirmer par les équipes juridique et conformité. Traduisez-le ensuite en restrictions de région dans les politiques de l’organisation, afin qu’une ressource mal placée soit empêchée plutôt que découverte après coup.
La reprise après sinistre mérite la même clarté. Au sein d’une région, plusieurs zones de disponibilité protègent contre la défaillance d’un site. Pour se prémunir contre un événement régional, décidez si une seconde région est acceptable pour les sauvegardes ou un environnement de secours, laquelle, et quels objectifs de délai et de point de reprise l’entreprise est prête à financer.
Terraform : la landing zone sous forme de code
Tout ce qui, dans la landing zone, peut être défini sous forme de code doit l’être : comptes et politiques organisationnelles, réseaux et routage, identités et rôles, journalisation et pistes d’audit, clés de chiffrement, politiques de sauvegarde, budgets et alertes. Terraform est notre outil de prédilection, car il est déclaratif, indépendant des fournisseurs et peut être relu dans le même flux de pull requests que le code applicatif.
Quelques pratiques permettent de garder le tout maîtrisable. Stockez l’état à distance avec verrouillage, un état par environnement et par composant logique, afin qu’une erreur à un endroit ne puisse pas en corrompre un autre. Créez de petits modules bien nommés pour les éléments créés de façon répétée (un service avec sa définition de conteneur, sa règle d’équilibreur de charge, son rôle IAM et son groupe de journaux) et versionnez-les. Étiquetez chaque ressource avec son responsable, son environnement, son application et son centre de coûts à partir d’un module d’étiquetage unique, car la maîtrise des coûts en dépendra. Exécutez un plan à chaque modification, exigez une relecture et appliquez depuis un pipeline plutôt que depuis un poste personnel. Détectez les dérives de manière planifiée et traitez les modifications manuelles dans la console comme des incidents à régulariser, et non comme la nouvelle norme.
Résultat : l’environnement de la deuxième vague n’est plus un projet, mais une simple pull request.
Comparaison des modes de bascule
Choisissez un mode par application plutôt que pour l’ensemble du programme. La tolérance à l’interruption, le volume de données et la façon dont le trafic atteint le système déterminent le mode adapté.
| Mode | Fonctionnement | Idéal pour | Interruption et retour arrière |
|---|---|---|---|
| Big bang (hors ligne) | Arrêt de la source, copie des données, démarrage de la cible, bascule du DNS ou des points de terminaison. | Petits systèmes, traitements par lots, outils internes disposant d’une fenêtre de maintenance. | L’interruption dure le temps de la copie. Le retour arrière est simple : on repointe vers la source restée intacte. |
| Répliquer, puis basculer | Réplication continue de la base de données vers la cible (par exemple avec un service de réplication managé) pendant que la source reste en service ; synchronisation finale et bascule au moment du basculement. | Bases de données et ERP pour lesquels une longue interruption est inacceptable mais une courte est tolérable. | Quelques minutes d’interruption. Le retour arrière exige une réplication inverse ou l’acceptation d’une perte des données saisies depuis la bascule ; à décider à l’avance. |
| Blue-green | Environnement cible entièrement construit et testé à côté de la source ; trafic basculé en une seule étape au niveau de l’équilibreur de charge ou du DNS. | Charges de travail sans état et couche web ; applications dont la couche de données a déjà été migrée. | Quasi nulle. Le retour arrière consiste à effectuer la même bascule en sens inverse, tant que la couche de données est partagée ou synchronisée. |
| Canary / pondéré | Une faible part du trafic (par pondération, région ou groupe d’utilisateurs) est dirigée vers la cible, puis augmentée à mesure que la confiance grandit. | Applications destinées aux clients avec de nombreux utilisateurs ; détection des problèmes avant qu’ils ne touchent tout le monde. | Aucune, par conception. Le retour arrière consiste à réduire la pondération. Exige une gestion des sessions et une cohérence des données des deux côtés. |
| Strangler (progressif) | Redirection d’une fonction à la fois vers de nouveaux services dans la cible ; le système historique se réduit jusqu’à son retrait. | Grands monolithes en cours de refactorisation ; programmes de modernisation pluriannuels. | Aucune à chaque étape. Le retour arrière se fait fonction par fonction. Le plus lent au total, le moins risqué par changement. |
Répéter le retour arrière
Chaque runbook comporte une section consacrée au retour arrière ; peu d’équipes l’ont réellement exécutée. Répétez la bascule complète au moins une fois hors production, avec les mêmes personnes, la même liste de contrôle et un chronomètre, puis répétez le retour arrière. Définissez les critères de go/no-go avant le jour J (quels tests doivent réussir, quelles parties prenantes doivent confirmer, avant quelle heure) et désignez la seule personne qui prend la décision. Fixez explicitement le point de non-retour : le moment à partir duquel de nouvelles transactions n’existent que dans la cible et où revenir en arrière implique de rapprocher les données à la main.
Pendant la bascule réelle, communiquez selon un calendrier fixe plutôt qu’au gré des événements : un point d’étape toutes les trente minutes, même pour indiquer que tout se déroule comme prévu, rassure les métiers et permet à l’équipe de rester concentrée. Ensuite, organisez un bref retour d’expérience tant que les détails sont frais et mettez à jour le guide.
Maîtriser les coûts dès le premier jour
Les factures cloud augmentent par défaut et ne baissent que si quelqu’un en a la responsabilité. Mettez en place ces contrôles avant la première charge de travail en production.
- Des budgets avec alertes par compte et par application, visibles par le responsable de l’application comme par la direction financière.
- Des étiquettes obligatoires imposées par politique, afin que chaque dépense puisse être attribuée.
- Des environnements hors production arrêtés automatiquement en dehors des heures de travail, ou créés à la demande avec Terraform.
- Des revues de dimensionnement un mois après chaque vague, car les migrations sont dimensionnées pour la sécurité plutôt que pour l’efficacité.
- Une tarification avec engagement (savings plans ou capacité réservée) uniquement une fois l’utilisation stable et bien comprise.
- Des règles de cycle de vie du stockage : journaux, sauvegardes et instantanés passent vers des niveaux moins coûteux et expirent selon un calendrier.
- Des services managés et des conteneurs là où le gain opérationnel est réel ; refondre l’architecture n’est pas une condition préalable à la baisse des coûts.
- Une revue mensuelle des coûts menée avec la même rigueur que la revue de disponibilité.
Un second avis sur votre plan de vagues
Transmettez-nous votre plan de vagues et nous vous dirons ce que nous ferions différemment. Notre équipe Cloud et infrastructure construit des environnements AWS gérés par Terraform et mène des migrations pour les entreprises, y compris vers la région AWS Asie-Pacifique (Bangkok).