Essent

Autoscaling applicatie platform

Autoscaling applicatie platform

Hoog beschikbare applicaties die het altijd doen en vele duizenden gebruikers snel kunnen helpen is een heel kostbare zaak geweest. Daar hebben we nu verandering in aangebracht.

Cloud platformen als Amazon en Google bieden auto scaling aan. Maar daarmee ben je er nog niet helemaal.

Essent autoscaling platform

Bij Centillien hebben we een applicatie ontwikkeld dat ook detecteert als een node stuk is, of een deel van de applicatie. Verder moet er rekening worden gehouden dat de sessie van de gebruiker naar de juiste node in het cluster gaat en moet je een andere manier van code bijwerken hanteren dan bij andere applicaties. Combineer het met een super snel database platform als MongoDB en je app is niet meer stuk te krijgen, behalve natuurlijk door de ontwikkelaars 🙂

Zo zijn er nog wel een aantal zaken die je goed moet inregelen om zowel een kosten effectieve als uiterst schaalbare applicatie te krijgen. Wij hebben dit al gedaan voor diverse applicaties, van apps, tot CRM. In principe is het toepasbaar voor elke web applicatie.

Iedere afzonderlijke node wordt gecontroleerd wat de HTTP response is, als er een fout in de code zit zal een HTTP 500 error worden teruggegeven. Dit geeft de controle applicatie dus de indicatie dat er iets mis is met deze node. Maar het kan ook dat er op alle nodes een fout staat en het is dan niet de bedoeling dat iedere node down gaat. Want dan is de hele site offline. We vergelijken de waardes dus, tussen de verschillende nodes. Is de code dus alleen op die ene node fout, wordt een nieuwe instance gestart en is het probleem verholpen.

Een nog geavanceerdere manier is als er tijdens het maken van een nieuwe codebase, dus voor alle nodes en daar is iets mis gegaan zou de site ook volledig down gaan. Automatisch herstel is mogelijk door terug te gaan naar de vorige build versie.

Om ook de database te schalen gebruiken we database clustering, met 1 write database en meerdere read instances. De meeste applicaties hebben namelijk vooral read transacties en relatief weinig write. Om te weten welke read en welke write zijn, gebruiken we maxscale als database proxy. Dit werkt alleen voor mysql type databases. Voor een ander type database moet dus ook een andere database proxy worden gebruikt. Zo heeft Oracle bijvoorbeeld een eigen clustering systeem, dat RAC heet. Ook Microsoft heeft een eigen clustering systeem. Deze commerciële database systemen hebben wel een aparte licentie voor clustering.

Onderstaande figuur geeft een overzicht van hoe dit zou werken in AWS.

Autoscaling CRM

Meer inspiratie opdoen ?




    Inspiratie opdoen door contact op te nemen?