-2

Just for a little history, our product has been currently running on a bunch of DO and Linode and a few AWS instances. Our stack is a Python-Flask Webapp, Mongo(Distributed), Elastic Search, Rabbit MQ and Celery. We do process huge dumps of data(about 4-5GB) at about 2-3 times a day.

Our server so far has been running widely on DO, Linode and a bunch of AWS. While so far we have been happy with it, we have also brought into the consideration of AZURE in to the play, as we see a few of their design quite interesting, specifically their NSG and internal load balancers etc.

With this, the question that remains is, What is the best measures to see between these providers, what qualifies us better in terms of cost-to-performance ratios. So far we run about 80-90 16GB instances, but with Azure coming to the play,

1) We are wondering what is the best way of comparing the performances between these 4 providers. I am specifically talking about the IO, Memory and Network.

2) Also, has anybody ever had some good benchmarks so far as a comparison between these 4 providers ?

1 Answers1

2

Each provider is going to measure things differently, and is going to present performance details differently (and in the best possible light) in their documentation, the only way you are going to know which platform is best for your needs is to test yourself, against metrics that are important to you. There are a number of comparisons people have done available online, but ultimately these are going to be done from the viewpoint of what they were looking to achieve, and possibley even more importantly, with cloud platforms evolving so rapidly (especially AWS and Azure) it is entirely possible the information is out of date.

My recommendation would be to determine what metrics are important to you (which if you are monitoring your applications you should already know), and perform your own tests on each platform. I'd also ensure you know what you are looking to achieve by moving platform, if things are going OK with what you have, what are you looking to gain by moving, is it cost, performance etc. You can then balance what you observe in terms of performance against your aims.

In terms of actually how to measure the performance, you don't mention whether you are just using IaaS machines, or if you use PaaS, but assuming it's IaaS then you can look at either using your own monitoring solution, whatever that is, to monitor the metrics in the VM's, which is probably the easiest way to compare apples to apples assuming you have something ready to use. Alternatively you use the monitoring solutions built into the platform (Azure Monitor, AWS Cloudwatch) etc. but obviously this means collecting data in a different way for each platform.

Sam Cogan
  • 38,736
  • 6
  • 78
  • 114