01 Notre méthode

Votre jour le plus chargé devrait être votre meilleur jour.

La croissance est censée être une bonne nouvelle. Pour la plupart des systèmes, c'est ce qui les casse — le lancement, la campagne, le pic saisonnier. Ça n'a pas à être ainsi.

Démarrer un projet

Ce que scalabilité veut dire concrètement

La scalabilité, ce n'est pas une question de vitesse. Un système lent qui reste lent sous la charge est scalable ; un système rapide qui s'effondre à dix fois le trafic ne l'est pas. Elle signifie que la relation entre le nombre de personnes qui utilisent votre logiciel et ce qu'il vous en coûte pour les servir reste prévisible.

La plupart des systèmes sont construits pour le trafic qu'ils ont le jour de leur lancement. Cela fonctionne, jusqu'au jour où ça ne fonctionne plus — et ce jour-là est généralement celui où vous aviez le plus besoin que le système tienne : une campagne marketing, un lancement de produit, un jour férié, une mention presse. Le trafic que vous étiez en train de célébrer devient la raison pour laquelle vos clients voient une page d'erreur.

Ce qui est inconfortable, c'est que la scalabilité se décide tôt. Elle vient de la façon dont le travail est réparti, dont les données sont modélisées, et de l'endroit où la charge est absorbée — des décisions prises dès les premières semaines. La rajouter après coup revient généralement à tout reconstruire, ce qui explique pourquoi la facture arrive si souvent sous forme de devis que personne n'avait budgété.

AT ITS LIMITROOM TO GROW

Comment savoir si c'est votre problème

Chaque projet commence par un appel de cadrage
  • Les temps de réponse se dégradent nettement aux heures de pointe
  • Vous avez ajouté des serveurs et ça n'a pas aidé autant qu'espéré
  • La base de données est ce que tout le monde blâme, et que personne ne veut toucher
  • Vous évitez les campagnes marketing par crainte que le système ne tienne pas
  • Votre facture cloud augmente plus vite que votre nombre d'utilisateurs
  • Les rapports et exports bloquent l'application pour tout le monde

Comment nous y parvenons

REQUESTSEDGE — ANSWERS MOST OF THEMYOUR SERVERS — BARELY TOUCHED
Le bon backend pour le bon usage
Elixir quand un système doit tenir des milliers d'utilisateurs simultanés ou de connexions temps réel. Node ou Go quand ce n'est pas le cas. Nous choisissons par projet, pas par habitude.
Un CDN en amont, toujours
Pages, images et fichiers statiques sont servis depuis un réseau proche de vos utilisateurs — une couche séparée qui absorbe l'essentiel du trafic avant qu'il n'atteigne votre application.
Postgres, modélisé correctement
Index et schémas d'accès conçus pour le volume de requêtes vers lequel vous évoluez. C'est là que vivent la plupart des problèmes de scalabilité, quel que soit le langage au-dessus.

Ce que coûte l'inaction

01

La croissance devient un risque

Quand le système ne peut pas absorber le succès, chaque victoire marketing se transforme en incident. Les équipes finissent par freiner leur propre croissance pour protéger le logiciel — ce qui est exactement l'inverse de ce qu'il faudrait faire.

02

La réécriture arrive hors budget

Un système qui n'a jamais été pensé pour la charge ne se rattrape pas à coups de correctifs. La solution honnête est une reconstruction, au pire moment possible : quand des clients en dépendent déjà.

03

Vous payez pour une capacité que vous n'utilisez pas

La solution habituelle face à un système qui ne tient pas la charge, c'est du matériel surdimensionné qui tourne toute l'année pour survivre à quelques heures de pointe. Vous finissez par payer votre semaine la plus chargée chaque semaine de l'année.

04

Les ingénieurs passent leur temps à éteindre des incendies

Chaque heure passée à maintenir un système sous tension pendant les pics est une heure qui n'est pas consacrée à construire ce que vos clients demandent. Le coût est invisible sur une facture et énorme sur une année.

WITHOUT ITWITH ITCOST OVER TIME

Les questions qu'on nous pose

De combien de trafic devons-nous vraiment nous préoccuper ?
Moins que ce que la plupart des gens redoutent, et plus que ce que la plupart des gens anticipent. La bonne question n'est pas un chiffre, c'est une forme : à quoi ressemble dix fois votre usage actuel, et quelle partie casse en premier. Nous répondons à cela par des tests de charge sur vos schémas d'accès réels, plutôt que par des suppositions.
Est-ce que cela ne concerne que les grandes entreprises ?
Non — c'est justement pour les petites structures que ça compte le plus. Une grande entreprise peut absorber un mauvais après-midi. Un produit en phase de lancement qui s'effondre pendant sa semaine de sortie n'aura peut-être pas de seconde chance avec ces utilisateurs.
Pouvez-vous faire évoluer notre système existant, ou faut-il tout réécrire ?
Souvent oui, sans réécriture. La plupart des problèmes de montée en charge se ramènent à une poignée de points précis — une requête sans index, un traitement fait dans la requête alors qu'il devrait tourner en arrière-plan, une couche de cache absente. Nous mesurons d'abord, et nous vous disons honnêtement s'il s'agit d'une correction ou d'une reconstruction.
Monter en charge signifie-t-il toujours des coûts d'hébergement plus élevés ?
En général, c'est l'inverse, une fois que c'est fait correctement. Un système pensé pour la charge utilise le matériel efficacement et réduit sa voilure quand la demande baisse. Les installations coûteuses sont celles qui font tourner des serveurs surdimensionnés en permanence parce que personne ne leur fait confiance pour absorber un pic.
Construisez-vous toujours avec Elixir ?
Non. Elixir est la bonne réponse quand un système doit tenir de nombreux utilisateurs simultanés, des connexions temps réel ou des exigences de disponibilité strictes — c'est là qu'il supprime toute une catégorie de difficultés. Pour une API simple ou un outil interne, il ajoute une complexité dont vous n'avez pas besoin, et nous recommanderons plutôt TypeScript sur Node. Le choix suit votre projet, votre budget et qui le maintiendra ensuite.

Votre jour le plus chargé devrait être votre meilleur jour.

Dites-nous où ça bloque. Un appel court, une réponse honnête sur si nous sommes la bonne équipe, et un périmètre que vous pouvez chiffrer.

Démarrer un projet hello@elixiria.ma
enfrar