Martijn, onze nieuwe aanwinst voor Systeembeheer!

Even voorstellen: mijn naam is Martijn Reening, ik ben 21 jaar en woon in Enschede. In september ben ik bij Antagonist aan de slag gegaan als systeem- en netwerkbeheerder.

Martijn Reening

Al van jongs af aan ben ik met computers bezig. Het begon met het schrijven van simpele programmaatjes, daarna werden het steeds vaker websites. Nadat ik in aanraking kwam met Linux werd beheer ook een onderdeel van de hobby. En om het compleet te maken, kwam netwerken er ook bij.

Het geeft voldoening om achter de schermen bezig te zijn en alles te organiseren, zodat de klant uiteindelijk zijn of haar website perfect kan presenteren. In de praktijk valt er natuurlijk nog veel meer te leren. Dat is precies waarom ik bij Antagonist terechtkwam toen ik een baan zocht.

Een jaar geleden waren we al in gesprek geraakt en hebben we het gehad over de infrastructuur. Het is ontzettend tof om er nu zelf aan mee te werken, zeker met deze groep collega’s. Ik was op zoek naar een uitdaging, en die heb ik hier gevonden!

Verder lezen

Hoe wij ons platform en infrastructuur nauwkeurig monitoren

Het is weer hardcore tech-time! Dit keer neem ik je mee in de monitoring van onze systemen en ons platform. Doordat we alles nauwlettend in de gaten houden, weten we precies wat er wel en wat er niet goed gaat in ieder onderdeel van ons platform. We hebben onze monitoring zorgvuldig afgericht, waardoor we problemen vrijwel altijd van tevoren zien aankomen. We ondernemen dan proactief actie, zodat de impact van het probleem minimaal blijft en niet escaleert.

Monitoring bij Antagonist: de servers bij Antagonist

De kwaliteit van onze dienstverlening is immers zo goed als onze monitoring; hoe beter we anticiperen, hoe gebruiksvriendelijker het voor je wordt! Dat betekent dat er heel veel achter de schermen wordt gedaan zonder dat iemand het in de gaten heeft. Want wat er onder de ‘motorkap’ gebeurt is onze verantwoording, zodat jij met je website kunt doen wat je écht wilt. Toch is het af en toe interessant om even onder die motorkap te kijken naar wat voor successen er worden geboekt. Iets dat wijzelf ook weleens vergeten om bij stil te staan.

Onze setup voor monitoring

Voor onze monitoring maken we gebruik van Zabbix. Deze (opensource)software stelt ons in staat om ieder onderdeel van ons platform tot in detail te observeren. Als dingen niet zo gaan zoals het hoort, dan kunnen we eenvoudig hier acties op uit te voeren. Een simpel voorbeeld van één van deze acties is: het versturen van een bericht naar de dienstdoende systeembeheerder zijn.

Monitoring bij Antagonist: logo Zabbix

Iedere server wordt constant op 458 punten gecontroleerd. De uitkomst van deze checks wordt opgeslagen in een PostgreSQL-database, zodat we er later uptime- en performance-statistieken kunnen uithalen voor rapportage. Ook gebruiken we deze gegevens voor het generen van rapportages voor storingen. Samen – alle servers bij elkaar opgeteld – zorgt dat ervoor, dat onze Zabbix-installatie 897 punten per seconde controleert en opslaat. Hoe veilig wil je het hebben?

Dikke server

Zoals je begrijpt, hebben we een flinke server nodig om al die controles per seconde uit te voeren en hiervan de resultaten op te slaan. Daarnaast moet het ook nog eens gemakkelijk verwerkt kunnen worden. Voor de techneuten (of andere geïnteresseerden) zijn dit de specificaties van deze server: 2 x Intel E5-2640 2.5GHz CPU (totaal 24 threads), 64 GB RAM, 15k RPM disks in RAID10 configuratie.

Om je een beter inzicht te geven in hoe diep wij ons platform monitoren, ga ik ieder onderdeel hieronder afzonderlijk bespreken.

Verder lezen

Een pikdonker en doodstil datacenter…

Afgelopen dinsdag, 23 juni 2015, gebeurde rond 8:30 uur het ergste wat een hostingprovider kan overkomen: er was een volledige black-out in één van de datacenters, waarin wij het merendeel van onze servers hebben geplaatst. Het gevolg: alle apparatuur down en tienduizenden klanten onbereikbaar. Een fantastisch begin van de dag. Het kan nóg erger: totale verwoesting van het datacenter in kwestie, maar dat was gelukkig niet aan de orde. Wat dan wel? Nou, een stroomstoring…

Stroomuitval in het dataceter: pikdonker en doodstil

Ik hoor het je denken: “Hè, wat?! Dat kan toch niet? Alles in zo’n datacenter is beveiligd, dubbel uitgevoerd, heeft noodaggregaten en zo?” Inderdaad, dat is er allemaal en in veel gevallen zelfs vierdubbel uitgevoerd. In theorie kan stroomuitval dus niet voorkomen. Echter, door de meest ongelukkige samenloop van omstandigheden gebeurde het toch. Een goed voorbeeld van hoe theorie en praktijk soms ver uit elkaar liggen.

Naast dat het voor iedereen zeer vervelend is, was het voor ons ook een ultieme proef of we spoedig konden herstellen van zo’n grote storing. Daarnaast was het de vuurdoop voor ons nieuwe platform, waarin duidelijk werd of het in de praktijk deed wat het moest doen. Omdat jij ook recht hebt op deze informatie, hebben we hieronder een gedetailleerd verslag geschreven.

Inhoudsopgave

  1. Antagonist zegt sorry!
  2. Klein team, veel klanten
  3. Prioriteit tijdens calamiteit
  4. Hoe kan dat dan, geen stroom?
  5. De gevolgen voor Antagonist
  6. Opstarten na stroomuitval
  7. Nazorg, totdat alles weer in orde is
  8. Wat is de schade?
  9. Communicatie
  10. Hoe gaan we dit voorkomen?
  11. One more thing…

Antagonist zegt sorry!

Maar eerst zeggen we: “Sorry!” Een storing is altijd hinderlijk. Helemaal als klanten er de dupe van worden. Door de stroomstoring in het datacenter heeft ons gehele platform er even uit gelegen. Al onze klanten hebben daardoor downtime ondervonden. Daarnaast hebben enkele klanten langer last gehad vanwege herstelwerkzaamheden.

Het ‘uitvallen’ van de stroom heeft dus een behoorlijke impact. Dat vinden we erg vervelend en daarom bieden we onze excuses aan. Dat is tevens één van de redenen voor dit blog. Daarnaast willen we je een eerlijk en helder inzicht geven in wat er precies is gebeurd.

Tijdens de storing hebben we regelmatig updates geplaatst. Het waren vooral beknopte berichten over de voortgang van de situatie en het herstel. Daarnaast hebben we twee ‘post incident’-berichten geschreven. Deze gaven inzicht in de toedracht. De werkelijke gevolgen zijn voor een buitenstaander wellicht lastig voor te stellen. Vandaar dat we je graag een kijkje in de keuken geven, hoe het er dinsdag aan toe ging.

Klein team, veel klanten

Antagonist heeft tienduizenden klanten en 12 medewerkers. Zodoende moet je tijdens een grote storing, als een geoliede machine te werk gaan. Alles moet vanzelfsprekend zijn, want tijd is er niet. Met een klein en hecht team moet je handelen vanuit instincten. Juist daarom vinden we het zo belangrijk dat een medewerker goed moet passen binnen ons team. Naast de juiste kennis en vaardigheden zoeken we dus naar de perfecte match.

Als het misgaat, dan is het heel simpel. Er zijn drie dingen die er toe doen. Eén: onze klanten moeten zo snel mogelijk weer online. Twee: voorkom zoveel mogelijk schade en dataverlies. Drie: zorg voor een vlotte en oprechte communicatie, waarin vragen van klanten zorgvuldig worden beantwoord.

Qua prioriteit ligt het ietsje ingewikkelder. De hoogste prioriteit is bij Antagonist altijd data-integriteit. Dat betekent dat we het voorkomen van dataverlies belangrijker vinden dan beschikbaarheid. Je hebt immers niets aan een website zonder data. Gelukkig hoeven we ons daar weinig zorgen over te maken. Gegevens worden veilig opgeslagen. De kans op dataverlies is daardoor zeer gering. Zodoende storten we ons, tijdens een storing, vrijwel direct op de beschikbaarheid.

Prioriteit tijdens calamiteit

Goed, het is dinsdagochtend en we zien dat er heel veel loos gaat. De oorzaak weten we niet. Er was weliswaar een sterk vermoeden dat het om een (deels) falende stroomtoevoer gaat, maar dat kunnen we niet bevestigen. Dat is erg naar. Want hoe kun je iets oplossen, als je het probleem niet kent?

Verder lezen

Software-updates bij Antagonist

In dit artikel ga ik jullie weer een kijkje in de keuken van Systeembeheer geven. In een vorige artikel vertelde mijn collega Ewoud al over Open Source software, en daar is Antagonist een fanatiek gebruiker van. Software heeft echter liefde en aandacht nodig, en het gebeurt maar al te vaak dat, na het installeren er niet meer naar omgekeken wordt. Dit is één van de grootste oorzaken van vreemde bugs en ernstige security-problemen.

Software-updates bij Antagonist

Maar het kan ook anders, want dat bewijzen we bij Antagonist! Zodoende neem ik je in dit artikel graag mee in het reilen en zeilen van software-updates binnen Antagonist. Hoe kiezen we onze software, minimaliseren we de kans op bugs en zorgen we dat altijd de laatste stabiele versies hebben draaien? Op deze vragen zul je hieronder een antwoord vinden.

Routines zijn belangrijk

Een aantal maanden geleden hebben we een tweewekelijkse routine ingevoerd voor het up-to-date houden van de software die wij draaien om je website te serveren. We hebben dit gedaan om de kwaliteit van onze dienstverlening naar een nog hoger niveau te tillen. Deze routine heeft de naam ‘update-donderdag’ gekregen en valt zoals de naam al aangeeft op een donderdag, in elke week met een oneven nummer. Omdat we als organisatie steeds verder groeien, ontstond langzaam de vraag naar standaardisatie van werkzaamheden. Update-donderdag is hier een mooi voorbeeld van. We hebben hier een aantal waardevolle doelen mee bereikt.

  • Iedereen binnen ons bedrijf is op de hoogte welke updates (inclusief de specifieke versienummers) er gaan plaatsvinden.
  • Er is een vast moment wanneer updates worden uitgerold. Er zijn geen verrassingen voor medewerkers.
  • Doordat er een vast moment is, kunnen we problemen die, in het meest onfortuinlijke geval zouden ontstaan, snel in kaart brengen. Dit houdt tevens in dat problemen die buiten dit tijdsbestek ontstaan, waarschijnlijk niet gerelateerd zijn aan de updates.
  • We kunnen er in onze (tweewekelijkse) urenplanning rekening mee houden. We weten uit ervaring hoeveel tijd het kost om ons platform te updaten. Dit maakt realistisch plannen een heel stuk gemakkelijker!
  • We weten zeker dat we nooit meer dan twee weken achterlopen op de meest recente versie van software.
  • Mochten we een belangrijke (bijvoorbeeld security-) update over het hoofd hebben gezien, dan wordt deze alsnog met de routine meegenomen. Het is dus een extra vangnet.

Verder lezen

Servers beheren met The Foreman, een tipje van de sluier

Bij Antagonist doen we aan webhosting en voor webhosting heb je servers nodig. Nu hebben wij veel klanten, dus doen we veel webhosting. Veel webhosting betekent veel servers. Je kunt daarom niet zonder configuratiemanagement. Bij Antagonist gebruiken we daarvoor Puppet, daar hebben we al eerder over geschreven in het artikel dat je meeneemt in de keuken van systeembeheer.

Servers beheren met The Foreman: servers bij Antagonist

Puppet is heel erg mooi en kan heel veel, maar het is wel een extra proces wat zelf ook weer problemen kan geven. Verander je de configuratie, dan moet dit natuurlijk op alle servers worden uitgerold. Maar wat als dit op één server niet goed gaat? Bijvoorbeeld omdat het puppetproces om wat voor reden dan ook niet goed functioneert? Je wilt dit kunnen monitoren en daar kun je natuurlijk zelf iets voor schrijven, maar je kunt ook een bestaand stuk software pakken. Zodoende hebben wij  gekozen voor The Foreman. The Foreman is zoals ze het zelf zeggen een complete beheertool voor de levensfases van servers.

Servers beheren met The Foreman

Wat houdt dit in? Een server gaat gedurende zijn leven door verschillende fases. Het begint bij het begin. De fysieke of virtuele server wordt voor de eerste keer aangezet en er wordt een besturingssysteem geïnstalleerd. Daarna moet de benodigde software geïnstalleerd worden. Dit is de initiële installatie. Vervolgens moet deze software geconfigureerd worden, de initiële configuratie. Hoe ondersteunt The Foreman hierin?

Servers beheren met The Foreman: serverconfiguraties bij Antagonist

Je hebt een serverprofiel (bijvoorbeeld webhostingserver), dit koppel je aan de nieuwe server. Als de server vervolgens start, dan zal deze van The Foreman een IP-adres krijgen en zal een netwerk-boot starten met behulp van Kickstart. Deze zorgt voor de installatie van het besturingssyteem en de installatie van puppet. In het webhostingserverprofiel staat beschreven welke puppetconfiguratie van toepassing is op de nieuwe server en deze zal ook worden toegepast. Dit zorgt voor de volledige installatie en configuratie van alle software.

Verder lezen