Migreren naar Docker: houd je websites in de lucht!

Je kunt je website natuurlijk the oldfashioned way laten hosten, maar waarom niet eens kijken naar nieuwe methodes? Het afgelopen decennium hebben softwarebedrijven zoals Adobe, Netflix, AT&T en serverbeheerders verschillende nieuwe methodieken zoals Jenkins en RabbitMQ in gebruik genomen en verder ontwikkeld. Veel oude servertechnieken worden nog steeds gehanteerd, puur omdat ze werken, maar zelfs servers die nog overeind staan op antieke software kunnen voordeel halen uit de moderne ontwikkelingen. In dit blogartikel vertel ik je iets meer over de voordelen van zo’n nieuwe methodiek: Docker.

#independent

Een veel gebruikte methode voor het hosten van meerdere websites op een machine is om dit allemaal in één proces te doen. Dit brengt een aantal nadelen met zich mee, onder andere dat meerdere websites afhankelijk zijn van de uptime van één proces. Als dit proces crasht, om wat voor reden dan ook, zijn alle websites op deze machine hiervan de dupe.

Onze oplossing hiervoor is Docker. Met deze software is het mogelijk om websites op te delen in meerdere aparte processen. Als een website of applicatie weigert, om wat voor reden dan ook, wordt het probleem geïsoleerd tot puur de plek waar het probleem is ontstaan. Hiermee kan één website wegvallen, terwijl vijf tot tien andere websites pagina’s blijven leveren aan klanten.

Hoe word je hier beter van?

Als je bij ons je websites laat maken en hosten, hoef jij je geen zorgen te maken om de uptime van andere websites. Als er iets fout gaat bij een andere website (bijv. zware traffic, fouten in hun setup), blijft het geïsoleerd binnen de eigen omgeving. Dankzij Docker hoeven websites zich niets van elkaar aan te trekken zolang het NGINX-proces (het overkoepelend proces) blijft draaien.

Daarnaast is het mogelijk om voor elke website een andere configuratie op te zetten. Met één proces ben je gelimiteerd tot één configuratiebestand, terwijl je met gesplitste processen elke website individueel kan optimaliseren. Geen gemiddelde standaard voor al je websites dus, maar maatwerk.

De voordelen van Docker in een notendop:
  • Onafhankelijkheid: Elke website werkt binnen de eigen marges. Als een klant iets fout doet in een omgeving, ervaren andere omgevingen hier geen gevolgen van.
  • Uptime: De websites worden beheerd door een overkoepelend proces dat ervoor zorgt dat websites gerepareerd en herstart worden als er iets misgaat.
  • Consistentie: De omgevingen zijn gebouwd en gebaseerd op de blauwdrukken van de Docker Hub. Hier worden basis images gemaakt door ontwikkelaars en gebruikers van Docker. Deze zijn al door en door getest en zorgen voor een laag uitvalspercentage en hoge uptime consistentie.
  • Prestatie: Docker is constant bezig om de resources van het systeem te verdelen over alle Docker stacks op de meest passende manier. Als bepaalde websites heel weinig gebruikt worden, zullen deze minder resources toegewezen krijgen dan websites die non-stop gebruikt worden.

Hoe ziet dat eruit?

Hieronder zie je een simpel voorbeeld. In dit geval gebruiken we een NGINX Reverse Proxy als een soort begeleider voor elke bezoeker op ons IP-adres. Als een websitedomein wordt ingevuld dat bij onze server hoort, dan worden ze eerst doorverwezen naar de proxy.

Als een klant vraagt om Website 2, dan krijgt de klant deze website opgeleverd vanuit de Website 2 containergroep. Welke website de bezoeker krijgt, is puur afhankelijk van de URL die de gebruiker invoert. In dit voorbeeld staat de proxy zo ingesteld dat Website 3 wordt opgeleverd als de gebruiker naar ‘http://website3.nl’ probeert te gaan.

Voorbeeld docker

Meer controle

Door middel van Docker is het niet alleen mogelijk om meerdere websites op één server te draaien, maar krijgt de serverdirigent ook meer controle over de individuele websites zelf. Docker heeft veel mogelijkheden om websites meer of minder ruimte en capaciteit te geven van de hoofdserver. Hiermee kunnen zware websites veel krachtiger gemaakt worden, terwijl simpelere websites lichter gestemd zijn.

Voor meer informatie over Docker container orkestratie: https://www.docker.com 

Nog vragen? Laat het weten!

Deel dit bericht: