0

I'm building an application which monitors uptime of hosts/ip addresses. I'm using Laravel + VueJS.

So the app should check lots of urls every minute and get & store in db http responses. I've never worked with highload so I'm struggling a bit.

The thing is: I'm able to store my application on a VDS, run queues using redis, do async jobs. For some number of urls it will work.

But:

  1. I have no idea how to scale this. For example, when talking about load balancers, as I get it they are used when users make a lot of requests, while in my case it's cronjob running on linux and running php processes.

  2. What's more important is: how the architecture should be made if I need to check the same URL from different locations (like US, Europe, China etc). Obviously I'll need many servers, however I don't have a clue how to connect them together.

Probable amount of work: marking 100k requests per minute

1

If i were building this i'd use a set of stateless processors orchestrated by queues or a service bus with a resilient, scalable DB in the back end.

For example, publish a queue for the list of hosts to be checked. Have a stateless "checker" node which can be run on e.g. azure functions, AWS lambda etc. and which picks the next item from the queue (and which can be scaled out to execute n concurrent instances depending on queue length). Write results to another "result" queue. Have another set of stateless agents examining that and triggering whatever action is necessary (alerts etc.).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.