Aller au contenu
WordPress

Qu’est-ce que MaxScale ? Un proxy pour les bases de données MariaDB et MySQL

Team Host.it 5 min de lecture

Contenu

Nous avons déjà expliqué comment MaxScale nous permet de disposer de bases de données performantes et de construire des architectures flexibles. Nous allons maintenant entrer dans le détail des caractéristiques et fonctionnalités de ce proxy de base de données.

Un proxy est un serveur qui fait office d'intermédiaire dans une connexion : il reçoit les requêtes d'un client et les redirige vers d'autres serveurs destinataires des requêtes. En d’autres termes, un proxy est un moyen de rediriger une connexion entre deux ordinateurs afin qu’ils ne soient pas connectés directement. Un proxy fonctionne comme un standardiste : il reçoit l'appel de celui qui souhaite appeler et le transmet au poste souhaité.

MaxScale peut être inséré de manière transparente entre l'application et le serveur MySQL, exactement comme le fait un proxy Web entre notre navigateur (par exemple Firefox) et le site que nous essayons de visiter. Grâce à un proxy il est possible d'avoir :

Redondance : utilisation de plusieurs bases de données derrière le proxy. Un seul serveur n’assure pas la fiabilité et la haute disponibilité en cas d’indisponibilité de la machine.

Réduction des coûts d'infrastructure : car généralement deux petits serveurs coûtent moins cher qu'un seul serveur performant.

Nous verrons deux types de serveurs proxy de bases de données :

Proxy de couche de transport comme HAProxy

Proxy de couche d'application comme MaxScale

HAProxy : un proxy efficace, rapide et fonctionnel A ce jour, le proxy le plus utilisé dans l'environnement MySQL est le HAProxy qui fonctionne à un niveau inférieur (niveau 4 : transport). HAproxy ne connaît rien à MySQL et se préoccupe uniquement d'équilibrer les connexions entre plusieurs serveurs. C'est très rapide, léger et efficace, cependant cet équilibrage se fait sans savoir de quoi il s'agit. Cela rend le système moins efficace puisqu'un serveur peut recevoir de nombreuses requêtes lourdes, tandis que d'autres serveurs peuvent être déchargés. HAProxy n’est donc pas le choix gagnant dans tous les cas.

MaxScale : un proxy qui peut faire des choses étonnantes

MaxScale fonctionne à un niveau supérieur (niveau 7 : application), en surveillant les serveurs il est capable de comprendre ce qui se passe au sein de l'infrastructure. Connaissant le protocole MySQL, vous pouvez intervenir en manipulant le trafic entre client et serveur. Voici quelques-unes de ses principales caractéristiques :

Filtrage des requêtes de base de données

Gestion du routage : Routage des requêtes vers un ou plusieurs serveurs de bases de données

Modifiez les requêtes à la volée avant qu'elles n'atteignent la base de données

Possibilité de masquer la structure interne de l'infrastructure en laissant un seul point d'accès.

Haute fiabilité et évolutivité du système

Possibilité de déplacer une base de données du serveur local vers un serveur externe sans modifier la configuration de l'application

Divise automatiquement les écritures sur le serveur MAÎTRE et les lectures sur une ou plusieurs bases de données SLAVE.

MaxScale peut assurer l'équilibrage de charge des connexions sans avoir besoin d'utiliser des applications ou des CMS fournissant cette fonctionnalité. Cela signifie que les CMS comme Joomla! ou WordPress peut bénéficier de l’utilisation de la réplication maître/esclave pour rendre son site évolutif.

Caractéristiques de MaxScale Le point fort de MaxScale est certainement sa modularité qui permet une liberté considérable en s'adaptant à de nombreux cas d'usage. MaxScale est :

Modulaire : un système de modules définit sa fonctionnalité

Extensible : il est possible d'appliquer plusieurs filtres même en cascade

Flexible : des modules et des filtres peuvent être ajoutés dynamiquement

Ci-dessous se trouvent les 5 modules qui constituent le cœur de MaxScale :

Protocole : donne la possibilité d'utiliser plusieurs protocoles, par ex. Client MySQL, http, telnet

Authentification : le système d'authentification permet aux clients d'accéder à MaxScale en utilisant les identifiants présents sur les serveurs Backend

Monitor - Lit la configuration de l'état du système directement à partir des serveurs backend

Routeur : achemine les connexions vers une ou plusieurs bases de données backend

Filtre et journalisation : les filtres vous permettent de modifier les requêtes ou d'écrire un fichier journal avec toutes les demandes et réponses reçues.

1. Les clients du protocole de connexion se connectent à MaxScale au lieu de la base de données MySQL sans connaître la différence. Ils peuvent utiliser les mêmes bibliothèques de connexion que celles utilisées jusqu'à présent : par ex. Client MySQL ou client MariaDB.

2. Authentification MaxScale ne dispose pas de système d'authentification ni de base de données d'utilisateurs. Les mêmes utilisateurs présents dans les bases de données backend, chargées au démarrage de l'application, sont utilisés.

3. Surveiller Il est utilisé pour comprendre à tout moment l'état de toutes les bases de données backend connectées à MaxScale. De cette façon, il est possible de savoir quel est le serveur maître et combien d'esclaves répliquent correctement les données. Le moniteur peut être utilisé pour contrôler un cluster Galera.

4. Routeur Dirige le trafic du client vers les serveurs en utilisant une règle spécifique :

Routage de connexion : routeur normal pour se connecter à une base de données

Routeur Read/Write Split : divise les requêtes d'écriture sur le MAÎTRE et les requêtes de lecture sur l'un des ESCLAVES connectés

5. Filtres et journaux de requêtes Parmi les outils les plus puissants mis à disposition par MaxScale il y a certainement les filtres qui permettent d'effectuer des opérations avancées sur les requêtes sans changer le comportement de l'application :

Traitement des requêtes et des résultats SQL

Utiliser une simple expression régulière

En analysant, modifiant ou rejetant des requêtes

En plaçant plusieurs filtres en cascade

Lors de nos tests pour MariaDB, nous avons compris que ce produit pouvait nous aider à faire évoluer notre plateforme d'hébergement cloud Joomla, en maintenant une compatibilité ascendante avec toutes les versions de Joomla ! et utilisez en même temps les serveurs de bases de données les plus récents. La version 1.0.4-stable est sortie il y a quelques semaines. Bien que le projet soit encore jeune, je le recommanderais à tous ceux qui possèdent un très grand site et souhaitent pouvoir faire évoluer les performances de la base de données sans modifier le code du CMS.

Dans le prochain article, nous verrons comment nous avons créé un environnement de développement à l'aide de Docker et Vagrant. Si vous utilisez MaxScale pour l'un de vos projets laissez un commentaire pour partager cette expérience avec nous.

Hébergement WordPress

Hébergement optimisé pour WordPress

SSD, sauvegardes, SSL et Application Manager : publiez et mettez à jour votre site avec une assistance en italien.

Du blog

WordPress

WordPress 7.0 e l’AI

Cosa cambia per le web agency

Sicurezza

Patch a caldo, sito acceso

CVE kernel senza riavvii a raffica

Des archives

WordPress

Host Academy sur la Carte Nationale Jeunes, 58% de réduction pour les jeunes jusqu'à 35 ans

WordPress

Nouvelles fonctionnalités et versions - septembre 2022