Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Branche par modèle d'abstraction
Le motif de figue étrangleur fonctionne bien lorsque vous pouvez intercepter les appels au périmètre du monolithe. Toutefois, si vous souhaitez moderniser des composants qui se trouvent plus profondément dans la pile d'applications existante et qui ont des dépendances en amont, nous vous recommandons le branchement par modèle d'abstraction. Ce modèle vous permet d'apporter des modifications à la base de code existante afin de permettre à la version modernisée de coexister en toute sécurité avec l'ancienne version sans provoquer d'interruption.
Pour utiliser correctement la branche par modèle d'abstraction, procédez comme suit :
-
Identifiez les composants monolithes qui ont des dépendances en amont.
-
Créez une couche d'abstraction qui représente les interactions entre le code à moderniser et ses clients.
-
Lorsque l'abstraction est en place, modifiez les clients existants pour utiliser la nouvelle abstraction.
-
Créez une nouvelle implémentation de l'abstraction avec les fonctionnalités retravaillées en dehors du monolithe.
-
Basculez l'abstraction vers la nouvelle implémentation lorsque vous êtes prête.
-
Lorsque la nouvelle implémentation fournit toutes les fonctionnalités nécessaires aux utilisateurs et que le monolithe n'est plus utilisé, nettoyez l'ancienne implémentation.
Le modèle de branche par abstraction est souvent confondu avec les options de fonctionnalité
Le tableau suivant explique les avantages et les inconvénients de l'utilisation de la branche par modèle d'abstraction.
Avantages | Inconvénients |
---|---|
|
|
L'illustration suivante montre le modèle de branche par abstraction pour un composant de notification dans le monolithe d'assurance. Cela commence par la création d'un résumé ou d'une interface pour la fonctionnalité de notification. Par petits incréments, les clients existants sont modifiés pour utiliser la nouvelle abstraction. Cela peut nécessiter de rechercher dans la base de code les appels aux API liés au composant Notification. Vous créez la nouvelle implémentation de la fonctionnalité de notification sous forme de microservice en dehors de votre monolithe et vous l'hébergez dans l'architecture modernisée. À l'intérieur de votre monolithe, votre interface d'abstraction nouvellement créée agit en tant que courtier et appelle la nouvelle implémentation. Par petits incréments, vous transférez la fonctionnalité de notification vers la nouvelle implémentation, qui reste inactive jusqu'à ce qu'elle soit entièrement testée et prête. Lorsque la nouvelle implémentation est prête, vous basculez votre abstraction pour l'utiliser. Vous souhaiterez utiliser un mécanisme de commutation qui peut être facilement inversé (tel qu'un basculement de fonctionnalité) afin de pouvoir revenir facilement à l'ancienne fonctionnalité en cas de problème. Lorsque la nouvelle implémentation commence à fournir toutes les fonctionnalités de notification à vos utilisateurs et que le monolithe n'est plus utilisé, vous pouvez nettoyer l'ancienne implémentation et supprimer tout indicateur de fonctionnalité de commutation que vous auriez pu implémenter
![Décomposer des monolithes en microservices à l'aide de la branche par modèle d'abstraction](images/branch-by-abstraction.png)