Dans la plupart des installations, une application parle directement à sa base de données. Une adresse, un compte, un mot de passe, et chaque requête part tout droit vers le moteur. Ce schéma fonctionne très bien, jusqu'au jour où l'on attend de la base plus qu'elle ne peut offrir seule : refuser une requête qu'elle n'aurait jamais dû recevoir, tenir quand la charge double un lundi matin, rester joignable quand le serveur qui l'héberge s'arrête.
Ces trois attentes ont un point commun : aucune ne se règle proprement dans le code. On peut ajouter des vérifications, des tentatives de reconnexion, une logique pour envoyer certaines requêtes ailleurs, mais chaque application le fait à sa façon, avec ses oublis, et tout est à refaire pour la suivante.
Nous avons donc pris le parti de les traiter à un seul endroit : une couche placée entre l'application et la base. L'application s'y connecte comme à une base ordinaire, avec le même protocole et les mêmes requêtes. C'est cette couche qui décide ce qui a le droit de passer, vers quel serveur l'envoyer, et quoi faire si l'un d'eux ne répond plus.
Elle réunit trois briques. Aucune n'est imposée : vous activez celles qui répondent à votre situation, et vous pouvez en ajouter une plus tard sans revoir l'architecture. Comme le reste de nos services, l'ensemble est installé, réglé et exploité par Redswarm dans le cadre de votre hébergement.
Quelle combinaison pour quel besoin ?
Les trois briques se combinent librement. Quelques configurations reviennent souvent :
- Une application exposée, une charge modeste : le pare-feu SQL seul. Il n'est pas nécessaire d'avoir plusieurs serveurs pour vouloir contrôler ce qui arrive à la base.
- Une base qui ralentit aux heures de pointe : la réplication et le load balancer en mode lecture / écriture. Les lectures quittent le serveur principal.
- Une activité qui ne supporte pas l'interruption : la réplication et le load balancer pour la surveillance des serveurs, avec ou sans séparation des flux.
- Des données sensibles et un trafic soutenu : les trois ensemble.
Ce qu'il vaut mieux savoir avant de choisir
Chaque brique apporte quelque chose, et chacune a ses règles du jeu. Nous préférons les poser ici plutôt qu'en réunion de crise.
Une réplique a toujours un léger temps de retard. Elle reçoit les modifications quelques instants après le serveur principal. Une lecture qui suit immédiatement une écriture peut donc ne pas encore la voir. Plusieurs garde-fous limitent l'effet : les requêtes d'une transaction restent sur le principal, une réplique trop en retard est écartée de la répartition, et les lectures qui exigent une donnée fraîche, comme un panier juste après l'ajout d'un article, peuvent être dirigées vers le principal par une règle dédiée. Nous identifions ces cas avec vous avant d'activer le mode.
Le pare-feu doit suivre vos versions. Une nouvelle fonctionnalité apporte de nouvelles requêtes, absentes de l'inventaire. Elles y sont ajoutées au moment du déploiement. Les opérations exceptionnelles, comme une migration de schéma ou un import massif, passent par un compte dédié avec ses propres règles.
La réplication n'est pas une sauvegarde. Une suppression faite par erreur est recopiée sur les répliques aussi fidèlement qu'une modification légitime. Les sauvegardes restent indispensables, et la réplication ne les remplace pas.
Le pare-feu ne corrige pas le code. Une requête vulnérable le reste, et les requêtes paramétrées demeurent la règle. Le pare-feu réduit ce qu'une faille permet d'atteindre, il ne la fait pas disparaître.
Une base de données n'a pas à tout porter seule. Il suffit qu'on ne lui envoie que ce qu'elle doit traiter, là où elle peut le traiter.
Par quoi commencer ?
La bonne combinaison dépend de ce qui vous préoccupe le plus aujourd'hui : ce qui entre dans votre base, ce qu'elle peut encaisser, ou ce qui se passe le jour où elle s'arrête. Il n'y a aucune raison de tout activer d'un coup. Beaucoup commencent par une seule brique et ajoutent la suivante quand le besoin se présente.
Le premier pas ne coûte rien : prenez rendez-vous et nous regarderons ensemble votre base, sa charge et ses accès, pour voir ce qui a du sens chez vous.