Comment Expedia a personnalisé sa gestion de configuration

Expedia gestion configuration

Pour faciliter l’intégration de clients sur sa plate-forme de services B2B, Expedia a standardisé et centralisation la gestion de configuration.

Utiliser des solutions open source comme etcd et Zookeeper ? Expedia y a songé pour moderniser sa gestion de configuration. Mais à défaut de typage fort, il n’a pas suivi cette voie.

Le projet a alimenté l’approche « plate-forme » à travers laquelle le groupe ouvre ses services par API et/ou sous marque blanche. Il a permis de modéliser, sous forme de configurations, les spécificités de chaque client/partenaire.

Sur la stack existante, les configurations étaient éparpillées entre différents systèmes, avec divers modèles de données, quand elles n’étaient pas tout simplement codées en dur. Intégrer un partenaire nécessitait d’autant plus d’efforts.

La version modernisée centralise le stockage, la gestion et la distribution des configurations. Celles-ci permettent par exemple de faire varier, sur un service de réservation de vols, les devises acceptées ou les compagnies aériennes proposées.

plan de contrôle

Un modèle centralisé… ou presque

Les règles et contraintes que définissent les propriétaires des services (exemple : exiger un code ISO 4217 pour les devises) sont codifiées sous forme de schéma JSON. Cela permet de spécifier :

– Les propriétés que doit avoir un objet
– Le type et le format de chaque propriété
– Les valeurs autorisées ou exigées pour chacune
– Comment gérer les erreurs et les données manquantes

Une API permet aux owners de publier leurs schémas, avec validation de syntaxe. Il existe une API secondaire pour invoquer des fonctions personnalisées afin d’effectuer des vérifications supplémentaires. Par exemple, sur un service de paiement, valider la configuration auprès d’un fournisseur tiers.

Le système permet à une configuration de pointer vers d’autres – intégralement ou partiellement. Et ainsi de constituer des hiérarchies. Les updates sont diffusés vers des agents de synchronisation localisés sur les infrastructures des clients.

Expedia distribution configuration

Un tel modèle est, en théorie, unifié et centralisé. Dans la pratique, autant pour des raison techniques que des considérations de propriété, il ne peut s’appuyer sur un seul système physique. Expedia a donc mis en place une fédération permettant aux responsables de services de continuer à utiliser leurs mécanismes de configuration.

fournisseurs de configurations

Illustration principale générée par IA