Is dat hier al voorbij gekomen?
SQL-databases schalen slecht en zijn moeilijk te distribueren. Je krijgt dan al snel no-sql databases, die vooral platte tabellen met sleutels en waardes opslaan. Maar als je daarop selecties wilt draaien, moet je iedere keer een heleboel data over de lijn trekken. Het is daarom eenvoudiger om voor iedere selectie een aparte server te maken.
Dan zit je met verschillenden dingen. Om te beginnen, als je er een aparte IIS of Apache server met zijn eigen SQL-database voor gebruikt, nemen ze veel ruimte en capaciteit in beslag. Maar dat hoeft natuurlijk niet. Het is heel eenvoudig om je eigen, unieke protocol te gebruiken en aan een poort te hangen. En als het absoluut HTTP moet zijn, kun je in C# bijvoorbeeld een HttpListener gebruiken.
Daarna zit je met de distributie en de beveiliging. SSL zegt bijvoorbeeld niets over de identiteit als je geen certificaten gebruikt. En om nou iedere micro-server zijn eigen certificaat te geven gaat wel erg ver. Ook is dat een vrij zware versleuteling die niet eenvoudig zelf te bouwen is.
En je wil waarschijnlijk die dingen "on-demand" kunnen opstarten. Het is het mooiste als ze zelf schalen: je verzoekt de hoofd-server om een bepaalde service, die controleert je identiteit en geeft je de sleutel en het adres van de server. Als die service nog niet actief is of de belasting te hoog is, start hij een nieuwe, met zijn eigen adres (minimaal een ander poortnummer). En als die service een tijdje geen aanvragen krijgt, geeft hij dat door aan de hoofd-server en sluit zichzelf af. Je moet natuurlijk ook iets inbouwen waardoor je kunt controleren of ze nog actief zijn.
Ik heb zoiets een paar keer gebouwd en vroeg me af of er meer mensen mee bezig zijn, en of hier al een kant en klare oplossing voor bestaat.
SQL-databases schalen slecht en zijn moeilijk te distribueren. Je krijgt dan al snel no-sql databases, die vooral platte tabellen met sleutels en waardes opslaan. Maar als je daarop selecties wilt draaien, moet je iedere keer een heleboel data over de lijn trekken. Het is daarom eenvoudiger om voor iedere selectie een aparte server te maken.
Dan zit je met verschillenden dingen. Om te beginnen, als je er een aparte IIS of Apache server met zijn eigen SQL-database voor gebruikt, nemen ze veel ruimte en capaciteit in beslag. Maar dat hoeft natuurlijk niet. Het is heel eenvoudig om je eigen, unieke protocol te gebruiken en aan een poort te hangen. En als het absoluut HTTP moet zijn, kun je in C# bijvoorbeeld een HttpListener gebruiken.
Daarna zit je met de distributie en de beveiliging. SSL zegt bijvoorbeeld niets over de identiteit als je geen certificaten gebruikt. En om nou iedere micro-server zijn eigen certificaat te geven gaat wel erg ver. Ook is dat een vrij zware versleuteling die niet eenvoudig zelf te bouwen is.
En je wil waarschijnlijk die dingen "on-demand" kunnen opstarten. Het is het mooiste als ze zelf schalen: je verzoekt de hoofd-server om een bepaalde service, die controleert je identiteit en geeft je de sleutel en het adres van de server. Als die service nog niet actief is of de belasting te hoog is, start hij een nieuwe, met zijn eigen adres (minimaal een ander poortnummer). En als die service een tijdje geen aanvragen krijgt, geeft hij dat door aan de hoofd-server en sluit zichzelf af. Je moet natuurlijk ook iets inbouwen waardoor je kunt controleren of ze nog actief zijn.
Ik heb zoiets een paar keer gebouwd en vroeg me af of er meer mensen mee bezig zijn, en of hier al een kant en klare oplossing voor bestaat.