Monday, 14 January 2013

StealFocus Forecast - ability to horizontally scale cloud services on a schedule

Following on from my previous post about the StealFocus Forecast application, the application can now horizontally scale a configured number of Azure applications on a schedule.

Just to recap, "Forecast" is an application that can be installed as a Windows service and will perform various operations on your Windows Azure applications according to the configuration. For example it can create or delete hosted services on a schedule. The principal driver for this is to save money, being able to remove hosted services when they are not being used and spin them up later (e.g. test environments) can be a big money saver.

A similar principal applies to horizontally scaling your application on a schedule. You can configure the Forecast application to scale out your application(s) during a certain time period (when there is anticipated high demand) and then scale back in later (during quiet periods). Minimising the number of running instances also presents the opportunity for cost savings.

To horizontally scale a Windows Azure application on a schedule, it is configured as follows:


  <scheduledHorizontalScale
    id="myArbitraryId"
    subscriptionConfigurationId="myArbitraryAzureSubscriptionName"
    serviceName="myAzureServiceName"
    deploymentSlot="Production"
    treatWarningsAsError="true"
    mode="Auto"
    pollingIntervalInMinutes="30">
    <horizontalScales>
      <horizontalScale roleName="myAzureServiceRoleName1" instanceCount="2" />
      <horizontalScale roleName="myAzureServiceRoleName2" instanceCount="4" />
    </horizontalScales>
    <schedules>
      <schedule scheduleDefinitionName="BusinessHours" />
    </schedules>
  </scheduledHorizontalScale>


You can have multiple entries (one for each service) and multiple schedules for each individual service.

A future feature will scale the application on demand, according the performance metrics.

For more information look at the home page on GitHub.

About Me