Introduction à l’architecture serverless
L’architecture serverless consiste à développer et déployer des applications et services sans avoir à gérer d’instances de serveurs. Vos applications tournent toujours sur des serveurs, mais ils sont entièrement gérés par le fournisseur. Plus besoin de provisionner, de dimensionner ou de maintenir les serveurs pour faire fonctionner vos applications, bases de données ou systèmes de stockage.
L’avantage principal : vos développeurs peuvent se concentrer sur le produit. Le serverless leur permet de se focaliser sur la création de valeur, sans se soucier de l’administration ou de la gestion des serveurs/cloud. La configuration réseau et la sécurité physique sont aussi prises en charge par le fournisseur.
Grâce à cette réduction de la charge opérationnelle, les développeurs gagnent du temps pour concevoir des solutions innovantes et fiables. Mais le serverless a d’autres caractéristiques, avantageuses ou non selon vos besoins.
Nous allons détailler cinq caractéristiques clés de l’architecture serverless :
1 : Sans hébergement
Le principal avantage du serverless est l’absence de gestion d’hébergement ou de serveurs. Il y a donc beaucoup moins de maintenance à effectuer. Plus besoin de mettre à jour, dépanner ou surveiller l’infrastructure, ni de patcher les serveurs comme dans les systèmes traditionnels.
En contrepartie, vous n’aurez plus accès aux métriques classiques de l’hébergement (RPS, PRT, ART, taux d’erreur), qui sont désormais gérées par le fournisseur. Il faudra apprendre à surveiller d’autres indicateurs et à optimiser différemment la performance.
2 : Stateless (sans état)
Le serverless propose notamment les Fonctions en tant que Service (FaaS), qui permettent de créer, exécuter et gérer des applications sans gérer de serveur.
Comme les conteneurs sont éphémères, rien ne peut être conservé en mémoire : tout est supprimé après exécution. L’absence d’état est donc une caractéristique fondamentale du serverless.
3 : Élasticité
Le serverless étant sans serveur et sans état, il offre une grande élasticité, idéale pour la scalabilité. Contrairement à l’administration classique, où il faut ajuster les ressources à la main, le serverless le fait automatiquement.
Cela élimine de nombreux problèmes d’allocation de ressources et peut générer des économies, car on ne paie que ce qu’on consomme.
Attention cependant à l’intégration avec d’anciens systèmes qui ne supportent pas cette élasticité : cela peut causer des pannes en aval. Il faudra anticiper ces situations si vous optez pour le serverless.
4 : Architecture distribuée
Le serverless implique une architecture distribuée : les données sont stockées côté Backend as a Service (BaaS), et tout est réparti sur plusieurs zones de disponibilité. Cela permet une haute disponibilité et une meilleure résilience en cas de panne d’une zone cloud.
Mais il faut aussi composer avec les compromis de cohérence propres à chaque fournisseur. Renseignez-vous sur les modèles de cohérence de chaque BaaS avant de choisir.
5 : Piloté par les événements
Le serverless est conçu pour exécuter des tâches en réaction à des événements. Chaque fonction ne s’exécute que lorsqu’elle est déclenchée par un événement précis.
Cette architecture favorise l’extensibilité (ajout de fonctionnalités) et réduit l’interdépendance entre composants. Mais elle peut aussi rendre le système plus complexe à diagnostiquer.
Conclusion
L’architecture serverless fait beaucoup parler d’elle. Elle en est encore à ses débuts, mais l’expérience accumulée permet déjà d’en tirer des enseignements pour optimiser les systèmes.
En connaissant mieux ses caractéristiques, avantages et inconvénients, vous pourrez choisir l’architecture la mieux adaptée à vos besoins.