Een OpenShift tijdschakelaar
Laatst werd mij gevraagd om eens te kijken of het mogelijk was om het gebruik van het OpenShift cluster terug te schakelen op basis van tijdschema’s. Een bijzondere vraag. Een OpenShift tijdschakelaar. Meestal is de vraagstelling of het mogelijk is om een applicatie automatisch te schalen op basis van CPU- of geheugengebruik. Waarom dan deze vraagstelling? In deze situatie wordt het OpenShift platform intern afgenomen. Is er een quota ingesteld en wordt er een pay per use afrekenmodel gehanteerd.
Kostenbesparing
De achtergrond van de vraagstelling is uiteraard kostenbesparing. Binnen de OpenShift omgeving zijn er meerdere development projecten. Deze zou je buiten kantoortijden kunnen “uitzetten”. Dit zou een antwoord kunnen zijn op de vraagstelling kostenbesparing. Uiteraard kan je betwisten of dit soort besparingen niet beter passen in een public cloud situatie. Een interessant vraagstuk.
Opschalen
Er zijn namelijk, buiten de vraagstelling van kosten besparen, ook andere interessante toepassingen. Je kan met de auto-scaling functionaliteit binnen OpenShift ook bereiken dat de resources efficiënt worden gebruikt. Dit is alleen niet altijd wenselijk. In sommige situaties wil je zelf bepalen hoeveel containers er op welk moment draaien. Door bijvoorbeeld een development omgeving uit te zetten, komt er capaciteit vrij om een batch proces op te schalen. Een interessante uitdaging. Na wat onderzoek kwam ik erachter dat een dergelijke toepassing nog niet bestond voor OpenShift. Op naar de tekentafel om het idee verder uit te werken. Zo is uiteindelijk Nightshift geboren.
Nightshift
Nightshift is een service die wordt gedraaid in een container binnen OpenShift. Aan de hand van een flexibele configuratie bewaakt Nightshift of het aantal draaiende pods moet worden aangepast. In een vast interval worden de huidige DeploymentConfigs opgevraagd bij de Openshift API. Wanneer er voor bepaalde DeploymentConfigs een tijdschema is geconfigureerd, dan wordt deze toegepast. Om dit te realiseren draait de service met een serviceaccount met zowel view- als editrechten. Nightshift - Simpel. Effectief. En vooral een leuke uitdaging.