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)

  1. Un utilisateur passe une commande.
  2. L’application web envoie un message vers Scaleway SNS.
  3. SNS distribue ce message à plusieurs files Scaleway SQS.
  4. Une file déclenche une Serverless Function pour le paiement.
  5. 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 :

  1. déclenche un Serverless Job,
  2. traite la vidéo,
  3. la convertit dans plusieurs formats,
  4. sans intervention manuelle.

Architecture serverless vs architecture traditionnelle

FonctionnalitéArchitecture traditionnelleArchitecture serverless
CouplageFortement couplée ; les composants partagent mémoire et espace localFaiblement couplée ; composants totalement indépendants
CommunicationAppels internes synchrones directsMessagerie asynchrone orientée événements (SQS, SNS, NATS)
ScalabilitéMise à l’échelle uniforme de toute l’infrastructureMise à l’échelle indépendante selon le volume d’événements
ÉtatSouvent stateful (sessions stockées localement)Strictement stateless (état géré dans le stockage ou des DB externes)