ProxySQL : l’accélérateur Open source des bases de données

Le logiciel optimise d’une multitude de manières le voyage des requêtes entre les applications et les serveurs de base de données compatibles SQL.

À la tête d’une équipe d’une dizaine de personnes réparties à travers le monde, Jesmar Cannaó (en photo en haut de cet article) dirige depuis Malte la société ProxySQL, laquelle propose un proxy de requêtes SQL, Open source, conçu pour MySQL, MariaDB, PostgreSQL et Percona. Ce logiciel agit comme un intermédiaire entre les applications et les bases de données, en permettant une gestion plus fine des requêtes SQL et une meilleure répartition de la charge. Il est particulièrement utilisé dans des environnements où les bases de données doivent être hautement disponibles et résilientes.

À l’origine, Jesmar Cannaó et son frère René sont des spécialistes des bases de données disposant de plus d’une dizaine d’années d’expérience dans ce secteur. Jesmar Cannaó est également un contributeur clé de ProxySQL.

Le projet ProxySQL a démarré en 2013 et l’entreprise a été fondée en 2014. ProxySQL est né avec l’objectif de répondre aux principaux enjeux d’élasticité de la plateforme SQL. En effet, le paysage actuel des bases de données se caractérise par des millions de connexions simultanées qui sont distribuées à des serveurs en cluster, lesquels traitent individuellement les requêtes SQL. Il peut même y avoir plusieurs clusters répartis selon des critères géographiques, sur site et en cloud.

Dans ce genre d’architecture, les goulets d’étranglement sont légion et les pertes de connexions sont proportionnelles à la quantité de serveurs. Or, gagner ou perdre des millions de connexions chaque seconde est critique dans de nombreux domaines. ProxySQL se propose donc de répondre à ce problème en prenant en charge le routage des requêtes vers les serveurs, quel que soit leur nombre, quels que soient les sites où ils s’exécutent.

Une multitude d’optimisations

Le rôle de ProxySQL est d’abord d’éviter la surcharge des serveurs backend, ceux qui exécutent les requêtes SQL. Le logiciel déploie plusieurs techniques pour y parvenir. Notamment, les requêtes sont mises en cache, ce qui contribue à réduire la latence lorsqu’elles sont répétitives. Les requêtes indésirables – parce qu’elles se font via des accès non autorisés, ou encore parce qu’elles intègrent du code malicieux – sont bloquées en amont par un firewall. Par ailleurs, le routage vers les serveurs backend se sert des informations de cache et de firewall pour échelonner le trafic.

ProxySQL se sert aussi d’informations externes pour maximiser son efficacité. Évidemment, il détecte automatiquement les pannes côté serveurs et redirige les requêtes vers les nœuds les plus disponibles, dans une optique de haute disponibilité sans intervention manuelle. Le logiciel communique par ailleurs avec les solutions de mise en clusters de serveurs SQL, telles que MySQL Group Replication, Percona XtraDB Cluster, Galera Cluster ou encore Aurora.

ProxySQL inclut des outils de monitoring et de suivi des performances. Ils permettent de surveiller les flux de requêtes, les connexions et l’état des serveurs backend. Grâce à eux, les administrateurs comprennent mieux la charge sur les bases de données et ils identifient les éventuels goulets d’étranglement ou points de défaillance.

Enfin, ProxySQL offre des fonctions de sécurisation des connexions. Elles sont chiffrées entre les clients et ProxySQL, puis entre ProxySQL et les serveurs de bases de données. Cela renforce la sécurité des communications entre les différentes parties du système. Un point d’autant plus intéressant lorsque ces communications voyagent d’un site à l’autre.

Objectif : être de loin le leader dans le domaine

Dix années plus tard, la mission n’a pas changé : « nous souhaitons être la solution leader du marché pour l’optimisation de MySQL et PostgreSQL, afin de permettre aux entreprises de toutes tailles d’atteindre des performances exceptionnelles et une efficacité maximale », argumente Jesmar Cannaó.

Aujourd’hui, l’entreprise revendique des clients appartenant au NASDAQ ou dans le S&P 500, principalement dans les secteurs de la finance, du SaaS, de l’e-commerce et dans l’industrie du jeu.

Au chapitre de la concurrence, on retrouve les répartiteurs de charge que sont HAProxy ou Nginx, les proxys propres aux bases de données tels que MySQL Router ou PGbouncer. Cependant, il semble que ProxySQL soit, pour le moment, largement au-dessus en termes de performances, de fonctionnalités et d’étendue dans la gestion multi-plateforme. Par ailleurs, le fait qu’il ne soit nécessaire ni de réécrire l’application qui émet les requêtes ni d’adapter les serveurs de bases de données simplifie l’intégration avec les systèmes existants.

L’écosystème se compose des principaux fournisseurs de cloud (AWS, Azure, Google), des fournisseurs de bases de données (MySQL, PostgreSQL) ainsi que des fournisseurs d’outils de monitoring et d’observation (Grafana, Prometheus…).

Le modèle de distribution est Open Source avec une version gratuite pour les start-ups et les PME. Pour les entreprises, ProxySQL propose un système de souscription autour de services, de la formation, ainsi que l’ajout de fonction Premium.

Pour approfondir sur Administration de réseaux