Qu'est-ce qu'une architecture sans serveur ?

L’architecture serverless est un modèle de conception logicielle dans lequel les applications sont entièrement construites à partir de services managés et de ressources de calcul éphémères.
Au lieu de déployer une base de code monolithique sur un serveur fonctionnant en continu, une architecture serverless décompose les applications en composants découplés et autonomes qui interagissent via des événements et des requêtes HTTP directes.
Fonctionnement d’une architecture serverless
Dans une architecture serverless, les ressources de calcul restent inactives jusqu’à ce qu’elles soient nécessaires.
Lorsqu’un client ou un service externe interagit avec l’application, les requêtes sont envoyées directement vers le service de calcul dédié (comme une Serverless Function ou un Serverless Container) via son endpoint HTTP public.
Les tâches peuvent également être traitées de manière asynchrone :
des systèmes en amont envoient des données vers une file de messages ou un système pub/sub, ce qui déclenche automatiquement le service serverless pour démarrer, traiter la charge utile, puis revenir à zéro une fois le travail terminé.
Composants clés d’une architecture serverless
Une stack serverless robuste et prête pour la production repose sur trois blocs principaux :
[Déclencheurs d’événements / Requêtes HTTP] ↓[Compute : Functions / Containers / Jobs] ↓[Messagerie & Stockage](NATS, SQS, SNS, Object Storage)
Compute (FaaS / CaaS / Jobs)
Les moteurs d’exécution où votre code s’exécute.
- Les Serverless Functions gèrent les événements légers.
- Les Serverless Containers exécutent des webhooks complets ou des microservices.
- Les Serverless Jobs exécutent des tâches lourdes et longues comme le batch processing.
Services de messagerie et courtiers d’événements
Le système nerveux de l’architecture.
Des services managés comme Messaging and Queuing orchestrent les communications entre les services via SQS, SNS et NATS.
Stockage et bases de données managés
Des solutions entièrement managées comme Object Storage et les bases de données assurent la persistance des données indépendamment de la couche de calcul éphémère.
Architecture orientée événements (EDA)
Au cœur de toute architecture serverless moderne se trouve l’Event-Driven Architecture (EDA).
Dans ce modèle, les composants du système réagissent à des événements plutôt que de communiquer de manière synchrone et fortement couplée.
Grâce à Scaleway SQS, SNS et NATS, il est possible de construire des systèmes hautement résilients.
Par exemple :
- un utilisateur effectue une action,
- un message est publié dans une file Scaleway SQS,
- une Serverless Function ou un Serverless Container démarre automatiquement pour traiter le message,
- en cas de pic de trafic, les messages sont mis en file d’attente sans faire tomber le backend.
Avantages de l’architecture serverless
Agilité et modularité extrêmes
Chaque microservice peut être testé et déployé indépendamment sans compromettre la stabilité globale de l’application.
Résilience asynchrone
En découplant les services via SQS ou NATS, les pics de trafic ou les pannes d’un service en aval n’impactent pas directement les utilisateurs finaux.
La couche de messagerie absorbe et sécurise les charges de travail.
Optimisation des ressources
Chaque composant évolue indépendamment selon sa charge réelle.
Vous ne payez jamais pour des ressources de calcul inutilisées.
Défis de l’architecture serverless
Complexité architecturale
La gestion de fonctions, containers et files de messages distribués nécessite :
- des conventions de nommage strictes,
- une documentation solide,
- une cartographie claire du système.
Gestion de l’état
Les composants serverless étant stateless par nature, le partage de données entre plusieurs étapes nécessite :
- des payloads de messagerie adaptés,
- des bases de données externes,
- ou des couches de cache rapides.
Traçabilité distribuée
Identifier précisément les erreurs dans des systèmes asynchrones (comme des flux SNS → SQS) nécessite des outils avancés de logging et de tracing.
Cas d’usage courants de l’architecture serverless
Microservices découplés (checkout e-commerce)
- Un utilisateur passe une commande.
- L’application web envoie un message vers Scaleway SNS.
- SNS distribue ce message à plusieurs files Scaleway SQS.
- Une file déclenche une Serverless Function pour le paiement.
- Une autre déclenche un Serverless Container pour mettre à jour les stocks en parallèle.
Ingestion de télémétrie haute performance
Des appareils IoT envoient continuellement des métriques vers un cluster Scaleway NATS.
Des Serverless Functions parallélisées :
- nettoient,
- filtrent,
- et stockent les données en temps réel.
Pipelines automatisés de médias et de données
Un utilisateur téléverse une vidéo brute dans Object Storage.
Une notification automatique :
- déclenche un Serverless Job,
- traite la vidéo,
- la convertit dans plusieurs formats,
- sans intervention manuelle.
Architecture serverless vs architecture traditionnelle
| Fonctionnalité | Architecture traditionnelle | Architecture serverless |
|---|---|---|
| Couplage | Fortement couplée ; les composants partagent mémoire et espace local | Faiblement couplée ; composants totalement indépendants |
| Communication | Appels internes synchrones directs | Messagerie asynchrone orientée événements (SQS, SNS, NATS) |
| Scalabilité | Mise à l’échelle uniforme de toute l’infrastructure | Mise à l’échelle indépendante selon le volume d’événements |
| État | Souvent stateful (sessions stockées localement) | Strictement stateless (état géré dans le stockage ou des DB externes) |