Deployen van een website
Wat is deployen van een website?
Deployen, ofwel het uitrollen van een website, is het proces waarbij je een website of applicatie van de ontwikkelomgeving naar een live omgeving verplaatst, waar gebruikers er toegang toe hebben. Dit betekent dat je je website daadwerkelijk beschikbaar maakt voor het publiek. Zonder deze stap draait je website alleen op je lokale computer en heeft niemand er iets aan.
Je kunt het deployen vergelijken met het schrijven van een boek. Tijdens het schrijven werk je in een notitieboek (de ontwikkelomgeving). Wanneer je klaar bent, druk je het boek af en leg je het in een bibliotheek waar mensen het kunnen lezen (de live omgeving). Het afdrukken en naar de bibliotheek brengen, is vergelijkbaar met het deployen van je website.
Tijdens het deployen zet je je code live via een webhostingprovider, dit kan onder andere via FTP, Git, of CI/CD-tools. Zelf gebruik ik Git. Git is een versiebeheersysteem dat wordt gebruikt om wijzigingen in de code van een project bij te houden. Het helpt ontwikkelaars om de geschiedenis van hun werk te beheren en samen te werken aan projecten zonder elkaars werk per ongeluk te overschrijven.
Om het wat duidelijker uit te leggen, stel je voor dat je een belangrijk document schrijft, zoals een boek. Elke keer dat je een hoofdstuk af hebt, maak je een kopie van het document, zodat je een versiegeschiedenis hebt. Als je op een dag merkt dat je een fout hebt gemaakt of iets hebt veranderd wat je niet had moeten doen, kun je teruggaan naar een eerdere versie. Git doet dit automatisch voor programmeercode: het bewaart snapshots van elke wijziging die je maakt, zodat je altijd kunt teruggaan naar een eerdere versie.
Een veelgebruikt platform hierbij is GitHub, dat is ook wat ik gebruik. Hier kun je repositories aanmaken. Een Git-repository is als een opslagplaats voor je project. Het bevat alle bestanden, mappen en de geschiedenis van alle wijzigingen die zijn aangebracht.
Elke keer dat je een verandering van je project opslaat, gebruik je een commit. Commits helpen je bij te houden wat er is veranderd en waarom.
In Git kun je verschillende takken of branches maken van je project. Dit betekent dat je meerdere versies van je project kunt hebben, bijvoorbeeld om nieuwe functies te ontwikkelen of bugs op te lossen zonder de hoofdversie van het project te beïnvloeden. Wanneer je klaar bent met werken aan een aparte branch, kun je die samenvoegen (mergen) met de hoofdbranch. Dit voegt de nieuwe wijzigingen toe aan de hoofdversie van je project.
Nederlandse hostingproviders
Veel Nederlandse hosters bieden beperkte opties voor serverconfiguratie, wat problemen kan opleveren bij het installeren van bepaalde software of frameworks. Vaak ondersteunen zij alleen PHP of WordPress. Het vinden van een Nederlandse hostingpartij die Python-code ondersteunt, kan een behoorlijke klus zijn. En als je er dan een vindt, wordt vaak Git niet ondersteund.
Dit is de reden waarom mijn eigen website niet via een Nederlandse hostingpartij draait. Gelukkig zijn er veel buitenlandse partijen die goed zijn en vaak gratis of goedkoop. Ik heb er inmiddels een aantal getest: Heroku, Vercel, en Koyeb. Momenteel draait mijn site op Railway.
Een belangrijke reden waarom ik voor Railway heb gekozen en niet meer voor Vercel en Koyeb, is dat de gratis versies van Vercel en Koyeb een lange opstarttijd hebben bij inactiviteit. Dit betekent dat je site bij elke nieuwe bezoeker enkele seconden kan duren om te laden, wat een negatieve impact heeft op de gebruikerservaring. Hier over heb ik het ook over gehad in mijn instagram post van 29 augustus 2024.
Bovendien zijn de betaalde versies van Vercel en Koyeb behoorlijk duur. Railway biedt een betaalde versie die goedkoper is en heeft een snellere opstarttijd, wat het aantrekkelijker maakt voor mijn behoeften.
Mijn oplossing met CloudFlare
Bij alle hostingpartijen krijg je DNS-instellingen door die je moet instellen bij je domeinnaamhost. In mijn geval is dat TransIP. Bij Vercel krijg je een IP-nummer, waardoor de instellingen gemakkelijk te configureren zijn. Bij Koyeb en Railway gebeurt dit echter niet, wat het instellen bemoeilijkt en bij TransIP moeilijk te realiseren was.
Om dit probleem op te lossen, maak ik nu gebruik van Cloudflare. Cloudflare is een netwerkservice die websites sneller, veiliger en betrouwbaarder maakt. Het fungeert als een tussenpersoon tussen een website en de bezoekers, en biedt een reeks functies die de prestaties en veiligheid van de website verbeteren. Cloudflare controleert en beveiligt het internetverkeer dat naar de website gaat en helpt om het sneller te leveren. Hierdoor kon ik de DNS-instellingen van Railway makkelijk toepassen door TransIP alleen voor domeinnaamregistratie te gebruiken en de DNS-instellingen via Cloudflare te beheren.
Best practices en tips
Bij het deployen van je website zijn er enkele best practices die je kunt volgen:
- Testen: Zorg ervoor dat je je code test in een stagingomgeving voordat je deze live zet. Dit helpt om problemen te identificeren voordat je website toegankelijk is voor het publiek.
- Veiligheid: Houd je website in de gaten voor eventuele beveiligingsproblemen. Implementeer regelmatige updates en beveiligingspatches.
- Backups: Maak regelmatig backups van je website en database, vooral voordat je een deployment uitvoert. Dit helpt je om snel te herstellen in geval van problemen.
Als er tijdens een deployment iets misgaat, krijg je vaak een logbestand te zien waarin je de fout kunt opsporen en aanpassen. Dit helpt je om problemen snel op te lossen en je website weer in topvorm te krijgen.
Wil je op de hoogte blijven van mijn laatste projecten en updates?
!Volg mij op Instagram @hello_daphne_nl