Scale up and scale out

Omhoog of eruit

De grote uitdaging in het opzetten van schaalbare omgevingen ligt in het uitbreiden van de beschikbare middelen (resources), hoewel ook het op een nette manier verminderen van het gebruik van beschikbare middelen (resources) erg belangrijk is.

Bij schaalbaarheid op computersystemen wordt nog altijd gedacht in 'boxes', ofwel 'dozen'. Hiermee worden de fysieke computers aangeduid waarop applicaties kunnen draaien. Wanneer je binnen zo'n box extra capaciteit beschikbaar maakt wordt dat opschalen genoemd (scale up). Wanneer je de applicatie gaat verdelen over meerdere boxes wordt dat uitschalen (scale out) genoemd.

Wanneer gebruik gemaakt wordt van virtualisatietechnieken gaat het concept van 'boxes' al snel niet meer op. De technieken om meerdere fysieke computers samen te voegen tot een gevirtualiseerde grotere computer, en daarmee de mogelijkheid tot scale up verder uit te breiden, stuiten vaak op praktische bezwaren.

De technieken om gebruik te maken van scale out zijn de laatste jaren steeds makkelijker beschikbaar geworden. Bovendien leent het http protocol zich (door haar stateless aard) bij uitstek om over meerdere systemen gespreid te worden.

Door gebruik te maken van een load-balancing server, die het web-verkeer over meerdere applicatieservers verspreidt, kunnen eenvoudig (en zonder downtime) extra applicatieservers toegevoegd worden.

Scale down and scale back. Omlaag of terug erin

Webapplicaties hebben vaak typisch te maken met (al dan niet van te voren voorspelbaar) piekgebruik. Om die reden is het interessant om ook na een korte periode van gebruik van extra capaciteit weer terug te kunnen schalen naar de basishoeveelheid middelen (resources).

Door gebruik te maken van virtualisatie- en load-balancingtechnieken kan bijvoorbeeld een rolling downgrade gedaan worden. Dan worden stuk voor stuk de virtual machines die samen het load-balancing cluster maken gereboot waarna er minder middelen (ram, diskruimte, processorkracht) per machine beschikbaar gemaakt kunnen worden. De applicatie blijft al die tijd beschikbaar door de load-balancing techniek. Dit zou dan scale down, als tegenhanger van scale up heten.

Natuurlijk kan ook een aantal van de applicatieservers uit het cluster simpelweg 'down' gebracht worden. Omdat er geen sprake is van scale in, als tegenhanger van scale out, noemen we dit dan scale back.