One of the most useful features of cloud infrastructures is the ability to automatically scale an infrastructure vertically and horizontally with little or no impact to the applications running in that infrastructure. In truth, useful is an understatement. This feature fundamentally alters IT managers’ relationships to their infrastructures and changes the way finance managers look at IT funding. But the feature is a double-edged sword.
The obvious benefit of cloud scaling is that you pay only for the resources you use. The non-cloud approach is to buy infrastructure for peak capacity, waste resources, and pray your capacity planning was spot on. The downside of cloud scaling, however, is that it can become a crutch that lazy system architects use to avoid capacity planning. In addition, over-reliance on cloud scaling can lead an organization to respond to demand—and thus add cloud instances—when the demand in question simply has no business benefit.
Capacity planning is basically developing a strategy that guarantees your infrastructure can support the resource demands placed on it.
Capacity planning is just as important in the cloud as it is in a physical infrastructure. And you do not need to engage in some outlandish capacity planning project to develop a proper plan. In the end, your objective is simply to make sure that when you incur additional cost by scaling your infrastructure, the additional cost will be supporting your objectives for that infrastructure.
Expected Demand
You absolutely need to know what demands you expect to be placed on your application. I am not suggesting you need to be a seer and accurately predict the number of page views on your website every day. You simply need to have a well-quantified expectation that will enable you to:
- Plan out an infrastructure to support expected loads
- Recognize when actual load is diverging in a meaningful way from expected load
- Understand the impact of changing application requirements on your infrastructure
The most obvious value of demand estimation is that—combined with understanding how your system responds to load—it tells you how many servers you need, what kind of servers you need, and what resources those servers require. If you have no idea how many people will use your website or web application, you literally have no idea whether the infrastructure you have put together will work right. It could fail within an hour of deployment, or you could waste countless amounts of money on unnecessary infrastructure.
You cannot possibly be expected to predict the future. The point of capacity planning is not to eliminate unexpected peaks in demand; you will always have unexpected peaks in demand. The point of capacity planning is to help you plan for the expected, recognize the unexpected, and react appropriately to the deviation.
Consider, for example, the scenario in which you have an infrastructure that supports 10 million transactions/second and you have a growth from your average load of 1 million transactions/second to 5 million transactions/second. If you had properly estimated the load, you would recognize whether the sudden surge was expected (and thus nothing to be concerned about) or unexpected and thus something to watch for potential capacity problems. Without proper load estimation, you would not know what to do about the variation.
Capacity planning steps
- Determine the distinctiveness of the present system.
- Determine the working load for different resources in the system such as CPU, RAM, network, etc.
- Load the system until it gets overloaded; & state what's requiring to uphold acceptable performance.
- Predict the future based on older statistical reports & other factors.
- Deploy resources to meet the predictions & calculations.
- Repeat step (i) through (v) as a loop
0 comments :
Post a Comment
Note: only a member of this blog may post a comment.