Technology

Pieken in trafiek oplossen met Azure Autoscale

By 10 juli 2019 No Comments
Blog: Azure Autoscale

In een wereld die constant verandert, moet je nieuwe technologieën omarmen. Maar voor uitgebreid experimenteren en vergelijken om met de beste oplossingen te komen, hebben we soms wat weinig tijd. Gelukkig is er twee keer per jaar een Discovery Day waarbij we “nieuwe” systemen, programma’s en functionaliteiten kunnen ontdekken en uittesten. Het zo efficiënt mogelijk verder uitbouwen van onze gloednieuwe loonmotor, staat zo goed als iedere Discovery Day op de agenda.

Tijdens de laatste Discovery Day wilden we de scaling features van Azure tot in detail leren kennen. Het belang daarvan ligt voor de hand. Met onze loonmotor mikken we op een capaciteit van 6 miljoen loonbriefjes per jaar. Onze loonmotor moet dus een enorme hoeveelheid data met vele pieken aankunnen. Een payroll consultant verwacht realtime resultaat. Tijd is geld, dus hij of zij heeft nood aan een optimale workflow.

Automatisch scalen

Je kan Azure Web Apps horizontaal (meer computers) of verticaal (krachtigere computers) laten scalen op basis van een aantal parameters. We kozen voor de eerste optie om geautomatiseerd en flexibel te schalen op basis van onze workload. Een consulent wil zo weinig mogelijk tijd verliezen door te wachten en zijn eigen flow bepalen zonder afhankelijk te zijn van een systeem. Als we niet automatisch kunnen scalen, kan dat bijvoorbeeld betekenen dat de lonen pas ‘s nachts berekend worden.

‘Opening kassa 2’

Wanneer heel veel consulenten gelijktijdig werken en veel berichten versturen, verhoogt dit mogelijk de load op ons messagingsysteem RabbitMQ. Het aantal berichten dat per seconde verwerkt kan worden door onze microservices is echter gelimiteerd, afhankelijk van de te verwerken data. Wanneer de hoeveelheid zodanig oploopt dat de microservices deze niet tijdig verwerkt krijgt, ontstaan wachtrijen. Een op maat gemaakte Azure Function verhelpt dit probleem door te meten hoeveel berichten in de wachtrij staan. Deze metingen worden doorgestuurd naar Azure Autoscale, die afhankelijk van de metingen de microservice zal in- of outscalen. Niels: “Dus als de wachtrij te lang is, doen we een extra kassa open. Komt het aantal berichten weer onder een door ons bepaald aantal, dan neemt het aantal machines weer af.”

Sneller

In één dag kregen Kris, Erwin en Niels de koppeling al werkbaar. “Onze Discovery Day verliep heel vlot en was erg leerzaam. We gaan wel nog verder onderzoeken hoe we de systemen sneller kunnen krijgen. Twee computers inschakelen, betekent niet dat de wachtrij automatisch twee keer zo snel wordt weggewerkt. Er kunnen bijvoorbeeld niet twee berekeningen van dezelfde persoon tegelijkertijd worden uitgevoerd.”
Als twee computers aan het berekenen zijn, kost dat wel effectief twee keer zo veel geld. Daarom is het automatisch scalen van groot belang voor de pricing. Doordat enkel tijdens de piekmomenten meerdere machines aan het werk zijn, scheelt dit enorm in de kosten.

Discovery Meetup

Tijdens de Discovery Day Meetup presenteerde het drietal hun bevindingen. “We kregen veel reacties van collega’s en bezoekers en moesten vooral vragen beantwoorden over de gebruikte code en functionaliteiten. De Meetup is een goed moment om te tonen waar we ons allemaal mee bezig houden bij Prato en hoe tof het is om hier te werken.”

We need you!

Voor de ontwikkeling van onze nieuwe loonmotor en een pak andere projecten zoeken we nog software developers. Ben jij op zoek naar een hightech omgeving waar je continu kan bijleren? Wil jij ergens werken waar initiatief gewaardeerd wordt? Bekijk onze vacaturepagina en solliciteer direct. Nog niet overtuigd? Ons boek staat vol goede redenen om bij Prato te solliciteren.

Deze website maakt gebruik van cookies om je gebruikservaring te optimaliseren. Door op “Accepteren” te klikken of door gebruik te blijven maken van deze website, ga je akkoord met het plaatsen van deze cookies.