Beginnen met een VPS : Is een VPS echt een oplossing voor een betere performance?
De meeste mensen -inclusief ikzelf- zetten hun eerste ‘website stappen’ op het Internet via ‘shared hosting’. Maar wanneer je site zwaar wordt, of het verkeer hoog, dan is het goed om te overwegen of het tijd is om te beginnen met een VPS. Voor degenen die niet weten waar VPS voor staat, een VPS is een Virtual Private Server. En ik durf te wedden, dat dit voor de meeste mensen nog steeds weinig duidelijk maakt.
Vroeger had je wanneer je het Internet op wilde gaan slechts twee opties, je maakte gebruik van een ‘shared hosting’ pakket, waarbij een groot aantal accounts op één machine wordt geplaatst, of je zorgde dat je jouw eigen stukje hardware ergens in een computercentrum kreeg.
Die laatste optie was duur en voor de meeste mensen onbereikbaar.
De nadelen van shared hosting
Shared hosting levert een aantal nadelen op. Het grootste nadeel is dat je alle computerresources met een aantal andere gebruikers moet delen. Staat er een populaire website op dezelfde server als jouw website, dan kan je er op rekenen, dat je dit merkt in de performance. En wanneer jouw website die populaire website is, is het niet onmogelijk dat je gewaarschuwd wordt door je hoster, dat je een onevenredig deel van de performance opsoupeert.
Een tweede nadeel van shared hosting is de veiligheid. Wanneer één website onveilig is, bestaat er een redelijke kans, dat een hacker dit gebruikt om ook andere sites op dezelfde machine te corrumperen.
Een derde nadeel is, dat Shared hosting per definitie niet flexibel is. Je kan geen extra software (laten) installeren, je bent beperkt tot de software die jouw hoster je biedt.
Virtual Private Server (VPS) – Samen de privacy delen
Een VPS is eigenlijk een bijzondere vorm van ‘shared hosting’. Want je deelt de fysieke server samen met een aantal andere mensen.
Met een VPS krijg je een afgescheiden stukje van een fysieke server met eigen opslag, geheugen (RAM), en processorkracht. Dit betekent dat je meer controle en vrijheid hebt dan bij gedeelde hosting, waar meerdere gebruikers dezelfde bronnen delen.
Technisch gezien maakt een VPS gebruik van virtualisatietechnologie, waarmee één fysieke server wordt opgedeeld in meerdere virtuele servers. Elk van deze virtuele servers werkt onafhankelijk, alsof het een eigen fysieke machine is. De capaciteit van de fysieke machine wordt eerlijk verdeeld over de verschillende ‘instanties’ op de machine. Een succesvolle website krijgt evenveel processor-tikken als de website die de hele dag niets doet, omdat niemand hem bezoekt.
En daarmee biedt een VPS een aantal voordelen ten opzichte van een shared hosting pakket:
- Meer flexabiliteit: Je kan jouw server net zo configureren als je wilt (binnen bepaalde grenzen, die ik later aangeef)
- Betere prestaties: Omdat je je eigen bronnen hebt, beïnvloeden andere gebruikers je snelheid niet.
- Schaalbaarheid: Je kunt makkelijk meer resources toevoegen wanneer je site groeit.
Managed vs. unmanaged VPS
Wanneer je wilt beginnen met een VPS, is één van de zaken waar je goed bij stil moet staan, of je gebruik wilt maken van een ‘managed’ of ‘unmanaged’ Virtual Private Server. En dat heeft eigenlijk alles te maken met het niveau van ervaring wat je met computers hebt.
Bij een managed virtual private server kan je altijd terugvallen op ondersteuning door het hostingbedrijf. Maar die ondersteuning is vaak beperkt, en dat voor een heel goede reden. Wanneer jij bepaalde software op jouw server wilt installeren, is het vrijwel onmogelijk voor de support afdeling van jouw hostingpartij al die software te kennen.
Maar er wordt zorg gedragen, voor updates, back-ups en andere onderhoudstaken voor jouw server.
Wanneer je niet veel kennis hebt van Linux en hosting, is een managed VPS altijd de beste oplossing. Helemaal wanneer eigenlijk je enige doel het online hebben van je webshop of WordPress website is. Alle extra ’technische toeters en bellen’ heb je niet echt nodig. Een goede partij voor een Managed VPS voor WordPress is SiteGround. Hoewel ik er zelf mijn sites niet heb, heb ik meer dan tien jaar goede ervaringen met hen door de goede ervaringen van mijn klanten.
Een andere aanbieder van managed VPS hosting is Hostinger. Ze bieden deze dienst echter aan onder de naam ‘Cloud hosting’, omdat bij hun ‘VPS hosting’ gelijk staat met unmanaged hosting.
Een derde partij die managed WordPress hosting aanbiedt is Pressable. Een bedrijf van Automattic, het bedrijf wat ook achter WordPress en WooCommerce zit.
En om tenslotte nog een vierde te noemen, maar dat is alleen wanneer je een cloud hosting partij zoekt voor WordPress met Elementor, zijn de hostingpakketten van Elementor voor WordPress en WooCommerce ook aan te bevelen. Voor wat betreft de Elementor WooCommerce hosting, lees ook mijn blogpost over dit onderwerp.
Bij een unmanaged virtual private server heb je al deze voordelen niet. Voor de support afdeling is jouw server letterlijk een ‘black box’. Het voordeel dat je wel hebt, is dat het vaak stukken voordeliger is en bovendien jou complete vrijheid geeft. Of je nu wilt ontwikkelen in Ruby, Python of een programmeertaal die bijna niemand kent, het maakt niet uit. Je kan doen wat je wilt.
Is een VPS altijd sneller?
Is een VPS altijd sneller van een shared hosting pakket?
In de praktijk wel, maar dat wil nog niet zeggen, dat twee VPS pakketten bij twee verschillende hosters met dezelfde metrics ook eenzelfde performance hebben. Dit heeft ook alles te maken met hoeveel VPS-en een hoster installeert op een fysieke machine. De ’tijd-tikken’ van de processor(s) in de fysieke server worden immers gedeeld door meerdere Virtual Private Servers.
Enkele zaken om aan te denken, wanneer je wilt beginnen met een VPS
Wanneer je kiest voor een unmanaged VPS, dan is het goed om een aantal zaken goed in de gaten te houden. Tenzij je een ‘shell prompt’ held bent, en liever commando’s tikt, dan knoppen klikt, wil je misschien gebruik maken van een beheerpaneel voor het beheren van je site.
Wanneer je prijzen vergelijkt, zitten er soms gigantische verschillen in de kosten voor identieke configuraties. Hier is een aantal redenen voor te bedenken
- De ene hoster kan voordeliger aanbieden omdat hij meer VPS-en op één fysieke machine installeert, dan de andere hoster. Dit komt ook met een performance verschil.
- De ene hoster kan voordeliger aanbieden omdat hij groter inkoopt.
- Een veel over het hoofd geziene factor: De duurdere hoster biedt een service aan met back-up service, beheerspanel, uptime bewaking en meer, de goedkopere doet dat niet, en biedt dit als extra aan.
- De ene hoster biedt complete ‘images’ aan (een kant en klaar ingerichte server voor een specifiek doel) en de ander doet dat niet.
Afhankelijk van je eigen kennis en ervaring kan een goedkope oplossing de juiste zijn, maar het is goed om op voorhand hier goed over na te denken.
Zelf ben ik recentelijk wat dieper in de verschillende hostingpartijen die VPS-en aanbieden gedoken. Dat had weinig of niets te maken met WordPress, maar vanwege een aantal Laravel projecten. Bij het vergelijk van de verschillende partijen liep ik tegen een aantal situaties aan, die ik hieronder even zal toelichten.
‘Images’ vs. kale Linux box
Tenzij je het regelmatig doet en er enorm veel plezier in hebt om een webserver zelf van begin tot eind op te bouwen, zal je zeker geen ‘kale linux box’ willen hebben. De meeste Virtual Private Server aanbieders bieden gelukkig ‘images’ aan van complete omgevingen bedoeld voor een zeker doel.
Wanneer je echter kiest voor een VPS met een vooringesteld beheerpaneel, dan komen daar extra licentiekosten bij. Dus al heb je een VPS voor 15 euro per maand, kan je nog rekenen op minimaal 31 euro per maand voor CPanel of minimaal 14 euro voor Plesk. Wanneer je de prijzen tussen verschillende aanbieders vergelijkt, is dat iets om rekening mee te houden.
Een gratis beheerpaneel is overigens ook mogelijk. Een aantal providers bieden ook CloudPanel aan als beheerspaneel. Dit is een gratis, open source product met een zeer gebruikersvriendelijke manier om complete WordPress (en andere) configuraties te installeren. Voor meer informatie over de ‘tech stack‘, en de ondersteunde applicaties is er genoeg informatie op hun website te vinden.
Persoonlijk ben ik zeer gecharmeerd van CloudPanel, en mocht jouw hosting provider CloudPanel als optie aanbieden, is dit zeker aan te bevelen. Hier is een lijst met de cloud aanbieders die CloudPanel zelf noemt, maar dit zijn niet de enige spelers.
Een ander gratis beheerpaneel is Webmin. Voor het beheren van een enkel VPS is dit echter een overkill. Webmin is vooral bedoeld voor het beheren van een netwerk van Linux servers op een afstand.
Een andere mogelijkheid is dat je kiest voor een applicatie centrale toepassing. Per slot van rekening, wanneer je dit artikel leest, dan ben je waarschijnlijk op zoek naar een VPS voor WordPress. Laravel, Ruby-on-Rails en Drupal bijvoorbeeld zullen je weinig interesseren.
Veel VPS aanbieders bieden ook images aan voor specifieke WordPress gerichte inrichtingen. Zoals bijvoorbeeld een package met OpenLiteSpeed of een meer traditionele oplossing met een Apache webserver.
Om je een indruk te geven van de keuzeopties die je hebt voor een VPN image, hier een overzicht voor de opties die Hostinger je biedt. Haast teveel om op te noemen.
Beheerpaneel gerichte images
Applicatie gerichte images
Een keuze maken voor een webserver.
Eén van de grote voordelen van een eigen VPS is dat je een keuze kan maken voor de beste tools voor jouw toepassing. Alleen… wat is het best?
Wanneer we uitgaan van een WordPress dan zijn er drie webservers die in aanmerking komen, Apache, NGINX en LiteSpeed.
Apache
Apache is de oudste van deze webservers. In de vroege dagen van het WWW waren er twee webserver oplossingen, de oorspronkelijke server van het CERN en de NCSA (National Center for Super Computing Applications) server. Beide webservers waren Open Source. In 1995 ging een groep ontwikkelaars aan de slag om op basis van de code voor de oorspronkelijke NCSA server te bouwen. En omdat de eerste versies vooral patches op de oorspronkelijke sourcecode waren, werd het door de ontwikkelaars al snel aangeduid als ‘a patchy webserver’. Omdat dit marketingtechnisch nu niet het beste verhaal is (‘ons product is een opgelapte versie van een oud product’) werd verhaal al snel aangepast, en werd geschiedenis herschreven: ‘De naam “Apache” is een eerbetoon aan het Apache Native American-volk, vanwege hun reputatie van kracht en vasthoudendheid’.
Inmiddels is Apache slechts één van de vele software producten van de Apache Software Foundation.
Vandaag de dag is Apache nog steeds de meest gebruikte webserver op het Internet. De kracht van Apache is de eenvoud van het configureren. Door configuratiebestanden per folder te gebruiken (via de .htaccess bestanden) is het een geweldige oplossing voor met name shared hosting, waar diverse applicaties diverse eisen aan het systeem stellen.
Omdat Apache bij veel gelijktijdig verkeer minder presteert, is de combinatie van Apache voor het afhandelen van PHP (of andere programmeertaal) requests en NGINX als ‘proxyserver’ voor de statische content (JavaScript, CSS, media) een populaire oplossing bij veel hosting providers.
NGINX
NGINX, uitgesproken als Engine-Ex, is een krachtige open source webserver die werd ontworpen om de beperkingen van traditionele webservers zoals Apache aan te pakken. De ontwikkelaar van NGINX -Igor Sysoev- wilde met zijn webserver het zogenaamde C10K probleem oplossen: Hoe kan een server meer dan 10.000 gelijktijdige verbindingen verwerken.
Met een webserver als Apache maak jij vanuit jouw browser verbinding met de webserver. Op dat moment heb je een verbinding met Apache open staan, waarover de communicatie plaats vindt. Stel, jij vraagt een webpagina op. Maar het is een WordPress pagina, dus de pagina moet ‘opgebouwd’ worden door een PHP proces. En dat PHP proces moet weer wachten op een antwoord van een database. Laten we zeggen, dat dat hele proces 500 ms duurt. Tijdens die 500 ms heb jij nog steeds een exclusieve verbinding met Apache. Om een andere bezoeker te helpen, moet Apache een nieuwe ‘medewerker’ (een ’thread’) inzetten om die tweede bezoeker te bedienen. Bij een drukke tijd kost dat behoorlijk wat aan resources.
NGINX is meer een medewerker die je bestelling opneemt, en direct vraagt of je even op de bank wilt gaan zitten. Je wordt zo geroepen als je bestelling klaar is. En direct daarna vraagt hij de volgende bezoeker wat hij wil hebben. Zodra jouw bestelling klaar is, wordt je geroepen om de bestelling in ontvangst te nemen. Maar in die tussentijd heeft hij vijftig andere bestellingen op kunnen nemen.
Apache ‘spreekt’ PHP, indien de juiste modules zijn geladen. NGINX doet dat niet. In plaats daarvan maakt NGINX gebruik van een parallel draaiende applicatie PHP-FPM (PHP FastCGI Process Manager). In plaats van zelf proberen het wiel uit te vinden worden PHP bestanden direct naar PHP-FPM gestuurd, die deze uitvoert en resultaat terug geeft aan NGINX. NGINX zelf doet dus vrijwel niets dan het doorgeven van bestanden.
Je kunt NGINX het best vergelijken met een Fastfood restaurant, waar jij jouw eten bestelt, je bestelling wordt doorgegeven aan de keuken en je wordt geroepen, wanneer jouw eten klaar is. Apache is meer de alleen werkende eigenaar van een bakkerij, die voor iedere klant de bestelling opneemt, klaarmaakt en afrekent voor hij met de volgende klant begint.
Omdat de configuratie van NGINX niet -zoals bij Apache- decentraal kan worden gedaan, is NGINX als webserver minder geschikt voor shared hosting omgevingen. Wel wordt NGINX hier vaak in combinatie met Apache gebruikt voor het ontlasten van de Apache server.
NGINX als stand alone webserver wordt voornamelijk gebruikt in VPS- en Dedicated server omgevingen, waar alle webapplicaties door één beheerder of beheersafdeling worden beheerd. NGINX is door de ontwerper ook nooit bedoeld voor ‘kleine omgevingen’, de server is specifiek ontworpen voor high-performance toepassingen.
LiteSpeed
LiteSpeed komt in twee ‘smaakjes’, De commerciële versie en de ‘OpenLiteSpeed’ versie.
Beide versies zijn sneller dan de NGINX en Apache. De betaalde versie is 100% compatible met de Apache configuratiefiles en een ‘overgang’ van Apache naar LiteSpeed kan dan ook vrijwel probleemloos plaatsvinden.
LiteSpeed heeft een eigen Caching systeem wat naadloos samenwerkt met een aantal populaire webapplicaties als WordPress, Magento, Joomla en Drupal. Toch is er een aantal belangrijke verschillen tussen LiteSpeed en OpenLiteSpeed.
Aspect | LiteSpeed | OpenLiteSpeed |
---|---|---|
Apache-compabiliteit | Volledige compabiliteit met .htaccess | Beperkte ondersteuning: geen directe .htaccess ondersteuning. Configuratie moet worden omgezet naar de OpenLiteSpeed interface. |
Beheersinterface | Beheerpaneel zoals cPanel/WHM volledig geïntegreerd. | Beheertaken moeten handmatig via een eigen GUI of terminal worden uitgevoerd. |
Commerciële ondersteuning | Volledig ondersteund met technische ondersteuning en updates. | Geen officiële ondersteuning, afhankelijk van de community. |
Modules | Ondersteunt alle Apache-modules (zoals mod_security). | Beperkte ondersteuning voor Apache-modules. |
Licentie | Vereist een betaalde licentie op basis van gebruik (standaard, enterprise). | Volledig gratis en open-source. |
De LiteSpeed server is uitermate geschikt voor hosters die binnen een shared omgeving hun klanten een snelle website aan willen bieden. LiteSpeed biedt alle voordelen van Apache, maar is sneller en verwacht geen extra plugins voor caching (De LiteSpeed plugin voor WordPress, is geen ’traditionele’ caching plugin, die vanuit WordPress de caching bestanden genereert, maar een plugin die de instellingen van de LiteSpeed cache manipuleert).
And the winner is…
In dit hele verhaal over Virtual Private Servers is er geen werkelijke ‘winnaar’ of ‘verliezer’. Apache is -gezien de positionering- de ongetwijfelde winnaar van de ‘popular vote’. NGINX is wat hardnekkig in het gebruik, maar levert geweldige resultaten. En is gratis.
OpenLiteSpeed is is snel, maar is geen ‘vervanging’ voor Apache, en hoewel LiteSpeed een geweldige -snellere- vervanger voor Apache is, loop je hier tegen extra kosten aan.
Op lange termijn denk ik -of vrees ik?- dat LiteSpeed Apache zal vervangen op het gebied van shared hosting. Apache is een ‘resource slurper’ en extra processor capaciteit of extra geheugen is nog altijd duurder dan een licentie voor LiteSpeed.
Tenzij er natuurlijk ‘a patchy version of Apache’ komt, die -binnen de Open Source wereld- komt met een beter alternatief voor Apache, op een zelfde manier als Apache ooit een betere versie voor de NCSA webserver was.
NGINX is nooit bedoeld geweest voor shared hosting. Maar wanneer jij je WordPress site binnen een VPS laat draaien onder NGINX kan je je caching plugin in je site deactiveren. NGINX cached jouw site betrouwbaarder en sneller.
Database: MySQL of MariaDB
Een ander belangrijk punt om op te letten bij je Virtual Private Server is de database die je gaat gebruiken. WordPress is ooit gebouwd om te werken met MySQL, één van de weinige open source relationele databases die er op dat moment beschikbaar was. Toen MySQL eerst werd overgenomen door Sun, later door Oracle, en het licentiemodel veranderde hebben de oorspronkelijke makers van MySQL gebaseerd op compatibiliteit met MySQL een nieuwe relationele database ontwikkeld, MariaDB. MariaDB biedt meer mogelijkheden dan MySQL en is iets sneller met complexe vraagstellingen (queries). Door de manier waarop WordPress gebouwd is, is een groot aantal van die queries ook behoorlijk complex. Hoewel WordPress geschreven is met comptabiliteit met MySQL in gedachten en waarschijnlijk nooit gebruik zal gaan maken van die extra mogelijkheden, is omwille van het -al is het kleine- snelheidsverschil tussen MySQL en MariaDB, MariaDB de betere oplossing.
Back-ups van je Virtual Private Server naar een andere locatie
Een ander punt om goed rekening mee te houden wanneer je gaat beginnen met een VPS is het maken van de back-ups. Wat belangrijk is om bij stil te staan, is dat het maken van een back up nooit op de server zelf gedaan moet worden. Gaat er iets fout, waardoor je niet meer bij de server kan, dan zal je ook niet meer bij de back-ups kunnen komen. Zorg ervoor, dat back-ups altijd off-site worden opgeslagen.
Afhankelijk van de aard van je site zal je ook willen, dat de back-ups met een zekere frequentie worden gemaakt. Op zijn minst dagelijks.
Bij het beoordelen van de samenstelling van je Virtual Private Server is het dan ook goed ook te kijken wat de back-up opties zijn. Het maken van een back-up lijkt misschien heel vanzelfsprekend, zo vanzelfsprekend, dat je het niet hoeft te vermelden, maar steeds meer hostingpartijen bieden geen backups meer aan als standaard onderdeel van de dienstverlening. Je dient hier extra voor te betalen. Soms bieden ze wel back-ups aan, maar alleen wekelijks of handmatig.
Is er geen sprake van back-ups in de beschrijving van je hosting pakket, vraag dan nadrukkelijk of dagelijkse automatische off-site backups onderdeel uitmaken van het hosting plan en zo niet, wat de extra kosten per maand zijn.
Dataverkeer
Met een beetje geluk heb je enig inzicht in het dataverkeer van je site bij shared hosting, maar niet iedere shared hosting partij maakt deze gegevens inzichtelijk voor hun klanten. Als je het niet hebt, is het natuurlijk moeilijk in te schatten, hoeveel dataverkeer je gaat krijgen naar je server toe.
In VPS pakketten staat gewoonlijk ook aangegeven, wat je maximale dataverkeer per maand mag zijn. Om een goede indruk te krijgen van je werkelijke kosten, vraag naar de kosten van het dataverkeer van je Virtual Private Server wanneer de maandelijkse limiet wordt overschreden.
De WordXPression website
De WordXPression website draait op dit moment op een VPS pakket KVM 2 bij Hostinger. Ik maak hierbij gebruik van het CloudPanel beheerpaneel en gebruik WordPress in de hierboven beschreven NGINX configuratie met PHP-FPM en MariaDB.
Kijkend naar de systeem statistieken, die vanuit CloudPanel worden bijgehouden blijf ik met zowel geheugen beslag, processor capaciteit en disk i/o onder 20% van de beschikbare resources (wat dus eigenlijk wil zeggen, dat ik prima in staat ben piekbelastingen op te vangen).
Aan dataverkeer kan ik 8 TB per maand gebruiken, ongeveer 8x de hoeveelheid die ik verwacht ooit nodig te hebben.
Ik heb niets te klagen over de performance. Ik hoop jij ook niet!
Heb jij hulp nodig?
Wil jij je site migreren naar een VPS, maar zie je het migratie deel zelf niet zo zitten, dat kan je dit door WordXPression laten doen. Dit kan allemaal via de WordXPression Support Strippenkaart. Interesse? Maak een afspraak via het contactformulier