Proserveshowcase

Hoe bouw je een schaalbare en veilige website? #1

Proserve heeft medio vorig jaar een ingrijpende transitie ondergaan. De dienstverlening is vernieuwd en uitgebreid, wat onder meer onderstreept wordt door een volledig nieuwe website. Omdat wij geloven in onze dienstverlening en de kracht van ons platform hosten we onze nieuwe website zelf en gebruiken we precies dezelfde producten en diensten als we onze klanten bieden. In deze blog leggen we uit hoe we te werk zijn gegaan en hoe we business requirements hebben vertaald naar de techniek.

Requirement 1: Host een Drupal-website op het Proserve-platform en voorzie deze van managed diensten.

Om na te gaan wat de vereisten zijn aan een Drupal-website hebben we allereerst bekeken welke infrastructurele componenten er nodig zijn voor Drupal. Dat zijn Apache, MySQL en PHP. In de meest eenvoudige configuratie betreft dit een enkele Linux-server met daarop deze componenten. Bij Proserve hebben we een voorkeur voor CentOS als Linux-distributie. 

Verder kozen we voor een ProCLOUD-server om de LAMP-stack op te plaatsen. De systeemeisen zijn niet erg specifiek, maar we kunnen aangeven dat de meeste standaard servers hier aan voldoen. Omdat we niet veel hardwareresources nodig hebben, is het inzetten van een virtuele server de meest kostenefficiënte optie. Dit biedt ook de mogelijkheid om later, zonder ingrijpende wijzigingen, resources toe te voegen. Ook biedt de virtuele omgeving bescherming tegen langdurige downtime door hardware-uitval.

De managed diensten die we op deze server aanbieden, zijn:

  • proTIM; Technical Infrastructure Management – het beheer van het besturingssysteem. Naast het patchen van CentOS wordt ook monitoring ingericht, wat pro- en reactief beheer mogelijk maakt. 
  • proTAM; Technical Application Management – het beheer van de middleware en runtime. We zorgen ervoor dat Apache, MySQL en PHP bijgewerkt zijn en blijven. Ook hier hebben we monitoring ingericht om het voor de beheerorganisatie mogelijk te maken dat de benodigde componenten beschikbaar blijven.
  • proSLA; Service Level Agreement. De afgesloten SLA zorgt voor 24x7 support conform de overeengekomen responsetijden. We kozen voor de Business SLA, het tweede niveau van in totaal vier. Downtime van de website is vervelend en zorgt mogelijk voor imagoschade, maar heeft geen impact op de core business van Proserve.

Requirement 2: Maak de website schaalbaar.

Om de schaalbaarheid van de website te vergroten, hebben we de database losgekoppeld van Apache en PHP. Daardoor kunnen we beide onderdelen separaat schalen en zijn eventuele performance bottlenecks op een efficiënte manier op te lossen. 

Als de database bijvoorbeeld de bottleneck is, kunnen we de server voorzien van meer geheugen, meer CPU’s of full-SSD-diskcapaciteit in plaats van SSD optimized SAS. Dit wordt wel verticale schaalbaarheid genoemd. Ook kunnen we meerdere databases of webservers inzetten om de werklast te verdelen. Dat is horizontale schaalbaarheid

Requirement 3: Draag zorg voor het beschermen van de infrastructuur tegen externe aanvallen.

We realiseren de beveiliging op twee manieren. Allereerst gebruiken we een A-merk firewall die, net zoals een traditionele firewall, alleen verkeer over specifieke poorten toelaat en naar een specifieke server. De MySQL-server is extern niet te benaderen. Dat kan alleen bij de Apache-host en ook alleen over de TCP-poorten 80 en 443. Daarnaast beschermt de firewall ook tegen bekend onveilig verkeer. Dit gebeurt met behulp van de reputatiedatabase die door de fabrikant wordt bijgehouden.

We kozen voor een virtuele firewall, zodat uitval van een fysieke appliance geen noemenswaardige downtime veroorzaakt. 

In ons volgende blogartikel gaan we in op de manier waarop we de continuïteit van de website borgen door hoge beschikbaarheid en disaster recovery.