One of the main benefits of using cloud Infrastructure-as-a-Service (IaaS) for your applications is the ability to scale your usage up and down and pay for only what you use. However, predicting pay-as-you-go costs based on changing use patterns can be difficult. Enterprises stumble over questions about growth and elasticity:
- How much will the cloud cost in three years when our usage has increased?
- We are planning on growth at x percent per month, but what if we actually grew by y percent?
- We are planning a new product launch — how much will our traffic spike cost?
- What if our marketing campaign goes viral like Animoto’s Facebook launch?
PlanForCloud is a free cloud cost forecasting tool that enables you to model your requirements and generate a detailed three-year cost forecast. Not only can you model such resources as servers, storage, databases, data transfers, and support costs, but also elasticity and growth patterns.
Let’s step through the process of creating and applying patterns to see how you can assess the cost of your IaaS growth.
Modeling Enterprise Growth Patterns in the Cloud
A number of factors can cause an increase in cloud consumption:
Constant Growth: If your user numbers are increasing month over month, you may have to scale up your servers to be able to handle the requests. Even if user numbers remain steady, you may experience constant growth in your storage consumption.
Seasonal Growth: Your enterprise may be in an industry that experiences predictable growth and shrinkage during certain times of the year. Websites and web applications that cater to holiday shoppers, for instance, experience this kind of growth.
Lifecycle Growth: Enterprises usually experience a temporary growth phase during new product launches and marketing activities. High-spike growth phases usually last for a few weeks to a few months and then stabilize at a lower number.
These three growth patterns are not mutually exclusive and can happen at the same time.
Designing Growth Patterns – Permanent vs. Temporary
When planning for growth, it is helpful to think of patterns as permanent or temporary:
Permanent Patterns: A permanent pattern is one that persists, in that once it has been applied, it changes the baseline number of resources being used. For example, you might create a storage unit that uses 100GB per month and then need to increase this value by 5GB every month going forward.
Temporary Patterns: A temporary pattern lasts only for some duration, and at the end of that time the resource usage returns to the original number. For example, you might need 20 web servers to support your users every month, but you need to double that number to handle a peak that your site gets during the shopping season.
Designing Growth Patterns — Operators
Planners can model a large number of different growth patterns in PlanForCloud. We have five operators that people can use to address the majority of use cases: Add (+), Subtract (-), Increase by (%), Decrease by (%), and Set to (=). Here are some example of how you might use them.
Step-by-Step Forecasting the Cost of Your Growth
To use PlanForCloud, you must first create a free account to forecast your cloud costs. You can then follow five simple steps:
1. Model Cloud Resources
To start modeling your cloud requirements, you will need a deployment, which is a logical grouping of all the resources required. Think of a deployment as a scenario. You can either create a new empty deployment or import a snapshot of your current resources from RightScale:
Next, add resources across Servers, Storage, Databases, Data Transfer, Support Plans, and any Other Costs, such as licenses or other tools being used to your deployment. Here is what the server selection page in PlanForCloud looks like:
2. Generate Cost Report
Once you have modeled your cloud requirements, you can generate a three-year cost forecast. PlanForCloud will take your requirements, run them through a three-year simulation, and apply 12,000 live price points to create the cost forecast:
As you can see, this forecast appears as if your cloud were running 24/7 every day for three years (notice the different hours per month are also taken into account), which usually is not the case on public clouds. Next, create the elasticity.
3. Create a New Pattern
Patterns are controlled at the user level, so you can easily change growth patterns across multiple resources. Navigate to the Growth Patterns page from the top menu. Here, you can choose whether your pattern is permanent or temporary and how often it occurs (yearly, only on the first year of cost forecast, monthly, only between specific months, and more), and specify an operator and a value.
4. Apply the New Pattern
You can apply patterns to any number within PlanForCloud, including instance and database counts, storage volumes, and data transfers. To add a pattern, go in your deployment, click the blue Patterns button beside the number you would like to apply the pattern to, and add the desired patterns to the right-hand “patterns” section.
If you apply both additive and multiplicative patterns to a resource, note that the position of a pattern can make a difference to the resulting values. You can change the position of a pattern by dragging it up or down the list of applied patterns in a resource.
5. Generate New Cost Report
Once you have applied your patterns, you can regenerate your cost report to see how much your growth and elasticity will cost. Remember to also model all your other resources such as storage and data transfers. If you want to create multiple scenarios based on different growth patterns, you can easily clone an entire deployment, change resources and growth patterns, and compare your options.
The ability to consider usage patterns helps many of our customers forecast and budget for their future cloud costs, make purchase option decisions (such as buying AWS Reserved Instances or committing to Windows Azure purchase options), and assess the cost of their growth. PlanForCloud is a free tool, so if you want to forecast your future cloud costs.