Magasin de données - Implémentation des microservices sur AWS

Magasin de données

Le magasin de données est utilisé pour conserver les données nécessaires aux microservices. Les magasins les plus populaires pour les données de session sont des caches en mémoire tels que Memcached ou Redis. AWS propose les deux technologies dans le cadre du service géré Amazon ElastiCache.

L'intégration d'un cache entre les serveurs d'application et une base de données est un mécanisme courant qui permet de réduire la charge de lecture sur la base de données, ce qui, en retour, permet aux ressources d'être utilisées pour prendre en charge plus d'écritures. Les caches peuvent également améliorer la latence.

Les bases de données relationnelles sont toujours très populaires pour stocker les données structurées et les objets métier. AWS propose six moteurs de base de données (Microsoft SQL Server, Oracle, MySQL, MariaDB, PostgreSQL et Amazon Aurora) en tant que services managés via Amazon Relational Database Service (Amazon RDS).

Les bases de données relationnelles, toutefois, ne sont pas conçues pour une mise à l'échelle illimitée, ce qui peut rendre difficile et énergivore le recours à des techniques pour prendre en charge un grand nombre de demandes.

Les bases de données NoSQL ont été conçues pour favoriser la capacité de mise à l'échelle, les performances et la disponibilité à la cohérence des bases de données relationnelles. Un des aspects importants réside dans le fait que les bases de données NoSQL n’imposent pas de schéma strict. Les données sont réparties entre les partitions qui peuvent être mises à l’échelle horizontalement, et sont récupérées à l’aide des clés de partition.

Étant donné que chacun des microservices est conçu pour n'avoir qu'une seule utilité, ils ont généralement un modèle de données simplifié qui peut être parfaitement adapté à la persistance NoSQL. Il est important de comprendre que les bases de données NoSQL présentent des modèles d’accès différents de ceux des bases de données relationnelles. Par exemple, il est impossible de joindre des tables. Si cela s’avère nécessaire, la logique doit être implémentée dans l’application. Vous pouvez utiliser Amazon DynamoDB pour créer une table de base de données dotée de capacités de stockage et d'extraction de données, quels que soient le volume et le nombre de requêtes. DynamoDB offre des performances de latence de l'ordre de quelques millisecondes ; toutefois, certains cas d'utilisation requièrent des temps de réponse de l'ordre de microsecondes. Amazon DynamoDB Accelerator (DAX) fournit des fonctionnalités de mise en cache pour accéder aux données.

DynamoDB offre également une fonctionnalité de mise à l’échelle automatique pour ajuster dynamiquement la capacité de débit en fonction du trafic réel. Toutefois, dans certains cas, la planification des capacités est difficile ou impossible en raison de pics d’activité importants et brefs dans votre application. Pour de telles situations, DynamoDB offre une option à la demande, qui s’accompagne d’une tarification à la demande simple. DynamoDB à la demande est capable de répondre instantanément à des milliers de requêtes par seconde sans planification de capacité.