Het belang van Varnish Caching voor een website
Wat is caching?
Een website bestaat vaak uit dynamische onderdelen die veranderen bij elk bezoek en anders zijn voor elke gebruiker. Toch zijn er ook nog steeds heel veel gegevens en bestanden die niet veranderen. Denk bijvoorbeeld aan een productpagina; prijsinformatie en producteigenschappen veranderen niet voortdurend. Caching kan ervoor zorgen dat deze gegevens die niet vaak veranderen worden opgeslagen in het cachegeheugen, wat per definitie een stuk sneller is dan steeds de data ophalen uit een database.
Concreet zijn er drie factoren die de totale snelheid van je website zullen bepalen. Op het eerste niveau is er de infrastructuur. Het is de verantwoordelijkheid van de hostingprovider (zoals Combell) om ervoor te zorgen dat er performante infrastructuur voorhanden is. Op het tweede niveau hebben we de back-end, de code die de dynamiek achter de website regelt door te communiceren met een database. Tot slot is er de front-end, dit is wat de gebruiker effectief ziet. Deze bestaat uit HTML, CSS, afbeeldingen, Javascript, … De optimalisaties die hier gebeuren, bestaan bijvoorbeeld uit het gebruiken van een CDN, afbeeldingen comprimeren en het gebruik van minified scripts.
De snelheid van je website hangt af van drie factoren: infrastructuur, back-end en front-end.
Waar knelt het schoentje?
Je zou dus denken dat je enkel de front-end moet optimaliseren om een snelle website te krijgen, maar toch is het vooral de achterliggende code die bepaalt hoe snel een website al dan niet is. Er gaan namelijk heel wat processen gepaard met een dynamische website.
Alles begint met een bezoeker die een http-request naar de back-end stuurt. Die request wordt dan verwerkt door de achterliggende code en vaak wordt hiervoor beroep gedaan op een databank. De data van de databank moet vervolgens opnieuw verwerkt worden en in een http-response wordt het uiteindelijke resultaat dan aan de gebruiker getoond.
Al deze processen kunnen behoorlijk wat tijd vragen en bovendien een grote last op je server leggen. Zeker wanneer je veel bezoekers op je website hebt, kunnen al deze berekeningen er al snel voor zorgen dat je server het moeilijk krijgt. Dit is waar caching de ridder op het witte paard is. Dankzij caching moeten al deze berekeningen namelijk niet steeds opnieuw worden uitgevoerd. Kort samengevat zorgt caching er dus voor dat je data die toch niet verandert niet nodeloos herberekent.
Varnish caching
Varnish caching is slechts een van de vele technologieën om websites te cachen. Andere alternatieven in het rijtje, zijn bijvoorbeeld Redis en Memcached. Deze laatste twee zijn er eerder in gespecialiseerd om output van dataprocessen te cachen. Het is met andere woorden heel snel RAM-geheugen dat je kan aanspreken zodat je niet steeds de database moet raadplegen. Varnish daarentegen, kan volledige pagina’s opslaan en kan zo de server aanzienlijk ontlasten.
Varnish kan volledige pagina’s cachen en zo de server aanzienlijk ontlasten.
Dit doet het door te opereren als een op zichzelf staand systeem dat voor de webserver staat. Op basis van de URL’s kunnen vervolgens gecachte pagina’s worden aangeboden. Varnish maakt eveneens gebruik van het RAM-geheugen om gecachte resultaten op te slaan.
Varnish is een van de technologieën die het meest wordt gebruikt net omdat het volledige pagina’s kan cachen. Dit is inclusief afhankelijkheden, zoals afbeeldingen, CSS en Javascript. Bij een moderne website is het echter zo dat je niet elk deel van de website wil cachen. We gebruiken opnieuw een webshop ter illustratie. We kunnen gerust de productpagina’s cachen, maar het winkelwagentje van de gebruiker kan je niet cachen omdat dit voor iedere bezoeker anders is. Varnish kan hier flexibel mee omgaan en mede daardoor is het een van de meest gebruikte technologieën om de snelheid van een website te boosten.
Time to live
Ongeacht het feit dat Varnish flexibel is, kan je nog steeds niet gewoon alles in Varnish proppen en hopen op het beste. Er moet steeds overwogen worden wat je Varnish precies zal laten cachen en voor hoe lang. Concreet zal je dit doen met een Time To Live die bepaalt wanneer je cache ververst moet worden.
Wanneer je echter zaken verandert, zal je er zelf voor moeten zorgen dat je Varnish meldt dat er wijzigingen hebben plaatsgevonden en dat de cache dus opnieuw moet worden opgebouwd. Met andere woorden, je moet items uit de cache verwijderen. Dit kan aan de hand van bepaalde methodes van Varnish, Redis of Memcached. Wanneer je een CMS gebruikt (zoals WordPress) zijn er echter gelukkig handige plugins voorhanden die veel van deze huishoudelijke taken uit handen nemen.
Wat is caching?
Een website bestaat vaak uit dynamische onderdelen die veranderen bij elk bezoek en anders zijn voor elke gebruiker. Toch zijn er ook nog steeds heel veel gegevens en bestanden die niet veranderen. Denk bijvoorbeeld aan een productpagina; prijsinformatie en producteigenschappen veranderen niet voortdurend. Caching kan ervoor zorgen dat deze gegevens die niet vaak veranderen worden opgeslagen in het cachegeheugen, wat per definitie een stuk sneller is dan steeds de data ophalen uit een database.
Concreet zijn er drie factoren die de totale snelheid van je website zullen bepalen. Op het eerste niveau is er de infrastructuur. Het is de verantwoordelijkheid van de hostingprovider (zoals Combell) om ervoor te zorgen dat er performante infrastructuur voorhanden is. Op het tweede niveau hebben we de back-end, de code die de dynamiek achter de website regelt door te communiceren met een database. Tot slot is er de front-end, dit is wat de gebruiker effectief ziet. Deze bestaat uit HTML, CSS, afbeeldingen, Javascript, … De optimalisaties die hier gebeuren, bestaan bijvoorbeeld uit het gebruiken van een CDN, afbeeldingen comprimeren en het gebruik van minified scripts.
De snelheid van je website hangt af van drie factoren: infrastructuur, back-end en front-end.
Waar knelt het schoentje?
Je zou dus denken dat je enkel de front-end moet optimaliseren om een snelle website te krijgen, maar toch is het vooral de achterliggende code die bepaalt hoe snel een website al dan niet is. Er gaan namelijk heel wat processen gepaard met een dynamische website.
Alles begint met een bezoeker die een http-request naar de back-end stuurt. Die request wordt dan verwerkt door de achterliggende code en vaak wordt hiervoor beroep gedaan op een databank. De data van de databank moet vervolgens opnieuw verwerkt worden en in een http-response wordt het uiteindelijke resultaat dan aan de gebruiker getoond.
Al deze processen kunnen behoorlijk wat tijd vragen en bovendien een grote last op je server leggen. Zeker wanneer je veel bezoekers op je website hebt, kunnen al deze berekeningen er al snel voor zorgen dat je server het moeilijk krijgt. Dit is waar caching de ridder op het witte paard is. Dankzij caching moeten al deze berekeningen namelijk niet steeds opnieuw worden uitgevoerd. Kort samengevat zorgt caching er dus voor dat je data die toch niet verandert niet nodeloos herberekent.
Varnish caching
Varnish caching is slechts een van de vele technologieën om websites te cachen. Andere alternatieven in het rijtje, zijn bijvoorbeeld Redis en Memcached. Deze laatste twee zijn er eerder in gespecialiseerd om output van dataprocessen te cachen. Het is met andere woorden heel snel RAM-geheugen dat je kan aanspreken zodat je niet steeds de database moet raadplegen. Varnish daarentegen, kan volledige pagina’s opslaan en kan zo de server aanzienlijk ontlasten.
Varnish kan volledige pagina’s cachen en zo de server aanzienlijk ontlasten.
Dit doet het door te opereren als een op zichzelf staand systeem dat voor de webserver staat. Op basis van de URL’s kunnen vervolgens gecachte pagina’s worden aangeboden. Varnish maakt eveneens gebruik van het RAM-geheugen om gecachte resultaten op te slaan.
Varnish is een van de technologieën die het meest wordt gebruikt net omdat het volledige pagina’s kan cachen. Dit is inclusief afhankelijkheden, zoals afbeeldingen, CSS en Javascript. Bij een moderne website is het echter zo dat je niet elk deel van de website wil cachen. We gebruiken opnieuw een webshop ter illustratie. We kunnen gerust de productpagina’s cachen, maar het winkelwagentje van de gebruiker kan je niet cachen omdat dit voor iedere bezoeker anders is. Varnish kan hier flexibel mee omgaan en mede daardoor is het een van de meest gebruikte technologieën om de snelheid van een website te boosten.
Time to live
Ongeacht het feit dat Varnish flexibel is, kan je nog steeds niet gewoon alles in Varnish proppen en hopen op het beste. Er moet steeds overwogen worden wat je Varnish precies zal laten cachen en voor hoe lang. Concreet zal je dit doen met een Time To Live die bepaalt wanneer je cache ververst moet worden.
Wanneer je echter zaken verandert, zal je er zelf voor moeten zorgen dat je Varnish meldt dat er wijzigingen hebben plaatsgevonden en dat de cache dus opnieuw moet worden opgebouwd. Met andere woorden, je moet items uit de cache verwijderen. Dit kan aan de hand van bepaalde methodes van Varnish, Redis of Memcached. Wanneer je een CMS gebruikt (zoals WordPress) zijn er echter gelukkig handige plugins voorhanden die veel van deze huishoudelijke taken uit handen nemen.