Skip navigation

Tag Archives: perils

cloudsFor a Cloud Infrastructure, the ability to scale dynamically is a double edged sword.

Lets take the example of a more reactive approach to scaling on the cloud. Here, the utilization of all resources(CPU, RAM) in the infrastructure is monitored continuously and when it goes above a pre-defined threshold level, more resources are added. Let’s consider some failure scenarios that can happen with this approach.

* We know that a bot crawling the site will eat up whatever resources are thrown at it. The bot’s activity triggers the addition of more instances hence further empowering it. This leads to a sort avalanche effect and a mightily pissed off CFO.

* Adding application servers to support increasing demand while there are significant bottlenecks in the database infrastructure, further worsens the overall performance of the system.

* Spikes in traffic result in triggering off multiple instances without significantly improving the end user-experience. Hence giving rise to a bloated cloud infrastructure without sufficient business benefits.

There are many approaches you can take to plan your cloud deployment to get around these scenarios. They will be the subject of some future posts.


One of the most touted features of cloud infrastructures is its ability to automatically scale vertically and horizontally with almost zero impact on the running application/service. It changes the way CFOs look at IT infrastructure funding. Though the feature is paradigm shifting, it needs to be exercised with care.

In the traditional approach of hosting private infrastructures, the peak capacity is estimated and all the necessary infrastructure investments are made upfront. Inspite of this you continue to run the risk of underestimating the peak capacity. In contrast, with the cloud approach you pay only for the resources you actually use and the cloud also scales up to accommodate any overshoots.

The cloud however can make architects lazy and not design systems efficiently. Hence using up more resources than required. It may also lead to the development of systems that can respond to very high demands by adding instances, when meeting such demands may have no business benefits.