Happy new year everyone! I want to know for a site that has between 100 and 200 users/hour how many djangos instances needs to be running? Are you using some front cache like varnish? I ask this for the old saleor version, the version that uses django templating not react. Thank you very much!
Hello @jdivins, thanks for reaching out. In general it's not that straightforward to say how many instances you need for given number of users on site. To discover the correct values or estimate them you could measure the performance of your app, becasue required compute power depends on your templates and SQL queries. You could take a look on the article on our blog https://blog.mirumee.com/application-performance-testing-9e6af4439da and do similar tests for your project
Regarding front-end cache like Varnish - yes, it's possible to use the caching system like Varnish or Cloudfront with saleor, but you'll have to cover your views with appropriate headers (see https://docs.djangoproject.com/en/2.1/topics/cache/#controlling-cache-using-other-headers), because some views must not be cached like checkout, dashboard or other user-specific places
it's safe to configure front caching to cache only the views that contain cache-control header and you could decide on your own how much time the cache system will keep your content. For example product listing for 30s, single product for 5 min etc.
@jdivins I don't, but you could start with two n1-standard-1 instnaces for your project and then fire some locust or siege against the site and measure the traffic. It's really hard to say without measurments how much servers you'll need to handle your traffic well. If you have sudden traffic peaks I recommend to implement caching with some CDN (you could try the one delivered by google cloud)
also when you see that cpu is over-utilized you may select an instance with more cores and scale number of uwsgi processes. Selecting underlying hardware is more like a process instead of a magic formula to be honest.
Just for the reference: I've handled around 900 requests per minute on a 7$ Heroku instance with an average server response time 330ms. Just a plain Saleor and CloudFront for static images.