Webperformance bij Versio verbeteren met Varnish en Redis

Gewijzigd op Wo, 6 Nov om 1:41 PM

Als je een eigen webserver hebt neergezet wil je dat de content van je website snel geladen wordt. Als dat niet het geval is heb je namelijk kans dat je klanten mist. Een veel toegepaste manier om websites snel te laten laden, is het cachen van reeds opgevraagde webpagina's. Daarvoor bestaan een aantal technieken waarvan we er twee in dit artikel bespreken: Varnish en Redis.


Inhoudsopgave


Inleiding

Om de performance van moderne websites te verbeteren is het inzetten van caching een belangrijke stap. Met name het cachen van dynamische content is gunstig. Voor dynamische content moet de pagina opgebouwd worden door het opvragen of berekenen van allerlei gegevens. Door met name die resultaten als cache op te slaan behaal je veel tijdwinst. Hoewel een webserver als Apache of NGINX zelf ook functionaliteit aan boord heeft om webcontent te cachen, is software zoals Varnish en Redis veel beter geschikt. Die zijn namelijk toegespitst op deze taak en hoeven zich verder niet bezig te houden met het beheer van de webpagina's zelf.


Varnish

Varnish is een populaire web accelerator, die opgevraagde content in het geheugen opslaat. Dat hoeft niet perse een complete webpagina te zijn, Varnish kan ook gedeeltes van een pagina opslaan. Naast cachen verhoogt Varnish de performance nog verder door data te comprimeren. Een browser die gecomprimeerde data accepteert, krijgt zodoende de webcontent sneller geleverd. Als de webclient geen compressie ondersteunt, decomprimeert Varnish het automatisch.


Verder heb je met Varnish meteen een load balancer aan boord. Varnish houdt daarbij rekening met de performance van de individuele webservers. Als eentje minder presteert, krijgt die vanzelf minder verzoeken te verwerken. Mocht een bepaalde webserver volledig uitvallen, dan haalt Varnish hem uit de pool.


Om de performance nog meer op te krikken gebruik je bij Varnish de zogenaamde Varnish Configuration Language (VLC). Hiermee schrijf je configuraties die Varnish vervolgens compileert tot een shared object. Die laadt hij dan dynamisch in het geheugen. Dat maakt Varnish niet alleen snel, maar ook flexibel. Om de configuratie aan te passen hoef je de web accelerator immers niet te herstarten. Op deze VLC functionaliteit is overigens in Varnish verder geborduurd. Op vergelijkbare wijze maak je namelijk ook een module genaamd VMOD, om de functionaliteit van Varnish uit te breiden of aan te passen.


Om de performance van Varnish in de gaten te houden heb je de beschikking over vele metrics en statistische gegevens. Zo kun je bijvoorbeeld zien hoeveel clients verbinding maken en hoe vaak content uit de cache geleverd wordt of juist niet (de zogeheten cache hits en misses). Tot slot haal je met Varnish ook geavanceerde functionaliteit in huis. Varnish kan bijvoorbeeld als single sign-on gateway dienen, als firewall speciaal voor webapplicaties en zelfs als router voor HTTP verkeer.


Redis

Redis is eigenlijk een database die niet specifiek is gemaakt met het doel om als caching frontend van webservers te fungeren. Redis heeft echter wel een databaseontwerp dat hem erg geschikt maakt om webcontent te cachen. In de eerste plaats is Redis een zogeheten in-memory database. Alle inhoud bevindt zich dus in het snelle RAM, zodat Redis data heel vlot kan leveren. Overigens kan Redis data ook persistent opslaan. Hij doet dat door een journal op disk bij te houden. Je moet dit echter eerder zien als een manier om het allergrootste deel van de data weer snel in de lucht te hebben, zonder dat het erg is dat je een beetje kwijt bent.


Verder gebruikt Redis een eenvoudige structuur om gegevens op te slaan. Alle data wordt namelijk simpelweg als key-value paren opgeslagen. Redis is dus geen database zoals Oracle, MariaDB of PostgreSQL die data ordenen in kolommen en rijen. De bijbehorende query taal om data op te halen (SQL) is weliswaar flexibel, maar kost ook veel overhead. Redis daarentegen valt in de klasse van NoSQL databases en levert door zijn eenvoudige opslagstructuur data snel op.


Net als Varnish heb je bij Redis de nodige tools bij de hand om de performance te monitoren. Daarmee heb je niet alleen goed inzicht in de effectiviteit van Redis als cache. Ze helpen je eveneens om Redis optimaal te finetunen voor het gebruik als web accelerator. Omdat Redis eigenlijk een cache engine is en niet speciaal een web accelerator, werkt Redis niet vanzelf met webservers samen. Voor heel veel programmeertalen en applicaties is er echter ondersteuning voor Redis. Zo is er voor PHP een Redis extensie en heb je bij WordPress zelfs een speciale plugin voor Redis.


VPS

Voor de veeleisende gebruiker biedt Versio een speciaal zwaar pakket voor het VPS platform. Daarmee krijg je een enorme verbetering van de performance van je VPS. Als je dat vervolgens combineert met technieken zoals Varnish of Redis, bereik je uitstekende prestaties voor je webserver en hebben je klanten een geweldige gebruikerservaring.

Was dit artikel nuttig?

Dat is fantastisch!

Hartelijk dank voor uw beoordeling

Sorry dat we u niet konden helpen

Hartelijk dank voor uw beoordeling

Laat ons weten hoe we dit artikel kunnen verbeteren!

Selecteer tenminste een van de redenen
CAPTCHA-verificatie is vereist.

Feedback verzonden

We stellen uw moeite op prijs en zullen proberen het artikel te verbeteren