Netsensei

Much Ado About Nothing

Server onderhoud

Sinds 2010 host ik mijn digitale zoo op een VPS van Linode. Op één gelegenheid na, ben ik vrij tevreden van hun diensten.  Tot op heden betaalde ik ook een aardig bedrag voor die server: 20$ per maand. Plus 5$ voor een dagelijkse en wekelijkse geautomatiseerde backups. Sinds 2010 kreeg ik occasioneel wel meer bang for the buck – extra RAM geheugen, meer disk space – maar aan de prijs zelf is nooit gezakt.

Eind vorig jaar merkte ik dat Linode haar tarieven had aangepast en de Linode 2048 VPS naar de low-end was opgeschoven. Voor 10$ plus 2.5$ per maand koop ik exact dezelfde service.

Verder had ik mijn server indertijd manueel had geconfigureerd. Veel werk dat ik niet opnieuw wilde uitvoeren. Sinds enkele jaren bestaan er software tools zoals Puppet, Chef en Ansible die zeer veel server management taken automatiseren en waarmee administrators hele serverparken kunnen beheren. In plaats van elke server apart opnieuw te configureren, schrijf je eenmaal een configuratiebestand en rol je dat dan uit op alle servers.

En dus heb ik in de afgelopen weken af en aan gewerkt om het huishouden op punt te zetten.

Ten eerste heb ik mijn hele configuratie vastgelegd in Ansible scripts gebaseerd op Phansible. Op mijn Macbook laat ik een lokale ontwikkelingskopie van de hosting lopen die ik aanstuur met Vagrant. Met mijn Ansible scripts kan ik die kopie volledig geautomatiseerd dezelfde configuratie geven als de server die bij Linode loopt. Het mooie aan die opzet is dat ik zo zeker ben dat wat ik op mijn laptop bouw, ook zal werken op de server wegens exact dezelfde setup. Verder kan ik nu ook zeer snel naar een andere server, of zelfs een andere hosting dienst, verhuizen mocht dat nodig blijken.

Ten tweede is er het beheer van elke individuele site. Zowel Drupal als WordPress komen met nogal wat plugins en modules die op hun beurt ook regelmatig updates en upgrades krijgen. Dat betekent dus regelmatig werk op de plank om al die code uit te testen en up te daten. Vroeger deed ik dat nog handmatig maar dat is vandaag quasi ondoenbaar. Tegenwoordig gebruik ik Capistrano om updates voor individuele sites als aparte releases te verpakken en uit te rollen op de server. Mijn specifieke setup heb ik gepubliceerd op Github.  Ook hier heb ik met één commando een hele waslijst aan taken geautomatiseerd.

Allemaal goed en wel. Maar wat betekent dat nu concreet? Wel, vandaag heb ik de laatste site gemigreerd naar een nieuwe, goedkopere server en de oude server finaal uitgezet. Een kleine mijlpaal die ik vooral in mijn factuur voor hosting ga voelen. Zo bespaar ik op jaarbasis maar eventjes 150 USD. En verder betekent het ook dat ik minder tijd moet steken in onderhoud naar de toekomst.