Comment mettre en place le parfait ensemble technologique pour un produit SAS
By Simon Høiberg · 2022-01-31
Le choix de l'ensemble technologique pour un produit SAS est crucial pour une mise en place rapide et évolutive. Il est essentiel de minimiser le travail initial et d'utiliser les meilleures solutions disponibles.
Mise en place du parfait ensemble technologique pour un produit SAS
- Le choix de l'ensemble technologique pour un produit SAS est crucial pour une mise en place rapide et évolutive. Il est essentiel de minimiser le travail initial et d'utiliser les meilleures solutions disponibles.
- Il est recommandé d'opter pour une infrastructure cloud gérée afin de se libérer des contraintes liées aux serveurs, ainsi que des bibliothèques d'interface utilisateur prêtes à l'emploi pour éviter la conception intégrale.
- Ce choix repose sur une grande expérience, mais il est important de noter que la préférence personnelle joue un rôle clé. Toutefois, ce guide offre une base solide pour ceux qui souhaitent créer un produit SAS ou découvrir une nouvelle approche.
- Ce tech stack est entièrement sans serveur, ce qui signifie qu'aucune gestion de serveur n'est nécessaire. Les fonctions cloud individuelles gèrent les requêtes des clients, et une base de données gérée permet de ne payer que pour les opérations de lecture et d'écriture.
- La base de données choisie est Amazon DynamoDB, offrant une structure sans schéma qui facilite le démarrage et l'extension ultérieure de la table. De plus, l'utilisation d'outils tels que Pulumi simplifie la mise en place de l'infrastructure complète de l'application, y compris un système de connexion sécurisé.
- En résumé, ce guide détaille un ensemble technologique idéal pour un produit SAS, en mettant l'accent sur la simplicité, l'évolutivité et la sécurité.
Mise en place du parfait ensemble technologique pour un produit SAS
Mise en place de l'infrastructure et des technologies
- Pour mettre en place l'infrastructure, nous allons utiliser un service appelé AppSync, qui est une couche GraphQL gérée par AWS. Cela nous permettra de définir un schéma GraphQL et de mapper les requêtes entrantes aux données de la base de données de manière sécurisée.
- Pour l'authentification des utilisateurs, nous allons utiliser Cognito, un service qui gère la complexité de l'authentification utilisateur de manière efficace. Cognito s'intègre parfaitement avec AppSync, ce qui facilite la mise en place de l'authentification.
- Concernant le développement de l'interface utilisateur, nous allons utiliser React et plus précisément Next.js. Nous utiliserons également la bibliothèque Chakra UI pour bénéficier de composants d'interface attrayants dès le départ.
- Pour relier l'interface utilisateur à l'arrière-plan, nous utiliserons Amplify, un outil CLI fourni par AWS qui propose également un service d'hébergement. Amplify simplifiera également l'authentification des utilisateurs lors de leur connexion à l'application.
- En ce qui concerne l'accès aux données de notre API GraphQL, nous pourrions utiliser les utilitaires fournis par Amplify, mais l'utilisation du client Apollo de GraphQL offre des fonctionnalités de mise en cache intégrées et des outils avancés, ce qui en fait un meilleur choix pour nos requêtes GraphQL.
- Enfin, pour déployer l'infrastructure dans le cloud, nous utiliserons Pulumi, un outil qui facilite grandement la configuration et la gestion de l'infrastructure. De plus, nous mettrons en place un déploiement continu à l'aide des actions GitHub.
Mise en place de l'infrastructure et des technologies
Configuration de Pulumi pour AWS
- Commencez par créer un nouveau projet AWS et TypeScript sur le site web de Pulumi.
- Choisissez la région euwest1 et suivez les instructions fournies par Pulumi.
- Organisez votre code dans un mono dépôt en combinant le backend et le frontend.
- Configurez une table DynamoDB pour enregistrer les utilisateurs, exportez l'identifiant de la table.
- Mettez en place AppSync avec un schéma GraphQL qui contient un champ pour récupérer un utilisateur à partir de la table.
- Créez un fichier IM.ts pour configurer les rôles et politiques de base, puis créez un fichier source.ts pour définir une fonction prenant comme argument l'identifiant AppSync.
- Déployez une fonction lambda pour résoudre la requête GraphQL, créez un gestionnaire pour la fonction lambda contenant la logique.
- Revenez au fichier AppSync.ts pour invoquer la fonction et configurer la source de données et le résolveur.
- Appréciez l'efficacité de Pulumi pour la configuration AWS, sans oublier la facilité d'utilisation de l'outil.
Configuration de Pulumi pour AWS
Configuration du backend avec AWS Cognito
- La configuration du backend commence par la mise en place de Cognito, qui comprend un pool d'identités, un pool d'utilisateurs et un client pour le pool d'utilisateurs. Ces trois composants sont essentiels pour gérer l'authentification des utilisateurs.
- Pour le pool d'utilisateurs, on définit les configurations telles que les exigences en matière de mot de passe et la manière dont les utilisateurs peuvent récupérer leur compte. De même, pour le client du pool d'utilisateurs, et enfin, pour le pool d'identités, on configure son utilisation du client de pool d'utilisateurs défini précédemment. De plus, un rôle et une politique doivent être mis en place pour les utilisateurs authentifiés, afin de définir les ressources auxquelles ils ont accès.
- Une fois le backend entièrement défini, il suffit d'exécuter la commande magique 'pull me up' pour tout déployer dans le cloud. Un sentiment de satisfaction envahit alors, sachant que tout le travail de configuration est terminé et prêt à être utilisé pour de nouveaux projets.
Configuration du backend avec AWS Cognito
Utilisation de Chakra UI pour la création d'une application
- L'inscription et la connexion des utilisateurs se font à l'aide du code de confirmation envoyé par e-mail.
- La page d'accueil est l'endroit où les utilisateurs sont dirigés une fois connectés.
- Chakratemplates.dev propose des templates prêts à l'emploi basés sur Chakra UI, ce qui facilite grandement le processus de création.
- L'authentification s'effectue rapidement grâce à l'utilisation de Chakra UI et du module Amplify.
- Le client Apollo est configuré avec Amplify pour permettre l'utilisation de requêtes GraphQL.
- Le démarrage et la mise en route de l'application prennent moins d'une heure, ce qui démontre la facilité d'utilisation de ce template.
Utilisation de Chakra UI pour la création d'une application
Conclusion:
Ce guide détaille un ensemble technologique idéal pour un produit SAS, en mettant l'accent sur la simplicité, l'évolutivité et la sécurité, tout en offrant une base solide pour ceux qui souhaitent créer un produit SAS ou découvrir une nouvelle approche.