Over Erik Jan Hofstede

Erik Jan is CTO bij Antagonist. Hier is hij verantwoordelijk voor de ontwikkeling en het beheer van alle systemen, van hard- tot software en networking.

Onder de loep: de impact van gratis SSL nader bekeken!

Op 11 april 2017 introduceerden we gratis SSL voor al onze klanten. Daarmee hebben we het standpunt ingenomen dat versleuteld verkeer de standaard moet zijn, niet optioneel. De reacties van onze klanten waren hartverwarmend, zowel per e-mail als op social media. Hier doen we het allemaal voor, dank jullie wel! We zijn nu ruim een half jaar verder. Wat mij betreft is het dan ook tijd voor een terugblik op een zeer succesvolle lancering en om de impact ervan te bekijken.

De impact van de uitrol van gratis SSL!

Een terugblik op de uitrol van gratis SSL

Als je voor zo’n 100.000 websites in één dag gratis SSL activeert, dan kun je je voorstellen dat dit enige voorbereiding vereist. We hebben gewerkt met een groep bèta-testers, alle scenario’s voor wat er mogelijk mis zou kunnen gaan uitgedacht en uitvoerig rollback-mogelijkheden doorgenomen.

Alle maatregelen en noodplannen stonden dus klaar, maar gelukkig was geen één daarvan nodig. De uitrol ging geheel vlekkeloos en de reacties van onze klanten waren geweldig! Een aantal concullega’s waren er misschien wat minder blij mee. Sorry daarvoor, we zijn nou eenmaal de Antagonist 😉

Verdere perfectionering

De weken na de activatie kwamen er hier en daar nog een aantal kleine bugs naar boven. Het waren kleine problemen, iets wat nooit volledig uit te sluiten valt als je een geheel nieuwe, eigen oplossing introduceert. Een aantal bugs zaten in de HTTP/2-implementatie van onder andere de Apache-versie van een leverancier. Dit hebben we samen op kunnen lossen.

Verder lezen

LVE Stats 2: meer inzicht in jouw website dankzij verbeterde statistieken!

Wij zijn druk bezig geweest om je beter inzicht te geven in het verbruik van jouw website. Dankzij de update naar LVE Stats 2 kun je nu nóg gedetailleerder zien hoeveel rekenkracht je gebruikt. Ook zijn de voorspellingen van onze proactieve monitoring hierdoor een flink stuk nauwkeuriger. Graag vertel ik je meer over deze verbeteringen!

Meer inzicht in je website dankzij LVE Stats 2!

‘LVE Stats’ staat voor ‘Lightweight Virtual Environment Statistics’. Dit systeem verzamelt de gebruikersstatistieken van websites, slaat deze op in de database en genereert grafieken over het gebruik van de afgelopen periode. De gegevens die het van je website verzamelt, kun je eenvoudig in DirectAdmin van je pakket inzien bij Resource usage.

Nadelen van LVE Stats 1

Een groot handicap in LVE Stats 1 was dat data niet nauwkeurig werden opgeslagen. Zo werd bijvoorbeeld de ‘CPU limit’, het maximum aan CPU resources dat je container mag gebruiken, opgeslagen als percentage van het totaal beschikbare op de server. En ook nog eens als afgerond getal. Graag leg ik met een voorbeeld uit waarom dit onwenselijk is.

Verder lezen

Het technische verhaal achter gratis SSL!

Afgelopen maanden hebben we achter de schermen aan iets heel gaafs gewerkt. Iets waar we al een lange tijd naar uit hebben gekeken en waar veel technische aanpassingen voor nodig waren. Het heeft ons meer dan slechts tijd en geld gekost, maar het was het dubbel en dwars waard. Dinsdag was het dan eindelijk zover: gratis SSL voor iedereen!

Gratis SSL en HTTP/2 voor iedereen, het technische verhaal

Hoe komt zoiets tot stand? In dit artikel ga ik jullie uitgebreid vertellen over onze implementatie, waarom we het op deze manier hebben aangepakt en wat de uitdagingen waren die we onderweg tegenkwamen.

Inhoudsopgave

1. Waarom gratis SSL?

De laatste jaren worden we steeds vaker wakker geschud door alarmerende berichten over afluisterpraktijken door overheden en criminelen. Cyberaanvallen worden steeds geavanceerder en de aanvallers beschikken over steeds meer middelen. Als serieuze hostingprovider kun je absoluut niet achterblijven in deze race.

Wij vinden dat privédata privé moet blijven. Het is goed om te zien dat er wettelijk steeds meer regels komen voor het beveiligen van persoonsgegevens en we zijn hierin graag een helpende hand. Vanaf afgelopen dinsdag hebben daarom alle websites die bij ons gehost worden een SSL-certificaat. Dus een nog hogere mate van basisbeveiliging, voor iedereen. En dat ook nog eens volledig gratis!

Verder lezen

Hoe jouw e-mail bij de ontvanger uitkomt: de wonderlijke wereld van e-mail routering!

In dit artikel wil ik jullie graag meenemen in de wonderlijke wereld van e-mail routering. Het lijkt zo simpel: je stelt een e-mail op, klikt op ‘verzenden’ en het komt terecht bij de ontvanger. Echter, wat gebeurt er dan precies achter de schermen? Hoe kun je zien welk pad de e-mail heeft afgelegd? En hoe weet een mailserver überhaupt wat er met de e-mail moet gebeuren? Op deze vragen geef ik je graag antwoord.

De wonderlijke wereld van e-mail routering!

Allereerst een kleine disclaimer. Om het toegankelijk te houden, ga ik een aantal zaken bewust versimpeld weergeven. Daarom ga ik niet in op bijvoorbeeld ‘MIME’ en hoe BCC-ontvangers in een e-mail afgehandeld worden. Dat gezegd hebbende, laten we beginnen!

1. De opbouw van een e-mail

Een e-mail is simpelweg een tekstbestand, je kunt het openen in elk willekeurig tekstverwerkingsprogramma om de inhoud ervan te zien. Het tekstbestand is opgebouwd uit een tweetal onderdelen:

  1. de headers;
  2. de body.

1.1 De headers

Headers zijn de metadata van een e-mail. Deze blokken tekst worden door de mailserver gebruikt om te bepalen wat er met de e-mail moet gebeuren en wat ermee is gedaan. Wie is bijvoorbeeld de ontvanger en de afzender van de e-mail? Een aantal headers zijn nodig om er zeker van te zijn dat een e-mail geaccepteerd wordt, heel veel anderen zijn optioneel.

Verder lezen

Smart Index Creator: hoe wij stiekem je database sneller maken!

Regelmatig vertellen we je over onze ontwikkelingen via e-mail of blogartikelen, maar niet alles komt ter sprake. Ik denk dat dit vaak komt, doordat wij het vanzelfsprekend vinden ons volledig in te zetten voor een zo goed mogelijke klantbeleving. Het is onze tweede natuur, het zit in ons DNA. Vandaar dat het me een leuk idee lijkt om eens wat te vertellen over een tool die al jaren bij ons op de achtergrond draait, we weinig omkijken naar hebben, maar heel veel moois voor je website en database brengt: de ‘Smart Index Creator’!

Smart Index Creator: hoe wij stiekem je database sneller maken!

Oorsprong

Deze tool is ongeveer drie jaar geleden ontstaan, nadat er een aantal servers overbelast waren. Na enkele seconden naar de ‘top’ te kijken, zagen we al vrij snel wat het probleem was: MySQL liep nogal te stampen, er waren bijna 10 CPU-cores in gebruik!

Smart Index Creator: MySQL-belasting

Vervolgens zijn we binnen MySQL gaan kijken, om zo de query’s die hier verantwoordelijk voor waren op te sporen. Het bleken een handvol query’s te zijn, die ‘full tables scans’ aan het uitvoeren waren (straks meer over ‘full table scans’).

Tabellen van 800 MB waren geen uitzondering. Nu hoeft een grote tabel niet direct een prestatieprobleem op te leveren, maar wanneer het opvragen van data hieruit niet efficiënt gebeurt, dan kan het snel mis gaan. Zeker wanneer je gastenboek door vervelende bots op het internet met vunzige teksten is ‘volgespamd’.

Wij, als webhoster, zitten met dit soort situaties vaak in een spagaat. De klant is verantwoordelijk voor zijn applicatie, maar gebruikt in 99 van de 100 gevallen een standaard CMS. De klant heeft geen of weinig kennis van de interne werking van de software, wat ook volkomen logisch is. Ik heb ook een auto, maar ben geen automonteur.

Verder lezen

File system caching bij Antagonist!

Caching is de laatste tijd een populaire term en wordt vaak in de algemene zin gebruikt. Deze techniek kan echter op verschillende niveau’s plaatsvinden, zoals op applicatie- of file system-niveau. Wanneer er gesproken wordt over caching voor een website, dan vindt dit plaats op applicatie-niveau. Daar gaan we het nu niet over hebben. Aan caching binnen applicaties kun je namelijk al een volledig artikel wijden, wie weet iets voor later 😉 We duiken daarom nu een stukje dieper in het file system-niveau, en dan specifiek file system caching!

Filesystem caching bij Antagonist: hoe werkt het exact?

File system caching wordt gebruikt om het opvragen en wegschrijven van bestanden te versnellen door veel opgevraagde bestanden of ‘blocks’ (tijdelijk) op een ander, veel sneller medium te plaatsen. Bij Antagonist maken we gebruik van een cachingmechanisme dat anders is dan traditionele systemen. Het is niet alleen anders, want anders is per definitie niet beter. De caching die wij gebruiken, is vele malen sneller. Sneller is wel beter!

Een woord vooraf
Dit artikel is behoorlijke ‘technische hardcore’. Om ervoor te zorgen dat het zo goed mogelijk is te volgen, heb ik het zo gestructureerd mogelijk opgezet. Handig om te weten, is dat er een aantal termen zijn die ik willekeurig door elkaar gebruik, maar waarmee ik hetzelfde bedoel:

  • blocks, files en bestanden;
  • lezen, leestransacties en reads;
  • schrijven, schrijftransacties en writes;
  • disk, harddisk, schijf en harde schijf;
  • werkgeheugen en RAM.

Read en write caching

Het cachen van bestanden (file system caching) kan worden onderverdeeld in twee categorieën, namelijk: lezen (read caching) en schrijven (write caching).

Verder lezen

Nieuw: SSH voor onze klanten!

“Rozen zijn rood, Antagonist is blauw, vandaag op deze Valentijnsdag geven wij SSH aan jou ;-)”

Yes, daar is ‘ie: SSH-toegang naar je hostingaccount! Afgelopen maanden hebben we keihard aan deze nieuwe feature gewerkt. In dit artikel heb ik de eer om jullie mede te delen dat vanaf nu SSH-toegang beschikbaar is op Slim-, Plus-, en Pro-pakketten. Graag vertel ik jullie wat meer over: wat SSH betekent, wat we precies voor jullie hebben gemaakt en hoe je ermee aan de slag kunt. Over twee weken zal mijn collega Sander dieper ingaan op een aantal hippe tools die je kunt gaan gebruiken, dankzij SSH. Maar nu eerst een uitleg, let’s go!

Introductie SSH: OpenSSH logo

Wat is SSH?

De afkorting ‘SSH’ staat voor ‘Secure Shell’. Het is een vervanging voor ‘telnet’, wat gelukkig (en vooral hopelijk) al lang niet meer wordt gebruikt. Telnet is een niet-versleuteld protocol om opdrachten naar apparaten te sturen die zijn verbonden met een netwerk.

Het SSH-protocol maakt voor de authenticatie gebruik van zogeheten ‘public-key cryptography’. Het versleutelen van de verbinding gebeurt door middel van symmetrische cryptografie. De sleutel die hiervoor wordt gebruikt, is alleen bekend bij de server en de client en wordt gemaakt zodra de verbinding wordt opgezet. Op deze manier kan er veilig gecommuniceerd worden met een server over een onveilige verbinding.

Dankzij SSH kun je dus met een versleutelde manier inloggen op een andere computer (of server). Zo kun je op afstand commando’s uitvoeren via een shell. Omdat SSH met encryptie werkt, is het voor eventuele afluisteraars zo goed als onmogelijk om wachtwoorden of commando’s te achterhalen.

Waarom SSH?

Het concrete antwoord op deze kritische vraag: onze klanten vragen hier heel erg vaak om en wij houden van onze klanten. Er zijn een aantal dingen die onze klanten graag zouden willen, zodat ze hun website beter kunnen beheren. Een korte opsomming:

  • Git: de beste tool voor ontwikkelaars om code te beheren en delen;
  • Subversion/SVN: ook een (ietwat verourderde) manier om code te beheren;
  • SFTP: bestanden beheren over een SSH-verbinding. Niet te verwarren met FTPS, iets dat we al hadden. Zie SFTP als FTP maar dan veilig;
  • Softwarebeheer: eenvoudiger installaties doen van applicaties, bijvoorbeeld met een bijgeleverd installatiescript.

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

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

Container hosting: je eigen resources voor meer performance en veiligheid!

Zoals je wellicht eerder hebt gelezen, is Antagonist druk bezig met het de overgang naar een nieuw superplatform. Dit is niet één ding, maar bestaat uit meerdere facetten. Een nieuw netwerk, de nieuwste servers en andere nieuwe hardware, het gebruik van DNSSEC, de beste tools voor serverbeheer en nog veel meer. Al deze aspecten samen vormt de krachtbron voor snelle, stabiele en veilige webhosting. Zodat wij de beste gebruikservaring en hoogste performance voor jouw website kunnen bieden.

Container hosting: het nieuwe superplatform van Antagonist

Al eerder gaven we een tipje van de sluier over een nieuwe vorm van veilige webhosting die we met de introductie van ons nieuwe platform in gebruik hebben genomen. In dit artikel wil ik daarover graag wat meer vertellen. Mijn collega Sander had het in een zijn artikel over de evolutie van shared webhosting, tot het punt waar wij nu zijn aangekomen: containerisatie. Shared is niet meer shared, want iedereen krijgt z’n eigen container. Een server zo ingericht dat iedereen ‘bij elkaar woonde’ is niet meer. Nu krijgt iedereen z’n eigen ‘luxe appartement’. In hostingtermen heet dat containerisatie. Op een server krijgt elke gebruiker z’n eigen container en daarmee dus meer privacy, veiligheid en performance.

“The whole is greater than the sum of its parts”

Naast voordelen als veiligheid, eigen processen, unieke instellingen en zelf je PHP-versie kiezen, is er nog een ander héél groot voordeel. Elke container krijgt namelijk zijn eigen resources (CPU, IO en RAM) toegewezen. Op deze manier heeft het gebruik van één container geen invloed op andere gebruikers van de server. Een stuk stabieler en betrouwbaarder dus. In dit artikel ga ik je laten zien wat de verschillende onderdelen zijn, waarop resources ingedeeld worden. Wat de oorzaak en het gevolg ervan is, en hoe je inzicht krijgt in je gebruik.

Ik ga het woord ‘container’ vaak noemen. Maar wat is dat nou precies? Met een container bedoel ik alles wat er op een hostingaccount draait: websites, e-mail, FTP, cronjobs, etc.

Hoe zie ik mijn gebruik en waar moet ik op letten?

Voordat we diep de techniek in duiken, ga ik eerst kort uitleggen waar je het huidige en historische gebruik van je container kunt vinden. Tevens geef ik aan wat de belangrijke punten zijn waarop je moet letten. Om bij deze statistieken te komen log je in op DirectAdmin en klik je op ‘Resource usage’.

Container hosting: resource usage in DirectAdmin

Verder lezen