Insights, technology, people and more

Altijd up-to-date met onze laatste artikelen.

@
Cyso Insight | Haal meer uit uw database met ProxySQL

Cyso Insight | Haal meer uit uw database met ProxySQL

6 December 2018 door in Databases Hosting Optimalisatie

De afkorting SQL staat voor Structured Query Language. SQL is een (grotendeels) gestandaardiseerde codetaal die ontwikkeld is om te kunnen communiceren met en verschillende taken uit te kunnen voeren binnen een relationele database. MySQL, van oudsher de meest gebruikte en meest toegankelijke open-sourcedatabase, is zo’n relationele database waarop data op systematische wijze wordt weggeschreven.

Bij Cyso maken we veel gebruik van MySQL. Relatief nieuw is ProxySQL; een open source proxy voor MySQL die meerdere voordelen biedt voor onze klanten. Onze bevlogen DevOps engineers zijn in de materie gedoken en vertellen erover.

ProxySQL

ProxySQL is eenvoudig gezegd software die proxy-functionaliteit specifiek voor MySQL-databases biedt. De proxy fungeert als gatekeeper; het vangt inkomende SQL-queries af en distribueert die op een intelligente manier over een database cluster.

Voor het managen van een MySQL-cluster is er software beschikbaar die dit makkelijker maakt: de Percona Toolkit. Deze technologie wordt al enige jaren door Cyso gebruikt. ProxySQL werkt hier efficiënt en effectief mee samen.

Features en voordelen

ProxySQL biedt verschillende voordelen en features. We zetten de belangrijkste hieronder op een rij.

  • Connection pooling

    Binnen dezelfde MySQL-sessie kunnen meerdere verbindingen worden afgehandeld. Wanneer een database in het cluster uitvalt, verandert ProxySQL automatisch de connectie en leidt de data om naar een andere beschikbare databaseserver. Een feature die ook van pas komt bij het uitvoeren van onderhoud. De beschikbaarheid en performance van de applicatie worden hierdoor verhoogd.

  • Flexibel limiteren en verdelen van queries

    Een ander voordeel van ProxySQL is dat de configuratie eenvoudig aan te passen is zodra de back-end wordt opgeschaald (of afgeschaald indien wenselijk). Wanneer er grote drukte van de webapplicatie wordt verwacht, bijvoorbeeld met kerst, en de back-endcapaciteit wordt proactief verhoogd, dan is ProxySQL zonder veel moeite aan te passen en blijft de prestatie van de applicatie(s) optimaal gewaarborgd.

    Door het limiteren (en bufferen) van het aantal queries per seconde kan de drukte op een steady manier worden gekanaliseerd. Hiermee wordt stagnatie van de database voorkomen en ondervinden gebruikers geen hinder van een haperende database/applicatie.

  • Query routing

    Via ProxySQL kun je verschillende soorten queries naar verschillende MySQL-servers met verschillende configuraties doorsturen. Stel je hebt een webapplicatie die voor het overgrote deel select queries (leesqueries) uitvoert. Door de write queries (schrijfqueries), die over het algemeen veel bewerkelijker en tijdrovender in uitvoer zijn, te scheiden van de select queries, kan de applicatie te allen tijde op volle kracht worden bediend en wordt een stabiele en hoge applicatieperformance gewaarborgd. De onderliggende databasereplicatie zorgt er met behulp van Percona voor dat de gegevens consistent blijven.

  • Loadbalancing

    ProxySQL kan als slimme loadbalancer fungeren. Op welke manier de proxy precies wordt ingezet, is sterk afhankelijk van de eisen en wensen die gesteld worden aan de database, de applicatie en de wijze waarop de informatiestromen moeten plaatsvinden. Wordt er een incidentele toename in data verwacht, zoals bij een speciale actie, dan is het advies om proactief op te schalen en de proxy te gebruiken voor loadbalancing.

  • Extra security

    Doordat er een extra laag wordt geplaatst tussen de webapplicatie en de database, wordt ook een extra securitylaag toegevoegd. ProxySQL maakt het mogelijk om on-the-fly queries te herschrijven en bezit ook functionaliteit om SQL injection en andere malafide queries te herkennen en te blokkeren.

Waarom gebruikmaken van ProxySQL?

Wanneer een hoge uptime gewenst is, dan biedt ProxySQL nuttige functionaliteit. Doordat ProxySQL daadwerkelijk met de onderliggende databases kan praten en SQL kan lezen en schrijven, onderscheidt het zich van andere toepassingen die load balancing en hoog-beschikbaarheid kunnen verzorgen.

Door inzet van ProxySQL is het ook eenvoudiger om onderhoud uit te voeren. Je kunt een deel van de backend uitschakelen zonder dat dit impact heeft op de applicatie, doordat ProxySQL moeiteloos queries en connecties op intelligente wijze herverdeelt. Met ProxySQL heb je meer grip op de queries die op je cluster worden afgeschoten en zijn deze slimmer te verdelen, waardoor de servercapaciteit ook nog eens beter wordt benut.

Wat zijn de bezwaren?

ProxySQL maakt de omgeving complexer, waardoor die logischerwijs lastiger beheersbaar is. Daarbij moet het handmatig worden ingesteld. En afhankelijk van de inrichting kunnen de kosten oplopen.

Tot slot

ProxySQL bestaat inmiddels al een aantal jaar, maar is nu eigenlijk pas stabiel en goed genoeg voor productieomgevingen. Daarom blijven we ons in de materie verdiepen. Uiteraard houden we u op de hoogte van onze bevindingen, want we delen onze kennis graag.

Bent u benieuwd of ProxySQL ook voor uw business een waardevolle toevoeging is? Neem dan gerust contact met ons op. We gaan met plezier met u in gesprek.


Altijd up-to-date met onze laatste artikelen.

@

Kwaliteit. Betrouwbaar. Betrokken.
  • 24/7 service support
  • Nederlandse datacenters
  • ISO 27001 gecertificeerd
vmware enterprise service provider