Voor dit onderwerp moeten we Compass vergelijken met een auto. Een auto heeft 4 wielen, maar waarom zoveel? Juist! Stabiliteit. Een driewieler, zo toonde Mr Bean aan, is soms wat minder stabiel.
Compass, de 4 wielige auto, moet natuurlijk blijven rijden. stilstaan is geen optie: klanten willen blijven bellen! Stel nu dat we een wiel willen vervangen. Persoonlijk laat ik dat doen door de garage: ik zit dan een dagje zonder auto, dat kan prima… Maar voor Compass willen we dat absoluut niet! De truc die we uitvoeren is te vergelijken met het bekende bovenstaande filmpje.
Compass ontlast een paar servers. De redundantie staat hierdoor uit, dus de andere servers krijgen het wat zwaarder. De ontlaste servers moeten eerst ‘leeglopen’: we wachten tot de calls die op servers plaatsvinden afgelopen zijn. Daarna voeren we de upgrade uit: dat varieert van een nieuwe kernel, tot nieuwe softwareversies en aangepaste settings, nieuwe database-schema’s en -versies, en soms zelfs compleet nieuwe interfaces tussen de verschillende servers. Om te verwijzen naar het filmpje: na deze stap hebben we 2 wielen vervangen, maar rijden we nog steeds op de 2 oude wielen.
De volgende stap wordt nog moeilijker. Want na de eerste 2 wielen, moeten ook de andere 2 vervangen worden. Om dit te bereiken rijden we eerst korte tijd op 4 wielen, maar dat mag niet te lang duren: die 4 wielen zijn niet identiek: in auto-taal, ze hebben een verschillende diameter. We moeten zo snel mogelijk op de nieuwe wielen gaan rijden, en de oude 2 wielen uit faseren. Deze truc gaat hetzelfde als de eerste helft: eerst wachten tot de calls opgehouden zijn, en dan de tweede helft van de upgrade. Aan het eind zetten we de auto weer recht, op 4 wielen:
Alle Compass-servers doen weer mee, en redundantie is daarmee hersteld, en de upgrade is daarmee voltooid. Belangrijk verschil tussen ons en die Arabieren uit het filmpje: wij draaien niet dezelfde muziek, en tijdens de upgrade gaan we geen krantjes lezen. Want hoewel het hier nu redelijk simpel lijkt, moeten we toch ons hoofd er goed bijhouden tijdens een upgrade. De scripts zijn weliswaar door en door getest, maar we blijven alert om uw telefonie, ook tijdens de upgrade, gewoon te laten werken.