Un rendez-vous pour une vidange
Un garage de Nantes ouvre la prise de rendez-vous en ligne. Le lundi matin, 500 clients regardent les tarifs en même temps.
Chaque client qui réserve doit recevoir un e-mail de confirmation, puis un SMS la veille.
Votre cheffe d'équipe vous demande : « Faites-moi un schéma des parties de l'appli. »
À la fin de cette leçon
Remarque
Je peux esquisser comment s'emboîtent les parties d'une application web simple.
Mots clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Client | l'appli ou le navigateur que la personne utilise | |
| Serveur | la machine où tourne le back-end | |
| Base de données | le lieu où les données sont gardées pour de bon | |
| Cache | une copie rapide de données souvent lues | |
| File d'attente | une liste de travaux à faire plus tard | |
| Tâche de fond | un programme qui traite la file d'attente | worker |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Client, serveur et base de données
Presque toute appli web a trois parties. Le client affiche les écrans. Le serveur fait les calculs et applique les règles.
La base de données garde les rendez-vous, même si le serveur redémarre.
Le client ne parle jamais directement à la base. Il passe toujours par le serveur, qui vérifie qui demande quoi.
Un cache évite de redemander la même chose
Les tarifs du garage changent une fois par mois. Pourtant, 500 clients les demandent le même matin.
Demander 500 fois la base de données est lent. Le serveur garde donc une copie des tarifs dans un cache, en mémoire.
La première lecture va dans la base. Les suivantes lisent la copie, bien plus vite.
Exemple : 500 lectures des tarifs
| Lecture | Sans cache | Avec cache |
|---|---|---|
| La première | 20 ms, dans la base | 20 ms, dans la base |
| Chacune des 499 suivantes | 20 ms, dans la base | 1 ms, dans le cache |
| Total pour 500 lectures | 10 000 ms, soit 10 secondes | 519 ms, soit une demi-seconde |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Une erreur fréquente
Attention
Beaucoup pensent que le cache peut remplacer la base de données. C'est faux. Le cache est une copie qui peut vieillir ou disparaître. La base reste la référence. Quand un tarif change, il faut aussi vider sa copie.
Une file d'attente garde les travaux lents
Envoyer un e-mail prend parfois plusieurs secondes. Le client ne doit pas attendre devant son écran.
Le serveur enregistre le rendez-vous, puis dépose un message dans une file d'attente : « envoyer la confirmation ». Il répond tout de suite.
Une tâche de fond lit la file et envoie les e-mails, un par un.