There are three main reasons why online services and online stores cannot manage sudden traffic spikes.
The most common reason is using a very modest hosting service that is incapable of offering a proper service for online stores and services. Regardless of what type of hosting service is being used, the biggest issue tends to be a lack of scalability, manual and expensive scalability or, at worst, a huge initial investment for purchasing additional hardware, setting it up and then manually scaling it all. If the traffic dies down in the future, then the huge investment will still have been made and the company will be left with overprovisioned servers and thus, resources they no longer need. But since they will have already made the huge investment and the future will still feel uncertain, then they will continue to cover the costs for the new setup just in case there is another huge traffic spike in the future that they need to be prepared for.
In reality, these very serious issues can be resolved in a simple manner. All cloud service providers offer services that enable clients to completely transfer their solution into a cloud or if their existing solution is compatible with it, to borrow additional resources from the cloud if they need it.
The advantage of migrating into a cloud is scalability that more or less works in real time: if there is a spike in traffic, then the cloud service will automatically assign the service more resources, and if the traffic dies down, then the cloud service will match the changed requirements and lower the amount of resources given to the service. This kind of a solution means that IT specialists no longer need to predict how much space and resources will be needed at any given time and instead, the client only has to pay for what they actually use.
If the architecture where the solution is being hosted allows for it, then another option is to create a hybrid solution that enables the service or store to borrow resources from the cloud when necessary. This helps avoid making a big initial investment into new hardware and the danger of underusing the investment in the future.
Another widespread reason for why systems are unable to manage increased traffic is using the wrong kind of architecture or the wrong setup. For example, we have seen cases where a client has implemented a cloud service solution where either the wrong architecture has been built to run their application or the services they have implemented have not been optimised properly to handle bigger traffic loads.
This common problem can be resolved even more easily than the previous issue. Since everything the client needs is already available in the cloud, then they simply have to re-evaluate the existing architecture and change it if necessary. Additionally, they have to properly optimise all required cloud services.
The third and probably the most complicated problem arises when there is no way of scaling the solution at all. In this case, opting for additional caching services both inside the service as well as in the queries made inside the service may be a helpful solution. Another thing to account for is the fact that some non-scalable applications can be successfully scaled with the use of supporting services. In the worst-case scenario however, the client will have to upgrade their software, which means shutting down the online service until the upgrade is complete.