Ik ben op zoek naar wat advies aangaande het opzetten van een schaalbare oplossing in (bijvoorbeeld) kubernetes of soortgelijks.
De situatie is dat ik een SAAS pakket aanbied waarbij ik gebruik maak van ca 25 webservers. Een paar voor de frontend, mysql server, redis en ca 20 'workers' die op de achtergrond informatie verzamelen en verwerken. Die 20 servers draaien allemaal op Ubuntu en via de cron starten ze elke minuut een set taken (python en php) die ze via een API endpoint binnenhalen. Qua schaal moet je denken aan 2.5 miljoen taken per uur die via de API verdeeld worden zodat elke worker elke minuut hetzelfde aantal taken toegewezen krijgt. Als het druk is (taken duren langer dan een minuut) dan moet ik handmatig extra workers inschakelen wat niet handig is. Als het rustig is, stel de 20 servers voltooien hun taken structureel binnen 25 seconden, dan kan ik er gewoon een paar uitschakelen. Gebeurt niet vaak en ik qua kosten boeit het ook niet, maar ik wil hier het liefst geen omkijken naar hebben.
Het huidige proces werkt in principe probleemloos, maar, het zijn wel 20 servers die af en toe een update nodig hebben en ook van dat beheer wil ik af. Het gros van de servers draait bij DigitalOcean, al jaren, en daar ben ik zeer tevreden mee. Vanmorgen voor het eerst een 'platform-app' voorzien van een git repo waar de code voor de statische website in staat. Werkt tadeloos, maar is niet geschikt voor backend applicaties.
Concreet zoek ik een oplossing die (vrijwel) automatisch 'servers' kan toevoegen en verwijderen naar mate de workload toe- of afneemt en git commits automatisch overneemt. De 'servers' moeten daarnaast (statisch) identificeerbaar zijn zodat de API de juiste taken kan toedelen.
Wat is jullie ervaring met dit soort scaling?
De situatie is dat ik een SAAS pakket aanbied waarbij ik gebruik maak van ca 25 webservers. Een paar voor de frontend, mysql server, redis en ca 20 'workers' die op de achtergrond informatie verzamelen en verwerken. Die 20 servers draaien allemaal op Ubuntu en via de cron starten ze elke minuut een set taken (python en php) die ze via een API endpoint binnenhalen. Qua schaal moet je denken aan 2.5 miljoen taken per uur die via de API verdeeld worden zodat elke worker elke minuut hetzelfde aantal taken toegewezen krijgt. Als het druk is (taken duren langer dan een minuut) dan moet ik handmatig extra workers inschakelen wat niet handig is. Als het rustig is, stel de 20 servers voltooien hun taken structureel binnen 25 seconden, dan kan ik er gewoon een paar uitschakelen. Gebeurt niet vaak en ik qua kosten boeit het ook niet, maar ik wil hier het liefst geen omkijken naar hebben.
Het huidige proces werkt in principe probleemloos, maar, het zijn wel 20 servers die af en toe een update nodig hebben en ook van dat beheer wil ik af. Het gros van de servers draait bij DigitalOcean, al jaren, en daar ben ik zeer tevreden mee. Vanmorgen voor het eerst een 'platform-app' voorzien van een git repo waar de code voor de statische website in staat. Werkt tadeloos, maar is niet geschikt voor backend applicaties.
Concreet zoek ik een oplossing die (vrijwel) automatisch 'servers' kan toevoegen en verwijderen naar mate de workload toe- of afneemt en git commits automatisch overneemt. De 'servers' moeten daarnaast (statisch) identificeerbaar zijn zodat de API de juiste taken kan toedelen.
Wat is jullie ervaring met dit soort scaling?