Migration

Une checklist zéro interruption pour changer d'hôte d'API

Changer d'hôte d'API en production sans panne est tout à fait possible, mais il faut traiter ce changement comme un déploiement avec son propre profil de risque, et non comme une modification de configuration d'une ligne poussée directement en production. La différence entre une bascule sans heurt et un incident tient presque toujours à la préparation, pas au moment de la bascule elle-même.

Avant la bascule :

  • Obtenez les identifiants du nouvel hôte bien à l'avance, et vérifiez qu'ils fonctionnent dans un environnement de préproduction ou de test avec des schémas de requêtes réels, pas seulement avec un unique appel de test manuel
  • Instrumentez votre application pour journaliser l'hôte qui a servi chaque requête, même temporairement, afin de pouvoir vérifier l'avancement du déploiement et diagnostiquer ensuite tout problème par hôte
  • Vérifiez que votre système de configuration permet de changer la valeur de l'hôte sans redéployer toute l'application, qu'il s'agisse d'une variable d'environnement, d'un feature flag ou d'un service de configuration distant, car un processus qui exige un redéploiement à chaque changement réagit plus lentement si quelque chose tourne mal en pleine bascule

Pendant la bascule :

  • Déployez le changement progressivement plutôt que d'un seul coup si votre infrastructure le permet : un pourcentage du trafic, un serveur ou une région à la fois, ou un endpoint non critique avant les autres
  • Surveillez en temps réel les taux d'erreur et les temps de réponse pendant la fenêtre de déploiement, en les comparant directement à votre référence d'avant la bascule plutôt qu'à une plage supposée acceptable
  • Gardez les identifiants de l'hôte précédent actifs et prêts pendant cette fenêtre, afin qu'un retour en arrière soit un changement de configuration plutôt qu'un nouveau déploiement

Après la bascule :

  • Laissez le nouvel hôte tourner avec la totalité du trafic pendant une période d'observation définie avant de considérer la migration comme terminée, car certains problèmes n'apparaissent que sous une charge soutenue ou à certains moments de la journée
  • Comparez les données de réponse réelles de l'ancien et du nouvel hôte pour un échantillon de requêtes identiques si vous avez journalisé les deux, afin de repérer les différences de données subtiles que les taux d'erreur seuls ne feraient pas apparaître
  • Ne retirez les identifiants de l'ancien hôte qu'une fois la période d'observation écoulée sans problème, à une date précise et décidée plutôt que « un jour »

Comme les hôtes compatibles de My Geocode reproduisent le format exact de requête et de réponse d'un fournisseur, la modification réelle du code lors d'une migration basée sur la compatibilité se limite souvent au nom d'hôte et à l'identifiant d'authentification, ce qui réduit la quantité de nouveau code introduite pendant la partie la plus risquée de la fenêtre de bascule. L'authentification elle-même prend en charge quatre styles, en-tête X-API-Key, Authorization: Bearer, authentification HTTP Basic ou paramètre de requête ; cette partie du changement peut donc souvent être une simple mise à jour de configuration plutôt qu'une modification de code, selon la structure de votre bibliothèque cliente actuelle.

Une migration sans interruption relève moins d'une infrastructure astucieuse que de la discipline : préparez-vous soigneusement, déployez progressivement, surveillez de près, et gardez une porte de sortie jusqu'à être suffisamment confiant pour ne plus en avoir besoin.