Kijkje in de keuken: ons eerste jaar in de cloud bij TransIP #adv

Door: Raymon Mens - 19 reacties

Een vraag die we vaak krijgen, is hoe de ‘achterkant’ van OMT eruit ziet. Met een beetje graven kun je zelf wel vinden dat we WordPress en bbPress gebruiken, maar dat is slechts de helft. Een website moet immers ook ergens gehost worden.

OMT is te groot voor een standaard hostingpakketje. We gebruiken nu ruim een jaar BladeVPS PureSSD van TransIP en hebben onze eigen infrastruur opgezet. Tijd voor een terugblik én een kijkje in de keuken.

De oude situatie

Tot 2016 draaide OMT op ‘oud ijzer’ dat we liefkozend¬†een naam hadden gegeven.¬†Er hingen vijf verschillende fysieke servers met een eigen taak in een datacenter. Carmen was de databaseserver met MySQL, Megan de webserver met Apache in Isabel draaide de mailboxen en zorgde voor de plaatjes en podcasts. Deze hardware was sinds 2010 in bedrijf, afgeschreven en onhandig. Als er bijvoorbeeld een defect aan de databaseserver was, ging de site plat, moest iemand naar Amsterdam om op een knop te drukken.

Tijdens Apple-aankondingen was het niet mogelijk om op te schalen om de drukte aan te kunnen. Het kon wel, maar een server voor incidenteel gebruik aanschaffen loopt flink in de papieren. Ook was de configuratie van iedere server een beetje verschillend. De oudste gebruikte Debian Linux 6, terwijl er ook een server met Debian Linux 7 en afwijkende instellingen was. Documentatie? Ha, die was er niet.

omt-servers-2010tm2015-16x9
Klik/tap voor groter.

Opnieuw voor de komende 10 jaar

Bij het vernieuwen van de hosting-infrastructuur was het idee om klaar voor de komende 10 jaar te zijn. We willen onafhankelijk en flexibel zijn, groei en pieken gemakkelijk aankunnen, snel onderhoud kunnen uitvoeren, alles gedocumenteerd hebben en zorgen dat de site altijd online is. Na wat research hebben we gekozen voor VPS-servers van TransIP met daarop eigen software die we beheren met Ansible. De code van de site staat in Github en wordt met Capistrano naar servers gepusht.

Waarom VPS-servers bij TransIP

Dat onze data op Nederlandse grond moet blijven, staat buiten kijf. Er zijn echter honderden aanbieders van Virtual Private Servers (VPS) in Nederland. Ons oog viel op TransIP, allereerst omdat het een grote partij is die een eigen datacenter en netwerk heeft. Daardoor zijn we niet afhankelijk van een webhost die weer afhankelijk is van een partij waar hij ruimte in een datacenter en netwerkcapaciteit huurt.

TransIP sprak ons daarnaast¬†aan met een¬†duidelijk doe-het-zelf-aanbod. Zij leveren VPS-servers met rappe¬†SSD-opslag en¬†geven de klant¬†100 procent controle. Wij wilden een kale installatie van Linux zonder extra’s, vooraf geconfigureerde software¬†of andere bemoeienis. De flexibiliteit van de cloud met veel controle dus. Een prima match.

De dienst¬†Big Storage, die gemaakt is om grote hoeveelheden data op te slaan, kwam ook goed van pas. OMT heeft een groot archief met podcasts, video’s en uploads van gebruikers. Die staan daar prima opgeslagen.¬†Bij TransIP heeft iedere VPS een publiek netwerk, maar ook een intern (LAN) netwerk. Zo kunnen de webserver en databaseserver over een aparte verbinding met elkaar praten, wat de snelheid en veiligheid van de site ten goede komt. Tot slot maakt TransIP het heel makkelijk om een clone van een VPS te maken.

Schermafbeelding 2017-08-16 om 12.11.50
Een VPS installeren met één van de vele besturingssystemen РKlik/tap voor groter

Software en configuratie de grootste uitdaging

De grootste uitdaging was het configureren van de servers. Dit is iets dat ook na een jaar nog wel eens aanpassingen behoeft. Na oplevering van een VPS is het immers een lege Linux-server met een command line. In plaats van iedere server handmatig te configureren, hebben we gekozen om Ansible te gebruiken.

Ansible omschrijft zichzelf als Infrastructure Management. Je kunt het ook uitleggen als een verzameling procedures die op een bepaalde manier geschreven moet worden. In een playbook schrijf je wat er op iedere server moet gebeuren en Ansible zal dit uitvoeren. Dat heeft een aantal voordelen. Allereerst dwingt het je om alle instellingen te documenteren, de playbooks zijn de documentatie. Daarnaast is alle configuratie centraal opgeslagen en wordt iedere server steeds op dezelfde manier geconfigureerd.

De serverconfiguratie van OMT bestaat uit 30 playbooks. Er zijn globale playbooks die op alle servers de tijdzone goed zetten en een firewall installeren, maar ook playbooks voor specifieke servers. Zo is er voor de databaseserver een playbook dat MySQL installeert en zorgt dat andere servers bij de database kunnen en een playbook dat automatische backups configureert. Omdat alles in playbooks staat die automatisch uitgevoerd worden, kunnen we nooit vergeten om de backups in te stellen.

Een¬†onverwacht voordeel van deze aanpak was dat het heel makkelijk is om met anderen samen te werken. Hoewel we 95 procent van de configuratie zelf hebben gedaan, was het soms nodig om externe kennis in te huren. Op zo’n moment konden we onze playbooks laten zien en was voor iedereen tot op het kleinste detail duidelijk hoe de achterkant van OMT in elkaar zit.

ansible omt
Het playbook dat de installatie van de webserver verzorgt – Klik/tap voor groter.

Aangename verrassingen

De verhuizing van eigen servers naar TransIP BladeVPS vereiste veel voorbereidingen, maar heeft sindsdien alleen maar voor aangename verrassingen gezorgd. Komt er een grote aankondiging aan? Dan tuigen we binnen no-time drie extra webservers op. We kunnen bij TransIP zoveel VPS’en aanmaken als we willen en door Ansible is de configuratie zo gedaan.

Een test doen met het converteren van de database? We maken gewoon een clone van de hele database-server zodat een ontwikkelaar met de echte data kan werken. Als de test slaagt, gooien de we de clone weer weg en kan de aanpassing in de live database gedaan worden. Foutje? Geeft niet, want het was slechts een clone. We maken een nieuwe clone of zetten een back-up terug, die TransIP iedere vier uur van iedere VPS maakt.

transip omt backups
Iedere vier uur een automatische back-up – Klik/tap voor groter.

BladeVPS PureSSD een maand gratis proberen

Werk je zelf ook aan websites of online projecten op grote of kleine schaal? Onze ervaring is dat het bij TransIP snel, stabiel en schaalbaar is. Iets voor jou? Je kunt TransIP BladeVPS zelf een maand gratis proberen. Start hier jouw gratis maand.

transip vps start
Start nu jouw gratis maand.

Voor de liefhebber: De exacte configuratie

Is bovenstaande info niet genoeg en wil je van de hoed de rand weten? Geen probleem. Hieronder in specialistische termen de exacte opzet van onze infrastructuur.

  • OMT-CDN: Een webserver¬†met Nginx die plaatjes en andere statische bestanden serveert. (TransIP BladeVPS X8)
  • OMT-DB: De¬†grootste VPS die we gebruiken. Hierop draait¬†MariaDB 10.1 met de database met alle posts en topics. (TransIP BladeVPS X16)
  • OMT-Loadbalancer: Een kleine VPS met Varnish, dat niet-ingelogde gebruikers een gecachte versie van OMT laat zien om de database te ontlasten. Wordt bij events ook¬†gebruikt om bezoekers over verschillende webserver te verdelen. (TransIP BladeVPS X1)
  • OMT-Storage: Een VPS die met Big Storage van TransIP in verbinding staat en bestanden voor¬†andere servers via NFS beschikbaar maakt. (TransIP BladeVPS X8)
  • OMT-Redis: Een kleine VPS met een snelle cache om de database te ontlasten (TransIP BladeVPS X1)
  • OMT-Staging: Een server¬†voor het¬†testen van zaken die zijn afgerond in development (TransIP BladeVPS¬†X1)
  • OMT-Thumbor: Zorgt ervoor dat plaatjes die in het forum worden gelinkt¬†altijd via https bereikbaar zijn. Schaalt grote plaats ¬†van bijvoorbeeld 3MB tevens terug naar acceptabele JPG-bestanden¬†zodat pagina’s niet eeuwig laden¬†en de databundels van onze bezoekers gespaard blijven.¬†(TransIP BladeVPS X4)
  • OMT-Web: De webserver die WordPress, BBpress en BuddyPress draait. Gebruikt Apache 2.4. (TransIP BladeVPS X8)
  • OMT-PhpMyAdmin: Voor ad-hock werk aan de database gebruiken we PhpMyAdmin. Dat staat op een kleine VPS, zou bij de webserver kunnen, maar hebben het apart omdat het kan. (TransIP BladeVPS X1)

In samenwerking met TransIP

Reacties

19 reacties
  • Profielfoto
    TheBigZ

    Welkom terug, Raymon!

  • Profielfoto
    Henk Jan de Bruijn

    Nice! Tof om te lezen.

  • Profielfoto
    BlueSky

    Mooie reclame

  • Profielfoto
    Betatester

    Raymon ga jij heel snel vakantie houden!!!

  • Profielfoto
    /dev/enschede

    Gelukkig een wat beter #adv verhaal dan dat knoeiwerk over gok apps…

  • Profielfoto
    utopia_

    Marc Enschede 4 minuten geleden
    Gelukkig een wat beter #adv verhaal dan dat knoeiwerk over gok apps…

    :-D

  • Profielfoto
    Shmoo

    Een vraag die we vaak krijgen, is hoe de ‚Äėachterkant‚Äô van OMT eruit ziet

    .
    Haha.. nieuwsgierige mensen ook. Dat ze Raymon daarmee van het werk proberen te houden.

  • Profielfoto
    iDEOwen

    Dit is nou leuk om allemaal te lezen.:) En vind het het #adv gehalte op zich wel meevallen… Gewoon mooi uitleg!

  • Profielfoto
    Melle

    Ik denk dan – Raymond is toch lekker met vakantie (ik hoop het) en dit een slimme strategie – iets publiceren met het account van Raymond- van de nieuwe eigenaar om minder commentaar te krijgen… (want het komt van Raymond)

    Of is dit te ver gedacht. ?

  • Profielfoto
    Raymon Mens

    Dit was vooruit gepland. No way dat ik in mijn vakantie 1300 woorden ga schrijven;-) En dat is wel een beetje ver gedacht @Melle:razz:

  • Profielfoto
    csteelooper

    @Owentje +1

    @Raymon zeer mooie uitleg van hoog niveau. Dit soort diepgang mag beslist vaker!

    Even een behoorlijk off-topic vraagje aan Raymon: Hoe komt het dat op OMT de @-mentions dan weer wel en dan weer niet werken? Soms gebruik ik ze en dan linken ze keurig netjes naar het profiel van de gebruiker die ik aanspreek, om dan de volgende keer weer koppig ‚Äėgewoon tekst‚Äô te blijven‚Ķ Is dat iets in de code?

  • Profielfoto
    Shmoo

    Ik denk dat Raymon straks niet meer fatsoenlijk kan schijten met al die veren op in zijn kont.

    :lol:

  • Profielfoto
    Melle

    @raymond – ?

  • Profielfoto
    Remko

    Leuk wat achtergrond info
    Interessant

  • Profielfoto
    michabos

    Bijzonder – jullie kracht en core business is het publiceren van nieuwsartikelen over Apple. Nu lees ik een volledig technisch verhaal over de infrastructuur en de hoeveelheid passie en tijd daar in gaat zitten. Vraag ik mij af of jullie wel met de juiste dingen bezig zijn en niet moeten gaan partneren met een leverancier die jullie daar volledig in ontzorgt zodat jullie tijd over hebben om bijv. weer een keer een goede livestream te maken. Dat vinden wij veel leuker! ?‚úĆÔłŹ

  • Profielfoto
    Jor1

    Dat vinden wij veel leuker! ?‚úĆÔłŹ

    spreek even voor jezelf…

  • Profielfoto
    deCube

    Waarom is er voor gekozen om geen redundancy in te bouwen? Vooral OMT-DB, OMT-Loadbalancer & OMT-Web zou ik minimaal dubbel uitvoeren.

  • Profielfoto
    DBLCreations

    Bijzonder – jullie kracht en core business is het publiceren van nieuwsartikelen over Apple. Nu lees ik een volledig technisch verhaal over de infrastructuur en de hoeveelheid passie en tijd daar in gaat zitten. Vraag ik mij af of jullie wel met de juiste dingen bezig zijn en niet moeten gaan partneren met een leverancier die jullie daar volledig in ontzorgt zodat jullie tijd over hebben om bijv. weer een keer een goede livestream te maken. Dat vinden wij veel leuker! ?‚úĆÔłŹ

    Ik vind het persoonlijk anders wel fijn om te lezen hoor. Het is eens leuk om te kijken hoe bepaalde dingen werken. Respect van mij in elk geval voor al jullie inzet en werk!:-) ?‚úĆÔłŹ

  • Profielfoto
    Raymon Mens

    @michabos: Er komen wel wat dingen bij kijken om die core business mogelijk te maken. Deze opzet ontzorgt al een stuk meer dan compleet eigen hardware waarbij je voor een defecte harddisk naar Amsterdam moet etc. Imo is het een prima mix tussen autonoom opereren (geen dure beheerscontracten) en er niet al te veel omkijken naar hebben.

    Voordat deze opzet er was, was er veel meer gedoe en werk aan. Dat er geen live-uitzendingen gemaakt worden, heeft dan ook niet te maken met dat we meer werk in techniek steken (het is na éénmalig opzetten juist minder werk), maar met het feit dat Jan-David, Koen en Lucas gewoon geen zin meer in OMT en podcasts maken hadden. Ik kan dat als enige medewerker moeilijk in mijn eentje doen;-)

    Waarom is er voor gekozen om geen redundancy in te bouwen? Vooral OMT-DB, OMT-Loadbalancer & OMT-Web zou ik minimaal dubbel uitvoeren.

    Hoeveelheid werk/complexiteit vs. risico op uitval. We hebben er wel naar gekeken, maar het dubbel uitvoeren is makkelijker gezegd dan gedaan. De loadbalancer kan al meerdere webservers aansturen en er zijn er ook wel eens twee actief, tijdens bijvoorbeeld grote Apple-aankondigingen.

    De loadbalancer zelf is moeilijker redundant te krijgen, omdat het verkeer op √©√©n IP binnenkomt. Tegenwoordig biedt TransIP wel ‘zwevende’ ip-adressen aan, maar daar moet je zelf de downtime-detectie omheen bouwen. De ervaring is dat Varnish het altijd doet en als er √©cht een probleem is, kunnen we die VPS binnen een paar minuten opnieuw installeren of nog sneller terugrollen naar een snapshot.

    De database redundant was wel een wens, maar dat vereist verdiepen in MySQL-replicatie en de ervaring is nu dat het eigenlijk nooit fout gaat. In geval van defecte hardware, spint TransIP automatisch binnen no-time een nieuwe VPS met dezelfde harddisk-inhoud op een andere node op.

    De grootste risico’s worden dus door TransIP afgevangen met automatische migratie, mocht er een node kapot gaan. Als er een router-probleem is (nog nooit voorgekomen) dan houdt redundantie binnen hetzelfde netwerk dat ook niet tegen. Dat de software in de soep loopt, hebben we nog niet meegemaakt. Mocht dat vaak voorkomen, dan loont het om naar redundantie te kijken. De software is echter nog nooit in de soep gelopen. Dat komt omdat we allemaal grote pakketten gebruiken (Apache, Nginx, MariaDB) die al jaren bestaan en doorontwikkeld zijn. Als je dat eenmaal aan zet, stopt het niet zo makkelijk.