Accueil Blog Explosion Mes Projets
Tableau de bord de facturation cloud affichant une courbe de coûts qui monte brutalement

Le serverless et la facture qu'on découvre à la fin du mois

Un client m’appelle un lundi matin, très calme, ce qui est toujours mauvais signe. Sa facture cloud du mois précédent fait dix fois celle des mois d’avant. L’application n’a pas eu dix fois plus d’utilisateurs. Une fonction déclenchée à l’écriture d’un fichier écrivait un fichier dans le même dossier. Elle s’est appelée elle-même pendant un week-end entier, avec beaucoup d’application.

Le modèle est séduisant parce qu’il commence à zéro

Le principe tient en une phrase : pas de serveur à administrer, on écrit une fonction, on paie le nombre d’appels et le temps de calcul. Pour un projet qui démarre, c’est imbattable. Le trafic est nul, la facture aussi. Une offre gratuite couvre souvent les premiers mois, l’infrastructure encaisse un pic de trafic sans que personne ne se lève la nuit, et on économise le poste d’administrateur système qu’une startup ne peut pas s’offrir.

J’utilise ce modèle sur mes propres sites, y compris celui-ci. Je ne viens pas expliquer que c’était mieux avec un serveur physique sous un bureau.

Ce que le compteur à l’usage change vraiment

Une machine louée au mois a un coût plafonné et connu. Quand elle sature, le site ralentit ou tombe : c’est désagréable, c’est visible tout de suite, et ça ne coûte pas plus cher. Une architecture facturée à l’exécution ne sature pas, elle absorbe. Le plafond n’est plus technique, il est financier, et il se découvre après coup.

Les scénarios qui coûtent cher ont tous la même forme. Une récursion accidentelle. Un cache mal configuré qui laisse chaque requête taper la base. Un robot d’indexation qui découvre une URL générant une image à la volée et parcourt l’espace des paramètres avec enthousiasme. Une dépendance externe lente qui multiplie par cinq le temps facturé de chaque appel. Aucun de ces incidents ne déclenche d’alerte : tout fonctionne, le service répond, le compteur tourne.

Ajoutons la partie invisible. Le calcul est rarement le gros de la note. La sortie de données, les requêtes à la base, les journaux, les appels entre services et les passerelles s’additionnent en lignes minuscules sur une facture de plusieurs pages. Et chaque service utilisé pour coller tout ça ensemble s’écrit dans le dialecte d’un seul fournisseur, ce qui rend le départ progressivement plus coûteux que le fait de rester.

Ce que je fais maintenant avant de déployer

Je pose un budget avec alerte dès la première mise en ligne, avant même que le service serve à quelque chose. Je mets une limite de concurrence sur chaque fonction, quitte à dégrader le service plutôt que la trésorerie. Je vérifie qu’aucune fonction ne peut se redéclencher elle-même, ce qui semble évident jusqu’au jour où ça ne l’est pas. Et pour une charge stable et prévisible, je repasse sur une machine louée au mois, qui coûte souvent moins cher qu’un million de petits appels.

Le lundi matin en question, le fournisseur a accordé un geste commercial sur la moitié de la somme. Un geste, pas un droit. La facture était conforme au contrat : le service avait exécuté exactement ce qu’on lui avait demandé, des millions de fois, sans jamais se demander pourquoi.

Articles liés

Schéma de serveurs interconnectés représentant plusieurs instances d'un réseau social fédéré

Le fediverse au quotidien, la friction que personne ne dit

Un an sur Mastodon : la décentralisation tient ses promesses techniques, mais l'usage réel se paie en choix d'instance, en recherche bancale et en modération.

Lire l'article →
Petit ordinateur serveur posé sur une étagère avec un câble réseau branché

Monter son premier serveur à la maison : le vrai coût

Matériel, électricité, temps passé : ce que coûte vraiment un petit serveur auto-hébergé chez soi, une fois le romantisme du projet retombé.

Lire l'article →

Sources

Ce que j'ai lu, regardé ou vérifié pour écrire cet article.

  1. Wikipedia (EN) : le serverless computing, son modèle de facturation à l'usage et ses limites connues en.wikipedia.org (ouvre dans un nouvel onglet)
  2. AWS Lambda : grille tarifaire officielle, facturation à la requête et au temps de calcul aws.amazon.com (ouvre dans un nouvel onglet)
  3. Cloudflare Workers : documentation officielle des plans et des limites de la plateforme developers.cloudflare.com (ouvre dans un nouvel onglet)
  4. Wikipedia (EN) : le verrouillage propriétaire, mécanisme de dépendance à un fournisseur unique en.wikipedia.org (ouvre dans un nouvel onglet)