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.
Permettre la persistance des données dans les microservices
Tabby Ward et Balaji Mohan, Amazon Web Services () AWS
Décembre 2023 (historique du document)
Organisations recherchent constamment de nouveaux processus pour créer des opportunités de croissance et réduire les délais de commercialisation. Vous pouvez améliorer l'agilité et l'efficacité de votre organisation en modernisant vos applications, logiciels et systèmes informatiques. La modernisation vous permet également de fournir des services plus rapides et de meilleure qualité à vos clients.
La modernisation des applications est une passerelle vers l'amélioration continue pour votre organisation. Elle commence par la refactorisation d'une application monolithique en un ensemble de microservices développés, déployés et gérés de manière indépendante. Ce processus comporte les étapes suivantes :
-
Décomposer les monolithes en microservices : utilisez des modèles pour décomposer les applications monolithiques en microservices.
-
Intégrer les microservices : intégrez les microservices nouvellement créés dans une architecture de microservices en utilisant les services sans serveur Amazon Web Services (AWS)
. -
Activez la persistance des données pour l'architecture des microservices : encouragez la persistance polyglotte au
sein de vos microservices en décentralisant leurs magasins de données.
Bien que vous puissiez utiliser une architecture d'application monolithique dans certains cas d'utilisation, les fonctionnalités des applications modernes ne fonctionnent souvent pas dans une architecture monolithique. Par exemple, l'application dans son intégralité ne peut pas rester disponible lorsque vous mettez à niveau des composants individuels, et vous ne pouvez pas redimensionner les composants individuels pour résoudre les problèmes ou les points chauds (zones relativement denses dans les données de votre application). Les monolithes peuvent devenir des applications volumineuses et difficiles à gérer, et plusieurs équipes doivent déployer des efforts et une coordination importants pour introduire de petits changements.
Les applications existantes utilisent généralement une base de données monolithique centralisée, ce qui complique les modifications de schéma, crée un blocage technologique, la mise à l'échelle verticale étant le seul moyen de répondre à la croissance, et impose un point de défaillance unique. Une base de données monolithique vous empêche également de créer les composants décentralisés et indépendants nécessaires à la mise en œuvre d'une architecture de microservices.
Auparavant, une approche architecturale classique consistait à modéliser toutes les exigences des utilisateurs dans une seule base de données relationnelle utilisée par l'application monolithique. Cette approche était soutenue par l'architecture de base de données relationnelle populaire, et les architectes d'applications concevaient généralement le schéma relationnel dès les premières étapes du processus de développement, élaboraient un schéma hautement normalisé, puis l'envoyaient à l'équipe de développement. Cela signifie toutefois que c'est la base de données qui a piloté le modèle de données pour le cas d'utilisation de l'application, et non l'inverse.
En choisissant de décentraliser vos magasins de données, vous favorisez la persistance polyglotte au sein de vos microservices et vous identifiez votre technologie de stockage de données en fonction des modèles d'accès aux données et des autres exigences de vos microservices. Chaque microservice possède son propre magasin de données et peut être dimensionné indépendamment avec des modifications de schéma à faible impact, et les données sont protégées via l'API du microservice. Décomposer une base de données monolithique n'est pas chose facile, et l'un des plus grands défis consiste à structurer vos données pour obtenir les meilleures performances possibles. La persistance polyglotte décentralisée entraîne également généralement une éventuelle cohérence des données, et d'autres défis potentiels nécessitant une évaluation approfondie incluent la synchronisation des données pendant les transactions, l'intégrité transactionnelle, la duplication des données, les jointures et la latence.
Ce guide s'adresse aux propriétaires d'applications, aux chefs d'entreprise, aux architectes, aux responsables techniques et aux chefs de projet. Le guide propose les six modèles suivants pour permettre la persistance des données dans vos microservices :
-
-
Pour les étapes à suivre pour implémenter le saga modèle en utilisantAWS Step Functions, voir le modèle Implémenter le saga modèle sans serveur en l'utilisant AWS Step Functions sur le site Web du guide AWS prescriptif.
-
Le guide fait partie d'une série de contenus qui couvre l'approche de modernisation des applications recommandée parAWS. La série inclut également :
Résultats commerciaux ciblés
De nombreuses entreprises constatent que les applications, les bases de données et les technologies monolithiques ont un impact négatif sur l'innovation et l'amélioration de l'expérience utilisateur. Les applications et bases de données existantes réduisent les possibilités d'adoption de cadres technologiques modernes et limitent votre compétitivité et votre innovation. Cependant, lorsque vous modernisez les applications et leurs magasins de données, elles deviennent plus faciles à faire évoluer et plus rapides à développer. Une stratégie de données découplées améliore la tolérance aux pannes et la résilience, ce qui permet d'accélérer le délai de commercialisation des nouvelles fonctionnalités de votre application.
Vous devez vous attendre à obtenir les six résultats suivants en promouvant la persistance des données dans vos microservices :
-
Supprimez les anciennes bases de données monolithiques de votre portefeuille d'applications.
-
Améliorez la tolérance aux pannes, la résilience et la disponibilité de vos applications.
-
Réduisez le délai de mise sur le marché des nouvelles fonctionnalités de l'application.
-
Réduisez l'ensemble de vos dépenses de licence et de vos coûts d'exploitation.
-
Tirez parti des solutions open source (par exemple, MySQL
ou PostgreSQL ). -
Créez des applications hautement évolutives et distribuées en choisissant parmi plus de 15 moteurs de base de données spécialement conçus sur le cloud
. AWS