Thursday, May 17, 2012

How real is Cloud application performance?

Given the current state of the Cloud technology, determining performance for your application hosted in a Public, Private or Hybrid cloud is less deterministic than you may think.

From a performance perspective, we consider four types of applications. 1. Response Time Intensive applications such as interactive social media, gaming, live media broadcasting or audio/video conferencing where "user experience and availability" have priority. 2. Compute intensive HPC applications and data-intensive biomedical or life science applications caring most about "throughput". 3. Business critical or mission critical applications with performance requirements across "availability, user experience and throughput" and 4. Applications with modest throughput, response and availability requirements such as software development.

For applications hosted in your own designed traditional data center, you know that the key performance-delivery-chain components are represented, for example, by its application server, database server and web server hardware and software stacks. And you also know how to load balance your environment for optimum to maximum performance.

However, achieving deterministic application performance in a Cloud depends on many factors, for example, a great deal depends on the degree of isolation achieved between various instances (VMs) running in a multi-tenant environment. How one instance may influence, more or less, another instance across computation, IO, networking and the rest of the solution software and hardware stack can have significant impact on response time, throughput and even availability.

Whether by design or by coincidence, each offered Cloud service (IaaS, PaaS or SaaS) by a Cloud Service Provider (CSP) is better suited for a certain type of applications and not so for the other. As a word of caution, most of the IaaS and PaaS Service Level Agreements (SLAs) from current generation public Cloud Service Providers commit to the availability performance metrics. Or these SLAs are about "guaranteeing" that if you need 100 instances you will get 100 instances and they will get some specific percentage of the server. SaaS SLAs often include response time, measured within the provider's facility without factoring network time like the Internet. Also, CSPs address some aspects of throughput or response time requirements by offering different size instances and related pricing. Across IaaS, PaaS and SaaS, it remains your responsibility to ensure that the Cloud services you either bought from a Public cloud provider or implemented with a Private cloud deliver the required performance.

So how do you really leverage the Cloud as it relates to performance? Based on business driven requirements, a well thought out Cloud architecture that outlines mapping of complete applications or their components onto various public, private or hybrid clouds plays a critical role. You need to compare and contrast Cloud solution stacks and pricing strategies from different "best in class" vendors so that you can plan and implement a Cloud road-map that can deliver required performance as well as immediate and long-term financial benefits. Check out some of the key criteria used to compare, for example, Openstack vs. CloudStack vs. Eucalyputs.

Reading SLAs fine print helps. For example, many CSPs have some form of payback if their Cloud is unable to meet Cloud availability commitments but you may have to do a lot of  extra work to get any money or other forms of credit back.

As today's Cloud solutions evolve in delivering more predictable and measurable performance, Purposeful Clouds will continue to take an active role in contributing its expertise in the performance area as well as keeping you informed.

Please let me know you thoughts by commenting below.


1 comment:

  1. The performance and availability of cloud applications has a dramatic impact on user adoption and revenue. Cloud monitoring and management demands uninterrupted visibility across the entire application delivery chain – from the user’s device, across the Internet or a corporate WAN, to the complex application components inside data centers. Traditional data center monitoring tools simply don’t work in the cloud

    cloud computing solutions |
    cloud for developers