Een waarschuwing vooraf, dit kan best een technisch verhaal worden. Ik ga mijn best doen dit ook interessant te houden voor mensen die geen verstand hebben van de techniek en dingen achter een website.
Hosting
Als je een website begint heb je naast een domeinnaam ook hosting nodig. Dit is in het kort een harde schrijf op het internet waar jouw website op geplaatst is en welke vervolgens middels jouw unieke domeinnaam op te vragen is. Een hostingpakket heb je al voor pakweg 3 euro per maand en is voor veel van de gevallen goed, tot je website ietsje groter wordt dan gemiddeld.
Virtual Private Server
Wanneer een website wat groter wordt ga je snel kijken naar een wat specifiekere oplossing voor jouw website. 1 waarbij je niet met andere gebruikers op een zelfde systeem zit (shared webhosting), maar een snelle webserver waar je zelf alles in kunt stellen.
Een mogelijkheid die je dan hebt is het afnemen van een VPS, een zogenaamde Virtual Private Server. Dit is een virtuele computer die ergens draait op een supercomputer (op een co-locatie van jouw hostingprovider).
Het grote voordeel is dat dit systeem écht van jouw is en je de resources (snelheid van de computer) niet hoeft te delen met andere websites die er op dit pakket staan.
Aantal servers
Bij Marketheme maken we gebruik van meerdere servers. Zo hebben we 2 productie servers (1 voor Marketheme 1, maar ook 1 voor Marketheme 2) zodat ook hierin niks elkaar in de weg zit. Verder hebben we ook nog 1 staging omgeving. Een staging omgeving is een schaduw kopie waar eerst nieuwe functionaliteiten op getest worden alvorens ze live gaan. Deze omgeving wordt gebruikt als laatste check om te controleren dat er toch geen bugs mee zijn gekomen in de code.
Al deze servers hebben 4 snelle Intel Xeon processoren, 8GB aan geheugen en maken gebruik van een super snel 300Gbps+ netwerk. Voor alle servers hebben wij ook een licentie voor WHM (Web Host Manager/cPanel) voor het beheren van bijvoorbeeld de laatste PHP versies.
Deze servers zijn allemaal afgenomen bij Neostrada. Wij hebben daar ook een SLA (Service Level Agreement) wat inhoud dat zij 24/7 de servers monitoren en ingrijpen bij escalatie.
Locale omgeving
Alle ontwikkelingen van Marketheme voer ik uit op mijn lokale computer of laptop. Ik draai op mijn systemen een webserver waarin ik alles test, bedenk, maak en update. Voor degene die het interessant mocht vinden, de systemen die ik thuis gebruik:
Lenovo Thinkpad X1 Carbon
Deze lekkere lichte laptop met 16GB aan werkgeheugen en een 512GB SSD voor opslag is mijn ideale werkpaard voor als ik even lekker op de bank zit maar toch even de mail wil verwerken. Ook is dit het systeem dat ik vrijwel overal mee naar toe neem als ik voor langere tijd weg ben of wanneer er mogelijk kritische updates uitgevoerd dienen te worden. Op deze manier kan ik overal bereikbaar zijn.
Computer
De plek waar ik doorgaans toch wel de meeste tijd achter doormaak is mijn pc. Elke 2 jaar voorzie ik deze van een nieuwe videokaart en elke 4 jaar koop ik een nieuw systeem of voorzie ik alle componenten van een upgrade.
Mijn huidige set-up:
- AMD Ryzen 2700X processor
- MSI B450 Tomahawk moederbord
- MSI GeForce GTX 1070 videokaart
- 16GB HyperX Fury geheugen
- NZXT H500i Wit behuizing
- 2x SSD met opgeteld 750GB opslag
- 2x HDD met opgeteld 1750GB opslag
Dit systeem telt 3 schermen, zodat ik heel snel kan schakelen. Wat betreft randapparatuur maak ik voornamelijk gebruik van Logitech. Wanneer ik heel veel aan het typen ben heb ik ook nog een zelfgebouwd mechanisch toetsenbord wat ik gebruik 🙂
NAS
Sinds dit jaar draai ik binnen mijn eigen netwerk ook een NAS, waar ik indien nodig heen en weer schuif met bestanden/externe diensten die ik binnen eigen netwerk wil houden. Deze geeft mij een netwerkopslag van 8000GB extra.
Git omgeving
Als je ontwikkeld in 2019 kan het niet meer voorkomen dat je code kwijt is omdat je harde schrijf gecrasht is. Het is een redelijke standaard geworden om gebruik te maken van een git omgeving als Bitbucket of Github om je code naar toe te “pushen”.
Ook voor Marketheme maak ik gebruik van een git omgeving. Je werkt in een dergelijke omgeving met zogenaamde “commits”. In een commit staan buiten de wijzigingen die je hebt gedaan, ook een opmerking met wat je precies hebt gedaan. Vervolgens kan je deze wijzigingen pushen en pullen binnen je andere branches. Veel termen he?
In de bovenstaande afbeelding kan je het beter zien. Zo heb ik daar een commit geselecteerd die “rearranged selector for that cta button” heet. Dit is een referentie voor mij, zodat ik weet welk stukje code dit is. Deze kan ik vervolgens testen in 1 van mijn andere branches:
- Dev (lokale ontwikkeling omgeving, complete code van MT2)
- Test (de staging omgeving, complete code van MT2)
- Master (de live omgeving, complete code van MT2)
Losse stukjes functionaliteit maak ik zelf altijd in een “hashtag branch”, zoals in dit geval #reviewchecks. Stel dat ik zou bezig gaan met het ontwikkelen van een nieuw block, bijvoorbeeld een menu, dan zou ik een #menublock aanmaken waarin ik alleen alle wijzigingen doe voor dat block.
Op deze manier kan ik meerdere dingen tegelijk ontwikkelen, zonder dat de code altijd 100% moet kloppen. Je kunt iets dus even rustig opzij leggen om ergens anders mee bezig te gaan, of in een zeer geisoleerde omgeving een bug oplossen. Pas als alles klopt, push je het naar een andere branch, waar je het vervolgens weer kan pullen. Super veilig!
En nog heel veel meer!
Er is nog zo veel meer op de achtergrond waar je eigenlijk geen weet van hebt wanneer je een website gebruikt binnen Marketheme. Wat dacht je bijvoorbeeld van de betaalde plug-ins en externe diensten die we gebruiken om de website veilig en snel te houden, of te voorzien van extra functionaliteiten? Mocht je ergens meer van willen weten, voel je vrij om een reactie achter te laten.