Maison > Article > Périphériques technologiques > Modèle d'architecture : modèle d'étrangleur
Le modèle Strangler est un modèle d'architecture logicielle décrit pour la première fois par Martin Fowler, qui décrit une approche élégante de la migration du système étape par étape plutôt que d'un seul coup. Il doit son nom au figuier étrangleur, une vigne qui grimpe lentement sur l'arbre et finit par prendre sa place. De même, dans un environnement logiciel, le modèle Strangler implique la construction d'un nouveau système autour des limites de l'ancien système, vous permettant de remplacer progressivement des parties de l'ancien système par des composants du nouveau système.
De nombreux ingénieurs logiciels seront confrontés au problème de la migration des systèmes au cours de leur carrière ; la technologie évolue rapidement, les gens ont besoin de temps pour s'adapter et entretenir leurs systèmes, et parfois les systèmes deviennent obsolètes avant même d'être terminés. Le modèle Strangler est une approche qui permet une migration sans avoir à effectuer des modifications ponctuelles et à grande échelle, qui peuvent être très stressantes pour les équipes et souvent vouées à l'échec. Dans le contexte de grands systèmes, ce modèle fonctionne très bien car il permet de gagner en confiance dans la capacité de migrer, offrant ainsi de nombreux petits succès plus difficiles à obtenir lors d'une migration ponctuelle.
L'approche générale consiste à identifier les zones de l'ancien système qui peuvent être remplacées, puis à acheminer progressivement les nouvelles demandes ou fonctionnalités vers le nouveau système. Pendant ce temps, l’ancien système gère toujours les anciennes fonctionnalités. À mesure que le nouveau système devient plus robuste et fonctionnel, de plus en plus de fonctionnalités sont transférées vers le nouveau système jusqu'à ce que l'ancien système puisse être progressivement supprimé en toute sécurité.
Avantages
Migration incrémentielle : par rapport à une version complète à haut risque, vous pouvez migrer progressivement vers un nouveau système, en vous assurant que les nouveaux composants fonctionnent correctement avant de continuer.
RISQUE RÉDUIT : réduisez les risques associés aux changements majeurs en divisant les migrations en morceaux plus petits et gérables.
Maintenir la continuité des activités : pendant le processus de migration, les entreprises peuvent continuer à utiliser les systèmes existants, garantissant ainsi l'absence de perte de fonctionnalité ou de temps d'arrêt.
Facilite la modernisation : ce modèle est particulièrement utile lors de la transition d'une architecture monolithique vers des microservices, car vous pouvez progressivement remplacer les composants monolithiques par des microservices.
Flexibilité : La migration étant progressive, l'équipe peut apporter des ajustements et des améliorations en fonction des retours des premières étapes de migration. Cela s’applique également aux méthodes modernes de développement de logiciels, telles que les méthodes itératives agiles.
Développement parallèle : lors du développement d'un nouveau système, des modifications peuvent toujours être apportées à l'ancien système si nécessaire.
Confiance des parties prenantes : la migration est souvent un gros problème pour les équipes informatiques, d'autant plus qu'elle représente un investissement énorme avec des retours difficiles à mesurer. S’ils sont acceptés, de petits signes de dysfonctionnement peuvent inquiéter tout le monde car, de leur point de vue, il s’agit d’une situation à haut risque. Dans un schéma particulier, avec des blocs plus petits, la pression peut être plus localisée sur un bloc ou un groupe de blocs spécifique. Ceci est très utile pour gérer la pression au sommet.
Concentrez-vous sur la valeur commerciale : en migrant uniquement de petites parties, vous pouvez vous concentrer sur les parties les plus importantes ou sur celles qui bénéficieraient le plus de la migration. En migrant de petites parties d'un système monolithique, vous pouvez ouvrir de nouvelles opportunités commerciales pour votre entreprise, simplifier des points clés, et bien plus encore.
Tradeoffs
Complexité : La gestion simultanée de deux systèmes peut être complexe. Assurer la compatibilité, le routage des demandes et le maintien de l’état entre les deux peut s’avérer difficile.
Remarque : Prenons le cas d'une application Web centralisée moderne où il existe un système existant avec un exécutable et plusieurs bases de données locales. La réconciliation et la gestion des versions de la base de données seront très difficiles.
Consommation de ressources : les anciens et les nouveaux systèmes peuvent devoir fonctionner simultanément, ce qui nécessite une infrastructure et des ressources de maintenance supplémentaires.
Dérive potentielle : à mesure que le développement progresse, il peut y avoir un risque que le nouveau système s'écarte de l'ancien système en termes de caractéristiques ou de fonctionnalités, surtout si des modifications continuent d'être apportées à l'ancien système.
Durée : La transition peut prendre beaucoup de temps, en particulier pour les grands systèmes profondément intégrés. Cette longue période de transition peut entraîner une augmentation des coûts et de l'allocation des ressources pour la migration.
Collaboration en équipe : pour garantir une mise en œuvre réussie du mode exotique, l'équipe doit se mettre d'accord sur les objectifs, la compréhension des systèmes existants et les stratégies de migration.
Conclusion
Dans un monde où le changement est la seule constante, le Strangler Patterndevient un moyen convaincant de gérer l'évolution des systèmes logiciels. En permettant le remplacement progressif des composants des systèmes existants, ce modèle fournit une feuille de route stratégique permettant aux organisations de naviguer dans les complexités du progrès technologique.
La nature incrémentielle du modèle s'aligne sur les pratiques agiles contemporaines, permettant aux équipes de s'adapter, d'inspecter et de s'ajuster pendant le processus de migration. Non seulement cela maintient la continuité des activités, mais cela favorise également la confiance des parties prenantes en démontrant des progrès continus et en réduisant l'anxiété associée aux transformations des systèmes à grande échelle.
Cependant, le Strangler Mode n'est pas sans défis. La complexité du fonctionnement et de la transition progressive entre les deux systèmes ne peut être sous-estimée. Cela nécessite une approche disciplinée de la coordination, des tests approfondis et un œil attentif pour maintenir l’équilibre des fonctionnalités nécessaires.
La clé d'une mise en œuvre réussie du Strangler Pattern réside dans une planification minutieuse, une communication claire et une approche de phase de déploiement qui donne la priorité à la valeur commerciale. Il s’agit d’un exercice d’équilibre entre l’ancien et le nouveau, la vitesse et la stabilité, l’investissement et le rendement.
En tant qu'ingénieurs logiciels, le Strangler Pattern nous fournit un cadre pragmatique pour garantir que nos systèmes peuvent évoluer sans perturber les services importants qu'ils fournissent. Dans le cycle de vie d'un logiciel, le modèle Strangler n'est pas seulement une méthode de migration du système, il reflète également la nature évolutive de la technologie elle-même. Son objectif est de garantir qu'à mesure que nos logiciels évoluent, ils continuent de répondre aux besoins changeants de l'entreprise, en restant solides, pertinents et résilients face au changement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!