Innovatie & Strategie

Redundantie 2.0: wegwerp-ICT
Bewust vergankelijke ICT-middelen kunnen beschikbaarheid, prestatieniveau en beheer bevorderen.
Bewust vergankelijke ICT-middelen kunnen beschikbaarheid, prestatieniveau en beheer bevorderen.
In den beginne was er de grote, centrale computer. Via client/server, fat clients, het web en de cloud maakt de ICT-wereld nu een nieuwe trend door. Die van wegwerp-ICT, wat redundantie juist ten goede kan komen.
Het lijken tegenstrijdige zaken: wegwerp-ICT enerzijds en redundantie anderzijds. Traditioneel gezien komt redundantie namelijk neer op het zorgen voor betere, stabielere, dubbele voorzieningen om storingsbestendig te kunnen zijn. Dubbel uitgevoerde voedingen, gesynchroniseerde dataopslag, in tandem werkende processors, simultaan werkende geheugenpools, enzovoorts.
Keer 2 of meer
Alles keer twee of meer, mét onderlinge koppeling voor snelle of zelfs directe overname van taken bij zware belasting, storingen of uitval. Dit alles en meer kan in één en hetzelfde systeem zijn, wat dan een bepaalde mate fouttolerantie bereikt. Daarnaast kunnen dubbel uitgevoerde voorzieningen ook juist toegepast worden in de vorm van extra systemen. In beide gevallen komt dit neer op kostbaardere voorzieningen.
Deels gaat het hierbij om back-up van data en faciliteiten voor uitwijk, maar deels ook om ICT-capaciteit staande bij te hebben of zelfs live gespiegeld mee te laten draaien. Een uitwijk of failover die X tijd nodig heeft om actief te worden, heeft relatief minder nut. Naarmate X groter is, neemt het nut fors af. Hetzelfde geldt voor een uitwijk of failover die X tijd achterloopt op de productieomgeving waarvoor het storingen moet opvangen. Tijd is geld en dataverlies kost ook nog eens geld.
Van oudsher vertaalt redundantie zich dan ook als complexe opstellingen van zwaar uitgevoerde, gekoppelde en complex synchroniserende systemen. Een relatief nieuwe trend belooft hier een einde aan te maken. De trend van wegwerp-ICT. Ogenschijnlijk minder omslachtig, maar onder de motorkap zeker wel complex. Alleen wordt die complexiteit meer afgeschermd.
In de kern valt wegwerp-IT te vergelijken met de klassieke notie van RAID voor opslagsystemen. Het koppelen van meerdere fysieke harde schijven in één logisch geheel, als redundant array of independent disks (RAID), heeft ooit zijn opmars gemaakt vanwege drie voorname voordelen: prestaties, databescherming en prijs.
De gecombineerde schijven kunnen namelijk een hogere snelheid halen door slimme onderlinge verdeling van data waardoor de last van lezen en schrijven wordt verdeeld. Daarnaast kunnen de samenwerkende schijven data dubbel opslaan, wat voor betere redundantie zorgt. En tot slot vallen hiervoor goedkopere schijven te gebruiken. De afkorting RAID wordt dan ook wel uitgeschreven als redundant array of inexpensive disks.
Een vroege stap op de route naar wegwerp-IT is gezet met het clusteren van servers. Deze kunnen elkaars taken overnemen, of aangestuurd door een load-balancer websitebezoekers of database query's afhandelen. Dit is de notie van scale-out; het vergroten van schaalbaarheid door méér computers in te zetten, naast elkaar geplaatst. Scale-out staat haaks op scale-up; het vergroten van schaalbaarheid door zwaardere, grotere computers in te zetten.
Intel + Linux = goed genoeg
Deze servertrend heeft al leveranciers van zware Unix-servers en gespecialiseerde redundantielevanciers hard geraakt. Zie maar de ondergang van Sun Microsystems, het lot van serverspecialist Tandem en het ooit met x86-servers pionierende Stratus. Zij boden elk zware servers, met speciale voorzieningen op basis van bedrijfseigen en daarmee kostbare technologie.
Goedkopere en relatief lichte servers met Linux en Intel-processors volstaan prima, en niet meer alleen voor scale-out. Ze zijn voor veel toepassingen de norm geworden en bieden ook een vorm van redundantie. Anno nu bestaat Stratus nog wel, maar de voorziene marktverovering is er niet van gekomen. Dit ondanks het ontegenzeggelijk kritieke belang van ICT. Storingen hebben grotere impact, kosten meer en zorgen voor forse ergernis.
De oplossing hiervoor wordt echter gezocht – en gevonden – in een ogenschijnlijk tegengestelde aanpak: die van wegwerp-ICT. Grote gebruikers van nu hebben ICT-omgevingen die vele ordes van grootte groter zijn dan wat slechts enkele jaren terug als ‘groot’ werd beschouwd. Het gaat hierbij niet alleen om grote hoeveelheden data, maar ook om grootschalige behandeling daarvan: verwerking, analyse, actualisering, koppeling, enzovoorts.
Server kapot? Weggooien
Deze haast exponentiële schaalvergroting geldt voor ICT-reuzen als Google, Facebook, AWS (Amazon Web Services) maar ook voor de backend operations van Apple, Microsoft en andere organisaties met grote aantallen klanten, diensten, data en development. Dergelijke grootgrutters vormen in toenemende mate hun eigen ICT-omgevingen. Hiervoor ontwikkelen en verfijnen ze zelf diverse software-innovaties, die ze veelal weer delen als open source. Het softwarewerk op dit gebied geniet vaak wel enige bekendheid, maar ook met hardware wordt er gepionierd.
Zoekmachinegigant Google is bijna twintig jaar geleden al begonnen met wegwerpservers in zijn datacenters. Het ontwerp hierbij ging doelbewust uit van goedkope, minder betrouwbare servers die bij uitval simpelweg afval werden. Daarbij werden uitgevallen servers niet eens direct vervangen; dat kon wel op een later tijdstip, bijvoorbeeld in een geplande ‘vuilnisophaalronde’ door het datacenter.
De term 'server' was hierbij ook relatief: Google gebruikte in wezen kale moederborden, liggend op lades in serverracks. De allereerste lading van deze wegwerpmachines was zelfs zo haastig geassembleerd dat componenten van de moederborden contact maakten met de metalen rack-lades, wat kortsluiting kon veroorzaken. De oplossing? Geen isolerende stand-offs vastschroeven aan de verschillende bevestigingspunten van moederborden, maar simpelweg kurkmatten onder de kale servers leggen.
Softwaregeschiktheid
Natuurlijk moeten data en applicaties wel geschikt zijn om (door) te kunnen draaien op zo’n wegwerp-architectuur. Google's kerndienst van web search leent zich hier wel voor. In de loop der tijd zijn meer toepassingen geschikt gemaakt voor een dergelijke aanpak én is de opzet zelf verfijnd om meer toepassingen te kunnen bestrijken.
Een belangrijke ontwikkeling hierin is de volwassenwording en wijdverbreidheid van virtualisatie. Het idee van virtuele machines, gescheiden draaiend bovenop fysieke computers, is an sich niet heel nieuw. Maar virtualisatie heeft de afgelopen jaren een flinke verfijning en versterking doorgemaakt, waar in wezen cloudcomputing uit is voortgekomen.
Dankzij virtualisatie hoeven applicaties geen notie meer te hebben van de specifieke hardware waar ze op draaien. De virtualisatiehypervisor schermt dit voor ze af en presenteert een semi-generieke server, met X rekenvermogen plus Y geheugenruimte, Z opslagcapaciteit en nog andere karakteristieken die nodig zijn voor de uit te voeren taken. Afgezien van het ontsloten rauwe vermogen doet de onderliggende hardware er niet meer toe.
Aanvankelijk is virtualisatie veel toegepast om onderbenutting van fysieke hardware te bestrijden. Software(on)geschiktheid voor multitasking en serversharing speelde hierbij ook een belangrijke rol. Datacenters waren hierdoor goed gevuld met grote aantallen servers die elk relatief weinig stonden te doen.
Het piekvermogen moest namelijk wel klaar staan, om plotse belasting of ook storingen op te kunnen vangen. Virtualisatie kan verspreid over meerdere machines de totale capaciteit beter verdelen, waarbij policies bepalen welke serverapplicatie onder welke omstandigheden welke hoeveelheid resources krijgt toebedeeld.
Van onderbenutting naar elasticiteit
De volgende stap na deze devaluatie van hardware is het devalueren van serverapplicaties, die ook wel aangeduid worden als alleen ‘servers’. Het gaat hierbij niet om de applicaties in het algemeen, maar om specifieke installaties. Individuele instances van applicaties doen er steeds minder toe, omdat ze als virtuele machine zó zijn uit te breiden maar ook te kopiëren, vers op te starten en nieuw aan te maken.
In de cloudwereld wordt hiervoor de term 'elasticiteit' gebruikt. Een systeem valt aan te passen aan veranderingen in de noodzakelijke of gewenste belasting door dynamisch vermogen toe te wijzen of juist weg te nemen. Dit aanpassen gebeurt op automatische wijze, wat dan onzichtbaar kan zijn voor de bovenop draaiende toepassingen. Een parallel valt te trekken met hoe RAID-controllers zorgen voor de dataverdeling over de individuele schijven zonder dat applicaties daar weet van (hoeven te) hebben.
Deze elasticiteit uit zich dus niet alleen in het opschalen en inkrimpen van specifieke instances van serverapplicaties. Het automatisch uitschakelen van de ene instance en dynamisch starten van een kopie – of meerdere instances – valt ook onder elasticiteit. De individuele applicatie doet er minder toe, heeft minder zorg nodig en dat jaagt elkaar weer aan. De recentere cloudtrend van containers trekt deze lijn verder door. Containers zijn een logische verpakking van gevirtualiseerde applicaties die, in tegenstelling tot virtuele machines, niet elk een eigen besturingssysteem hebben, plus de bijbehorende beheer- en prestatielasten.
Vee in plaats van huisdieren
Dit proces vormt de culminatie van de revolutie die virtualisatie heeft gebracht voor het voorheen omslachtige proces voor de ingebruikname van nieuwe servers. Het tijdrovende proces van hardware bepalen, bestellen, ontvangen en configureren werd gevolgd door software installeren, activeren en configureren. Elke server, zowel hardware als daarop draaiende software, is hierdoor kostbaar en ‘gekoesterd’.
Het logische gevolg van vergaande virtualisatie, cloudcomputing en elasticiteit is als de overgang van huisdieren naar vee. Servers zijn niet langer individuen die namen krijgen en zorg behoeven. Servers worden uitwisselbare, meer anonieme leden van een groter geheel: de kudde.
De fundamenteel andere aanpak van kuddes bestieren is zowel een technische zaak als een kwestie van mentaliteit. In kringen van agile werkende developers, systeembeherende ontwikkelaars en andere DevOps-doordrongen IT’ers is de veeaanpak al gemeengoed geworden. Overigens is ‘al’ relatief; de oorsprong van ‘huisdieren versus vee’ ligt in 2006. Toen heeft SQL Server-ingenieur Bill Baker van Microsoft deze metafoor geopperd om scale-up versus scale-out beter te duiden.
Genummerd en vervangbaar
Bij scale-up zijn servers als huisdieren. Ze krijgen namen, en als ze ziek zijn en niet meer goed functioneren worden ze verzorgd totdat ze beter zijn. Bij scale-out zijn servers als vee. Ze krijgen nummers, en als ze ziek zijn en niet meer met de kudde meekunnen, worden ze afgeschoten. Groot verschil met de digitale wereld is dat een nieuwe ‘koe’ met een muisklik of vooraf bepaalde policyregel valt aan te maken.
Techjournalist, ICT-kenner en contentproducent bij AG Connect.