Le Blog Amazon Web Services

Architecture de référence AWS AppSync pour les applications en temps réel

Les applications mobiles et Web doivent offrir aux utilisateurs des expériences engageantes et collaboratives, et pour ce faire, l’accès aux données en temps réel devient essentiel. Les technologies temps réel permettent aux utilisateurs de recevoir des informations au fur et à mesure de leur évolution. Des cas d’utilisation tels que la transmission de scores en direct, les expérience en mode “Second Ecran” ou “TV sociale”, les applications de chat, les tableaux de bord ou toutes sortes d’applications collaboratives ne seraient pas possibles sans les technologies de communication bidirectionnelles telles que le protocole WebSocket.

À mesure que votre base d’applications et d’utilisateurs se développent, la mise en œuvre d’un backend en temps réel à l’échelle devient un problème complexe à résoudre. En effet, vous devez résoudre à l’échelle la problématique d’un nombre très important de connexions en direct, les fonctionnalités de “fan-out”, c’est à dire la transmission d’un nombre importants de messages à un nombre parfois importants de services permettant la construction du message réponse, et les performances continues à mesure que le nombre de clients connectés augmente.

Et si vous pouviez créer et déployer des applications évolutives en temps réel sans vous soucier des serveurs back-end, de la gestion des connexions, de la haute disponibilité et de la fiabilité ? En outre, que se passe-t-il si vous pouviez tirer parti d’une couche de données GraphQL hautement optimisée et robuste pour fournir vos données d’application à vos utilisateurs d’applications frontales ? Cela vous permettrait de passer plus de temps à vous concentrer sur votre logique métier ?

AWS AppSync est un backend GraphQL serverless pour les applications mobiles & Web taillé pour tout type d’usage. Il fournit une couche de données flexible, intelligente et fiable pour accéder à plusieurs sources de données dans votre compte AWS. AWS AppSync tire parti des abonnements, “subscription”, GraphQL pour effectuer des opérations en temps réel en transmettant des données aux clients qui choisissent d’écouter des événements spécifiques émis depuis le backend. Ainsi, vous pouvez facilement et sans effort créer n’importe quelle source de données prise en charge dans AWS AppSync en temps réel. La gestion des connexions est alors gérée automatiquement par le SDK client AWS AppSync ou le client AWS Amplify utilisant WebSocket comme protocole réseau entre le client et le service comme illustré ci-dessous :

AWS AppSync prend en charge la gestion indifférenciée de votre infrastructure backend en temps réel. Cependant, il est important que votre application soit bien conçue de manière à fournir la meilleure expérience possible à vos utilisateurs finaux. C’est pourquoi nous avons partagé une architecture de référence en temps réel AWS AppSync. Elle comprend un exemple de code qui vous aidera à comprendre et à appliquer les meilleures pratiques sur votre prochain projet de développement d’applications en temps réel. Elle est disponible sous GitHub et reprend l’architecture de référence illustrée par la suite :

Pour une explication détaillée de la façon dont toutes les parties du puzzle serverless s’intègrent pour effectuer différents types de use cases en temps réel (un-à-plusieurs et/ou plusieurs-à-plusieurs), consultez l’article connexe sur OpenGraphQL (Article Medium).

Cet article a été écrit par Ed Lima, Solutions Architect at AWS et traduit en français par Maxime Thomas, Partner Solutions architect chez AWS.

Source