Creating Growth Patterns
You've probably now seen a system and its cost report. However, the cost report shows fixed monthly costs for the system, and does not take into account the elasticity of your resources such as changes to the number of servers over time or the growth in the amount of the storage needed. Elasticity is one of the key benefits of using the cloud and to create more accurate cost reports, we have to be able to describe the elasticity patterns of the various resources in a system.
Patterns describe how a baseline changes over time. For example, on average, your system might need 5 web servers every month. This is the baseline number of servers needed. However, during the busy shopping season, you might need to double this baseline. This increase can be described using a pattern.
Please note the following considerations when using patterns:
- Some cloud providers (such as AWS) support reserved purchasing options (this is where you to make an upfront payment to reserve some resource for some time period, and in return get a cheaper hourly rate). You can add such resources to your deployments and set their quantity as normal, however, we currently do not support the attachment of patterns to the quantity of these resources.
- When attaching patterns to quantities, if you attach a percentage pattern (or a pattern which leaves the quantity as a decimal number) PlanForCloud will apply that pattern to the quantity and then calculate the cost as normal. For example, if we have a server at $1 per hour, and attach a 10% pattern to it, the quantity will be set to 1.1 and multiplied by $1 per hour. For this reason, it is not meaningful to attach percentage patterns to quantities.
We have created a set of patterns for you which you can simply attach to your resources within a deployment. It can be attached to any numeric value in a system. Wherever you see a blue "0 Patterns" button, you can click on it to attach/detach patterns. The position of the attached patterns can make a difference to the resulting values. You can change the position of the attached patterns by dragging them up or down.
Create your own patterns
The patterns we have created for you will probably cover the majority of cases, however if you would like to create your own patterns, click on the 'Growth Patterns' menu item at the top of the screen.
Before we get into creating patterns, lets cover the two types of patterns which can be created:
Permanent Patterns: changes made by permanent patterns persist, hence they change the baseline after they've been applied. For example, you might create a storage unit that uses 100GB per-month, and this value needs to be increased by 5GB every month. You can create a single permanent pattern to describe this (every month +5), rather than create individual patterns that set the baseline every month (January: 100GB, February: 105GB, March: 110GB...).
Temporary Patterns: changes made by temporary patterns only apply for the duration of the pattern, hence the baseline is changed back to its original value once the pattern has been applied. For example, you might create 5 web servers to serve your users every month, but you need to double this to handle a peak that your site gets during the summer. You can create a single temporary pattern to describe this (jun-aug *2). This means that the number of servers will be set to 10 in June, July and August, and go back to 5 in September.
Enter the following details in the empty row at the bottom of the table to create a pattern:
Name: Add 5 every month; Type: "Permanent", Year: "every year", Month: "every.1.month", Operation: "add (+)", Value: "5". Then click Create.
The following table provides examples of the various values you can enter when creating Patterns.
|Permanent||Every year||every.4.months||add (+)||A number greater than or equal to 0|
|Temporary||Year 1 of report||jun||subtract (-)|
|Year 2 of report||jun-aug||increase by (%)|
|Year 3 of report||decrease by (%)|
|set to value (=)|
The following charts show the effect of the different operations that can be used when creating patterns.
If you are applying multiple patterns to a resource, note that the position of the pattern can make a difference to the resulting values. For example, consider the following Patterns and a baseline of 100:
- Permanent: every year in every.1.month +5
- Permanent: every year in every.1.month increase by 100%
If the pattern positions are kept as above, the first few monthly values will be: 210 ((100 + 5) * 2),
430 ((210 + 5) * 2), 870 ((430 + 5) * 2)...
However, if pattern 2 is applied first, the first few monthly values will be: 205 ((100 * 2) + 5), 415 ((205 * 2) + 5), 835 ((415 * 2) + 5)...
You can change the position of a pattern by dragging it up or down the list of applied patterns in a resource.