Stratégies de Migration : quitter le legacy sans tout casser
Chaque organisation mature possède des systèmes legacy. La question n'est jamais de savoir s'il faut moderniser mais comment le faire sans arrêter la livraison de valeur métier. Le cimetière des réécritures "big bang" échouées est vaste. Les stratégies incrémentales gagnent.
Comparaison des patterns de migration
| Pattern | Approche | Risque | Durée | Taille équipe | Rollback |
|---|---|---|---|---|---|
| Strangler Fig | Remplacer pièce par pièce derrière une façade | Faible | Long (mois-années) | Petite-Moyenne | Par composant |
| Branch by Abstraction | Abstraire les interfaces, échanger les implem. | Faible-Moyen | Moyen | Moyenne | Par abstraction |
| Parallel Run | Ancien et nouveau en simultané, comparer | Moyen | Moyen | Grande | Instantané (garder l'ancien) |
| Big Bang Rewrite | Tout remplacer d'un coup | Très élevé | Long | Grande | Tout ou rien |
| Lift and Shift | Déplacer tel quel vers nouvelle infra | Faible | Court | Petite | Facile |
Matrice d'évaluation des risques
| Facteur de risque | Faible (1) | Moyen (2) | Élevé (3) |
|---|---|---|---|
| Complexité des données | Schémas simples, peu de relations | Schémas modérés, couplage partiel | Schémas complexes, références croisées |
| Nombre d'intégrations | 0-3 systèmes en aval | 4-10 systèmes en aval | 10+ systèmes en aval |
| Connaissance du domaine | Bien documenté, équipe connaît | Docs partielles, savoir tribal | Pas de docs, équipe originale partie |
| Criticité métier | Outil interne | Support du revenu | Critique revenu, SLA lié |
| Couverture de tests | > 70% | 30-70% | < 30% ou inconnue |
| Volume de données | < 10Go | 10Go-1To | > 1To |
| Contraintes réglementaires | Aucune | Piste d'audit nécessaire | Certification conformité requise |
Score : 7-10 = Strangler Fig ou Lift-and-Shift, 11-16 = Branch by Abstraction ou Parallel Run, 17-21 = commencer par une phase d'évaluation.
Le piège de la parité fonctionnelle
Effort ▲
│ ╱ "Encore une fonctionnalité"
│ ╱ avant de pouvoir basculer
│ ╱
│ ╱ ← Zone piège : le legacy
│ ╱ continue d'évoluer
│ ╱
│ ●────╱── Bascule prévue (ratée)
│ ╱
│ ╱
│ ╱
│ ╱
└──────────────────────────────────────────► Temps
Solution : Définir un ensemble de fonctionnalités GELÉ.
Les nouvelles fonctionnalités vont uniquement au nouveau système.
Principes clés
Migrer les données en dernier. Déplacez le routage et le calcul d'abord. La migration de données est l'étape la plus risquée et la plus irréversible.
Mesurer la parité, ne pas la ressentir. Définissez des critères quantitatifs : latence P99, taux d'erreur, débit. "Ça semble marcher" n'est pas un critère de migration.
Budgéter la longue traîne. Les derniers 10% de la migration prennent 50% de l'effort. Les cas limites et comportements non documentés vivent dans cette traîne.