Monday, September 26, 2011

An Analytic Approach to Solving Load Balancing Problem in the Cloud

From Gravitant's blog.

IT management moves into a new dimension by the Cloud. In traditional IT, most of the cost generation occurs in procurement of resources, provisioning and maintenance. By nature, the cost generation is fairly static in traditional IT. Fixed cost of hardware and data centers and stable variable maintenance and provisioning costs contribute to this static cost structure. Cloud’s dynamic nature affects cost management of enterprises in the Cloud, too. Pricing strategies of cloud providers go along with principle of cloud as a utility. Although many pricing options have a fixed portion for a reserved capacity, the usage based cost is always a significant and varying part of enterprise cloud costs. This dynamic cost structure increases the importance of intelligent provisioning and management.
My previous article, “Cloud Sourcing Optimization: A Conceptual Model Discussion”, in Gravitant’s blog, introduces Gravitant’s efforts in optimization in Cloud analytics. The next of the series is investigating analytic solution approaches to solving load balancing problems.
The underlying problem is simply to determine when to turn off a virtual machine (VM) due to low utilization without allowing utilization of any VM to exceed a certain threshold level by turning on a new VM. The aim is to keep VM utilization within a reasonable band to minimize provisioning cost while satisfying workload demand. The question is what the “optimal” high-mark and low-mark utilization values to turn on and off VMs are.
The obvious decision variables in a corresponding optimization problem are high-mark utilization value, low-mark utilization value, whether an existing VM is turned off due to low utilization, and whether a new VM is created due to high utilization of any VM. Each turned of VM creates an extra load of work on the rest of the VMs. Each new VM shares the load of a high-utilized VM. Objective is to minimize total cost of provisioning. Set of constraints can be summarized in three groups.
1- High-mark utilization: New utilization of the remaining VMs after adding the used capacity of low-utilization VMs should be lower than high-mark utilization value.
2- Low-mark utilization: Any VM should have a utilization more than low-mark utilization value.
3- New VM creation: If a VM has a higher-than-high-mark utilization, then a new VM is created.
Because there are both binary and continuous variables, the optimization model tends to be a mixed integer programming model. However, since the first set of constrains is quadratic, the exact definition of the model is quadratically constrained mixed integer programming model. Some straightforward enumeration over the set of VMs will help linearize the constraint. Therefore, we will have a mixed integer linear programming model.
Although this static model may seem restrictive in a setting with a varying amount of demand for virtual machines to meet under budget limitations, it has ability to roll over time and transform into a dynamic model which would fit very well to the span of provisioning and the nature of the Cloud. The utilization band in which VMs are allowed to operate changes dynamically and provides a flexible space for decision makers.
This article reveals the tip of the iceberg of the analytic solutions which Gravitant offers as a cloud brokerage and management company for the enterprises. Our set of analytic solutions that help enterprises move into and operate in the Cloud will continue to grow and evolve.

Tuesday, September 13, 2011

Part 1 - Your application may NOT YET be ready for the Public CommodityCloud if...

1. Your application demand is very stable and doesn't fluctuate much
If your servers are not under utilized, then you are better off keeping things the way they are, unless you want to plan for disasters or other unplanned events.  This is because cloud pricing models are geared for elastic computing. It would be more expensive to provision 4 VMs than to run 4 servers in-house.  The benefits of provisioning fewer VMs and using burst capabilities will only be realized if such demand fluctuations are expected.

Alternative: Look for cloud providers (like Terremark) that price by usage (regardless of the number of VMs provisioned).

2. Your application's licenses can only be tied to physical cores
Many software licenses have not yet made the shift to the world of virtual machines.  For example, Oracle licenses can only operate on a fixed physical core, whereas virtualization technology was developed precisely to separate the physical layer from the software layer.  If Oracle is installed on a VM, the VM would be assigned to certain physical core(s) at one point in time and some other core(s) at some other point in time, which would violate Oracle licensing rules.

Alternative: Look for cloud providers (like Savvis) that have managed hosting servers which share a VLAN with their cloud.  In this way, Oracle can be installed on the managed hosting server while the rest of the application can be deployed on the cloud.

3. Your application stores a very large amount of data on the cloudWith storage disks getting cheaper by the day (1TB for $80), it is becoming increasingly cheaper to store large amounts of data in-house rather than pay for cloud storage every month.  This is because cloud storage is typically priced per GB per hour.

Alternative: Share data storage with other customers using Symform (or any other similar technology) that breaks up the data into a number of encrypted parts and then stores them in the other customer's data centers.  This gives the benefits of elasticity without paying too much for it.  It also increases security of data in the cloud because no one can use the data without having all the parts and being able to decrypt all of them.

4. Your application transfers a large amount of data in or out of the cloudMost cloud providers price their bandwidth by GBs transferred per month.  This would be very costly for applications that stream large data files on a regular basis.

Alternative: Look for cloud providers that price by Mbps of dedicated network throughput.  This is typically found in enterprise cloud providers like Savvis and Terremark.

5. You do not have the capability of managing your VMs any better than you do your serversThe ease of provisioning VMs as and when necessary can also lead to VM sprawl if not managed appropriately.

Alternative: Subscribe to a cloud management console that can not only auto provision VMs when necessary, but also schedule VMs to be turned off after use.  Gravitant's cloudMatrix uses predictive analytics to create dynamic workload schedules that change over time based on historic demand trends.

Go to -> Part 2 - Your application would be a GREAT FIT in the Cloud if...