0

I have been trying get inputs on a headless CMS website rewamp project for a large enterprise in terms of hardware sizing estimates. Since I have mostly backend/microservices/cloud implementation background, gathering inputs on hardware sizing that will be needed for a web application at a substantial scale is a bit beyond my domain however owing to a few contingencies I am compiling details in this regard.

  1. I found the following link useful in terms of insights on sizing of a web server. https://hostadvice.com/how-to/how-to-determine-the-correct-size-and-type-of-a-web-server/#paragraph6

  2. Since the expectations are not for cloud based hosting for now, I focussed on 'on-prem' hosting examples. My attempts were to understand the hardware sizing needs of a large banks website as an example specifically on prem. But I could stumble on articles that did not give a holistic view.

  3. In terms of content size, I am aware of the need of the website is to serve 2000 active pages and 10K files and documents and the past month, website had about 5.2 million hits a month i.e. roughly 2 hits per second and the CMS to be opted must be in the Gartner's quadrant.

Any directions on resources where details of how sizing is carried out for memory, strorage, network, computing power, rack etc will be very helpful.

VSTech
  • 77
  • 3
  • 11

2 Answers2

1

You might run into a few problems with some of your assumptions ie

Since the expectations are not for cloud based hosting for now

and

CMS to be opted must be in the Gartner's quadrant

I'm assuming you mean "Gartners magic quadrant" here which is what most CIO's normally mean.

I'm not sure if there are many on premise solutions that are not end of life in the magic quadrant or won't become end of life since everything is going to the cloud. Sitecore does on premise but I'm not sure who else does it in the magic quadrant.

With regards sizing and maths:

In terms of content size, I am aware of the need of the website
is to serve 2000 active pages and 10K files and documents and the
past month, website had about 52K hits a month i.e. roughly 2
hits per second and the CMS to be opted must be in the 
Gartner's quadrant.

52000 hits per month is roughly one hit per minute ie this site is not busy at all.

Assuming you made a mistake and means 52,000,000 per month (taken from comment) that's

52000000 / (86400*30)

ie ~ 20 requests per second. Assuming that all hits actually happen during business using 8 hours as our working day then it's about 60 hits per second. This is a busy server, not crazy busy but enough where slow pages etc will cause you a lot of pain. Normally large CMS companies will have recommended hardware expectations in their literature, I'd poke around the ones you want to choose and see what you can find. Whatever they tell you go bigger because they assume that they have the perfectly tuned configuration serving static pages etc ie their material is normally 90% marketing.

This is enough traffic to be making serious money so does the customer want HA ie do you need more than one server, cluster perhaps, should they be hosted in different locations, do they need a load balancer etc.

Harry
  • 11,298
  • 1
  • 29
  • 43
  • Thanks Harry for your detailed insights and you are right there was a typo in the count of hits. It is 5.27 million hits in a month. To arrive at 2 hits a second, I considered 24 hours as the metric for accepting client hits and not the 8 hours. Yes, Gartner's Magic Quadrant is what the CMS to be chosen has to belong to and the incumbent CMS in use is Kentico which possibly the client is not pleased with and wants to replace. The availability expected is of 99. Do you feel that we have enough pointers on choosing the storage and rack needed For e.g. an assumption of 100KB size per page? – VSTech Dec 10 '21 at 20:13
1

Typically for hardware sizing you also have non-functional requirements such as high availability, scalability, security. For the CMS solutions for on premise you are looking at, it would typically be:

  • 2 x Web servers (load balanced)

    • CPU - min 4 cores
    • memory - min 16GB
    • storage - Mirrored SSD, size determined by total images and assets to be stored
  • 2 x DB Servers (mirrored)

    • CPU - min 4 cores
    • memory - ECC, min 16GB
    • storage - RAID SSD recommended - size determined by number of records need to be stored and growth factor on a monthly basis. safe to say, around 1TB.

you can then adjust it accordingly to have a target of max concurrent requests per second. I recommend you look at current traffic and determine the max concurrent requests per second and then target a throughput of your environment of at least double that.

with the above config, it can handle way more than you need but provides you the high availability and scale that you need.

make sure you add a CDN, content and page output caching on your app to minimize DB access which is the typical limiting factor for CMS applications.

We had a Kentico web application serving news articles with more than 300k news articles and serving more than 200 million page views a month. Peak we have seen is around 80k concurrent users/second and bulk of it was handled by the CDN, only reaching the web servers for refreshing the content.

eugenecp
  • 686
  • 8
  • 5