Serverless Architecture (architecture sans serveur)
Une Serverless Architecture, aussi nommé architecture sans serveur, est un modèle d'architecture dans lequel l'infrastructure de serveur est gérée par un fournisseur infonuagique, permettant aux développeurs de se concentrer uniquement sur le code et la logique applicative. Dans cette architecture, les ressources de calcul sont automatiquement allouées et facturées en fonction de l'utilisation, sans qu'il soit nécessaire de gérer ou de provisionner des serveurs. Les fonctions serverless sont souvent exécutées dans des environnements temporaires, déclenchés par des événements spécifiques et arrêtées une fois l'exécution terminée.
Principes de la Serverless Architecture
- Événements et fonctions : Les applications sont constituées de fonctions autonomes et stateless (sans état), exécutées en réponse à des événements, comme un appel d'API, une mise à jour de base de données, ou un fichier ajouté dans l'entreposage.
- Automatisation de la mise à l'échelle : Le fournisseur infonuagique gère automatiquement le dimensionnement, augmentant ou réduisant les ressources selon la demande.
- Modèle de tarification à l'utilisation : Contrairement aux modèles traditionnels où des serveurs fonctionnent en continu, en serverless, les utilisateurs ne paient que pour la durée d'exécution du code et la quantité de ressources consommées.
Avantages de la Serverless Architecture
- Réduction des coûts : Comme la facturation dépend de l'usage effectif, les entreprises peuvent réduire leurs coûts, en particulier pour les applications dont l'utilisation varie beaucoup ou qui ne fonctionnent qu'à des moments spécifiques.
- Gestion minimale de l'infrastructure : Le fournisseur de services infonuagique gère la maintenance, la mise à jour et la sécurité des serveurs, permettant aux équipes de se concentrer sur le développement du produit.
- Mise à l'échelle dynamique : La mise à l'échelle s'adapte automatiquement à la demande, facilitant la gestion des pics de trafic sans devoir ajuster manuellement l'infrastructure.
- Rapidité de développement : Le déploiement de code est rapide, permettant aux développeurs de livrer et d'adapter l'application plus facilement, surtout pour des tâches simples et événementielles.
Limitations de la Serverless Architecture
- Latence : L'exécution d'une fonction peut parfois présenter une latence initiale (appelée cold start) en raison du démarrage temporaire de l'environnement d'exécution.
- Limites de durée et de ressources : Les fonctions serverless sont souvent soumises à des limites d'exécution en termes de durée et de puissance de calcul, rendant les tâches de longue durée ou intensives en ressources plus difficiles à gérer.
- Stateless : Les fonctions serverless sont sans état, ce qui complique l'entreposage d'informations temporaires entre différentes exécutions sans recourir à des solutions de stockage externe, comme une base de données.
- Dépendance au fournisseur : Utiliser une architecture serverless peut rendre l'application fortement dépendante des technologies et outils d'un fournisseur infonuagique spécifique (comme AWS Lambda, Azure Functions, ou Google Cloud Functions).
Exemples de Cas d'Utilisation
- Traitement de fichiers : Un système serverless peut traiter automatiquement des fichiers lorsqu'ils sont téléchargés dans un entreposage infonuagique (exemple : redimensionner des images, encoder des vidéos).
- API RESTful : Créer des API pour des applications web ou mobiles, où chaque appel d'API déclenche une fonction sans serveur traitant la requête.
- Automatisation d'opérations : Automatiser des tâches ponctuelles, comme l'envoi de notifications ou la génération de rapports.
Exemples de Technologies
- AWS Lambda : Le service serverless d'AWS permettant de créer des fonctions en réponse à des événements provenant de services AWS comme API Gateway, S3, et DynamoDB.
- Azure Functions : Le service de Microsoft Azure pour créer des fonctions en serverless, intégrées aux services Azure et externes.
- Google Cloud Functions : Un service de Google Cloud pour exécuter des fonctions en réponse à des événements provenant de Google Cloud ou de services externes.
Dernière mise à jour : Vendredi, le 1er novembre 2024