6 Reasons to Remember Capacity Planning in Cloud Computing Environments
In traditional computing environments, capacity planning could be a crucial part of many systems, many solutions and many technology adoption processes. One had to carefully estimate volume and calculate all required resources for systems to work as expected. Resources had to be purchased in advance, sometimes with long procurement-delivery-installation processes. The result of a mistake during capacity planning could be either under-utilized or under-powered systems. Capacity planning was a step project teams had to go through, because the outcome of that step included key information for some steps that followed.
When capacity planning required information from different disciplines – business, marketing, data, software engineering and technology – the interaction and integration between the disciplines could be extremely complex, resulting in an overhead on the entire project. The multidisciplinary nature and the implications of capacity planning made it a risk often specifically highlighted and managed in projects.
Today more and more organizations use Cloud Computing. Everything as a Service, resources can be consumed on a pay-for-what-your-actually-take basis. Now the process can be easier, much shorter – if you’re elastic enough in the way you use your systems, and your cloud provider is elastic enough in the way resources are allocated for you, then you don’t really have to plan your capacity. You can start consuming, and assume that everything will be there to support you should you scale up or down your demand.
Capacity Management is essential in order to maintain the exact amount of resources you need, and to be as –close-as-possible to the best utilization you’d like to achieve, but this can be done later, and doesn’t have to be performed before you begin.
One of the beauties of Cloud Computing is that it can reduce some of the pains of capacity planning. In many cases – you can easily skip some aspects of it or reduce your efforts there. Small mistakes can be corrected more easily. More resources can be allocated without a long, painful process. But keep in mind that in many cases, especially when not using fully managed Software as a Service, capacity is still yours to plan, understand and manage.
Since you can easily start small and grow as you go, you may find yourself skipping capacity planning. Before you do that, here are some of my personal observations about the necessity of understanding capacity in many projects, in advance. Sometimes skipping the detailed low-level capacity planning is okay, or even desirable. However, don’t let the scale of resources required to meet your business requirements over time hit you by surprise. You should find the right balance between moving forward quickly and planning your capacity in advance. This balance differs from one organization to another, from one system to another and from one project to another.
Want to reduce your Cloud Computing costs?Let's talk!
6 reasons to remember Capacity Planning in Cloud Computing
- Elasticity. You have to be elastic to make the magic happen. You count on real elasticity to be on your side – but how elastic are your systems? Can you really downscale? Do you know when to upscale? If your provider gives you the tools to be elastic – you have to make sure your systems support and use them. How fast can you add components to your systems? Elasticity is as good as its implementation. If you don’t downscale and eliminate unnecessary resources in your pool, you may end up having a system that’s growing, and growing, and growing. If you don’t trust your systems to upscale at the right moment, you’ll ask for additional resources before you really need them. Cloud providers may give you the environments to be elastic. You need some kind of capacity planning and capacity management to know how to use elasticity for your benefit.
- Architecture. Cloud Computing lets you to start small, and upscale your systems as your business requirements grow. However, different sizes and scales may require different architectures. One must understand the planned magnitude of a desired system in order to plan and build it right. If the architecture has some built-in non-scaling components it may impact or even block growth options. Architecture changes may be difficult to execute, especially when a system is up-and-running and already serves the business. So when architecting your systems, you should conduct a capacity planning, or at least have a rough capacity estimate.
- Cost Reduction. You pay for resources. Why not make sure you plan everything in a way that maximizes utilization and reduces the needed resources to perform your tasks, if that’s an option for you? In order to do that, you have to understand capacity.
- Pricing and Budget. You have to know what to expect, and plan your budget accordingly. You have to make sure that you can pay for the resources you consume now, and when the business grows. You have to make sure that peak times are not beyond your budget. So not only capacity planning is important – but careful inspection of how capacity impacts the pricing is a key issue here. Pricing models and pricing units may vary between provider, and your capacity changes over time may impact the budget differently with different providers.
- Selecting a Cloud Provider. You Cloud provider should be the right one for you, including its ability to support your elasticity and capacity requirements, within your budget. You probably engage with your provider at early stages, so you should know more about your capacity requirements during these stages, to assure the right selection.
- Management. Don’t forget you have to manage and control your systems. If your system can scale to the gigantic sizes it should be to support your growth, but is too complex to manage once that big, then architecture may have to be redesigned and rebuilt. So once again, you have to understand the rough numbers and rough estimates of your capacity when you start.
Want to reduce your Cloud Computing costs?Let's talk!