Qu'est-ce que l'informatique sans serveur ?

Malgré son nom, le Serverless Computing ne signifie pas la disparition des serveurs. Cela signifie plutôt que la responsabilité de la gestion, du provisionnement et de la mise à l’échelle de l’infrastructure est entièrement transférée de votre équipe vers le fournisseur cloud.
Dans un modèle serverless, vous déployez simplement votre code ou votre conteneur. Le fournisseur cloud se charge du reste : mises à jour du système d’exploitation, maintenance matérielle, montée en charge, afin que vous puissiez vous concentrer uniquement sur la logique métier.
Aujourd’hui, le serverless a largement dépassé le simple modèle de fonctions pour inclure trois piliers principaux :
- Serverless Functions (FaaS) : idéales pour de petits morceaux de code à usage unique.
- Serverless Containers (CaaS) : parfaits pour les microservices full-stack ou les applications legacy empaquetées dans des conteneurs Docker.
- Serverless Jobs : adaptés aux traitements batch lourds et de courte durée ainsi qu’à la manipulation de données.
Fonctionnement du Serverless Computing
Le serverless computing repose sur un modèle d’exécution dynamique à la demande. Son cycle de vie suit généralement les étapes suivantes :
-
Le déclencheur
Un événement se produit, par exemple :- une requête HTTP,
- un téléversement de fichier dans un stockage objet,
- une tâche cron planifiée,
- ou un événement provenant d’un système de messagerie.
-
L’instanciation
Le fournisseur cloud démarre un environnement d’exécution léger (micro-VM ou conteneur) pour héberger votre projet. -
L’exécution
Le code s’exécute, traite la requête et renvoie une réponse. -
La mise à l’échelle vers zéro
Si aucun nouvel événement n’arrive, l’environnement est automatiquement libéré et revient à zéro.
Caractéristiques principales du Serverless Computing
Aucune gestion de serveur
Aucun provisionnement, aucune mise à jour ni maintenance des serveurs.
Scalabilité automatique et infinie
L’infrastructure augmente ou réduit automatiquement ses ressources en fonction du trafic, sans intervention manuelle.
Tarification à l’usage
Vous payez uniquement les ressources réellement consommées (CPU/Mémoire) et la durée exacte d’exécution du code, souvent facturée à la milliseconde.
Exécution stateless
Les instances serverless sont éphémères. Elles existent uniquement pour accomplir une tâche puis disparaissent, ce qui nécessite l’utilisation de bases de données ou de stockages externes pour conserver l’état.
Avantages du Serverless Computing
L’un des principaux avantages du serverless computing est l’abstraction opérationnelle. Les équipes n’ont plus besoin de gérer le provisionnement, les correctifs de sécurité ou les politiques de mise à l’échelle, ce qui réduit fortement la charge DevOps.
La scalabilité constitue un autre avantage majeur. Les systèmes serverless absorbent automatiquement les pics de trafic sans pré-allocation de capacité, ce qui les rend idéaux pour les charges imprévisibles.
La réduction des coûts est également essentielle. Comme la facturation dépend uniquement du temps d’exécution et des ressources utilisées, les coûts liés aux infrastructures inactives disparaissent.
Défis du Serverless Computing
Chaque choix architectural implique des compromis. Même si le serverless apporte une grande rapidité de développement, certaines limites doivent être prises en compte.
Cold Starts
Lorsqu’une application n’a pas été utilisée depuis un certain temps, la première requête peut prendre un peu plus de temps afin de démarrer l’environnement d’exécution.
Debugging et observabilité
Comme vous ne contrôlez pas directement la machine sous-jacente, le débogage des environnements serverless distribués nécessite des outils avancés de tracing et de logging.
Vendor Lock-In
Le déplacement de configurations spécifiques entre différents fournisseurs cloud peut nécessiter des adaptations architecturales.
Chez Scaleway, la conception des produits Serverless Compute met l’accent sur la portabilité :
- aucun import spécifique n’est imposé dans les Functions,
- les Containers et Jobs reposent sur des images Docker portables.
Cas d’usage du Serverless
Le serverless computing est particulièrement adapté aux charges variables et aux architectures orientées événements.
Cas d’usage courants :
- traitement de fichiers en temps réel (upload, redimensionnement d’images, transcodage média),
- pipelines de données orientés événements,
- automatisation planifiée (tâches cron),
- traitement et streaming de données IoT,
- APIs REST et microservices web,
- traitements batch en arrière-plan,
- ingestion d’événements.
APIs REST et microservices web
Création de backends mobiles ou web avec des Serverless Containers capables de s’adapter automatiquement au trafic utilisateur.
Traitements batch
Utilisation des Serverless Jobs pour gérer des migrations massives de données, l’encodage vidéo ou la génération nocturne de PDF.
Ingestion d’événements
Traitement en temps réel des flux de données provenant d’appareils connectés grâce à des Serverless Functions hautement parallélisées.
Serverless vs Cloud Computing traditionnel
| Fonctionnalité | Instances traditionnelles | Serverless Computing |
|---|---|---|
| Provisionnement | Configuration manuelle, choix de l’OS, planification de capacité | Aucun, entièrement géré par le fournisseur |
| Scalabilité | Auto-scaling manuel ou basé sur des règles (plusieurs minutes) | Scalabilité instantanée et automatique (millisecondes) |
| Modèle tarifaire | Coût fixe mensuel/à l’heure (même à vide) | Paiement à l’usage uniquement |
| Maintenance | Correctifs sécurité, mises à jour système, monitoring | Géré entièrement par le fournisseur cloud |
Serverless vs Containers
Le débat ne porte pas sur ce qui est meilleur, mais sur qui gère la complexité.
Kubernetes (K8s) offre un contrôle total sur le réseau, l’orchestration des clusters et l’infrastructure. En contrepartie, il nécessite une équipe DevOps dédiée pour gérer et maintenir le plan de contrôle du cluster.
Le serverless masque cette complexité Kubernetes. D’ailleurs, des solutions modernes comme les Serverless Containers s’exécutent souvent sur des clusters Kubernetes multi-tenant hautement optimisés gérés en arrière-plan par le fournisseur cloud.
Verdict
- Choisissez Kubernetes si vous avez besoin d’une personnalisation réseau avancée ou d’un contrôle profond de l’infrastructure.
- Choisissez le Serverless si vous recherchez rapidité de déploiement, maintenance minimale et scalabilité automatique sans surcharge DevOps.