Console Web Stax: un Journey GraphQL sans serveur
Ce message détaille les défis et les succès de la construction de la console Web de Stax, une application performante et intuitive pour gérer une plate-forme complexe sans serveur. L'accent est mis sur le passage à une API GraphQL sans serveur à l'aide d'AWS AppSync, améliorant une architecture API REST initiale.
L'avantage sans serveur
La décision de créer une solution sans serveur dès le départ a motivé les avantages inhérents d'AWS Lambda pour l'évolutivité, la fiabilité et la sécurité. Cette aérienne d'infrastructure minimisée, permettant à l'équipe de se concentrer sur le développement et le déploiement, plutôt que sur la gestion des serveurs. La mise à l'échelle horizontale des fonctions de lambda a assuré des performances cohérentes même dans les charges de pointe, contribuant directement à la rencontre des accords au niveau du service. Les fonctionnalités de sécurité AWS inhérentes ont également simplifié la conformité.
Évolution du repos à graphQl
L'architecture basée sur l'API REST initiale, bien que des limitations efficaces, présentées: gestion de l'état complexe dans le frontend React, couplage serré conduisant à l'instabilité pendant le développement des fonctionnalités et la nécessité d'une implémentation WebSocket personnalisée pour les mises à jour en temps réel. Ces défis, associés à la nécessité de s'intégrer à plusieurs services backend, ont conduit à l'adoption d'une API GraphQL en utilisant le modèle Backend for Frontend (BFF).
La capacité de GraphQL à récupérer les données à partir de diverses sources avec une seule requête, simplifiant l'authentification et permettant une refactorisation indépendante des services backend, s'est avérée inestimable. AWS Appsync, un service GraphQL sans serveur entièrement géré, est devenu le cœur de cette nouvelle architecture, tirant parti d'AWS Lambda pour les fonctions de résolveur, DynamoDB pour le stockage de données et EventBridge pour les mises à jour pilotées par des événements.
Tiration de la propre API de Stax
L'approche API-First de Stax a permis à l'équipe de "Dogfood" sa propre API REST pendant le développement de la console, l'amélioration du contrôle de la qualité et de la documentation. L'API GraphQL agit comme un proxy, permettant l'introduction des fonctionnalités bêta dans la console avant libération publique via l'API REST. L'authentification est rationalisée via AWS Cognito, assurant une ségrégation sécurisée des données et un contrôle d'accès. Les abonnements GraphQL, intégrés au bus d'événements Stax, fournissent des mises à jour en temps réel sans nécessiter de rafraîchissements.
relever les défis
lorsque AWS AppSync a simplifié de nombreux aspects, des limitations telles que le délai d'expiration de la requête de 30 secondes et une faible limite de lots pour les fonctions lambda ont nécessité une attention particulière. Des stratégies telles que l'optimisation des interactions de la récupération des données et de l'abstraction ont été utilisées pour atténuer ces problèmes.
Directions futures
Le développement futur se concentrera sur les améliorations des performances grâce à la mise en cache et à l'élargissement des mises à jour en temps réel sur tous les composants Stax. Cela améliorera la réactivité et la fiabilité, même pendant les périodes de forte demande ou de perturbations de service. L'architecture sans serveur permet à l'équipe de hiérarchiser le développement des fonctionnalités et l'expérience client, tout en maintenant la sécurité et la conformité.
Pour plus d'informations sur Stax et ses capacités, contactez l'équipe pour une démo.
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!