I was just reading an article which is titled “Surprise! Not all Amazon EC2 compute units are created equal. I think it’s a very interesting article and actually shows how people think/feel about what cloud computing is offering. In this case it’s all about the perception and as with many users the perception of performance and the misunderstanding of the technology that is driving this. The following quote from the article linked above captures the essence of the story
It turns out that the underlying hardware for each instance created impacts the actual performance that each instance gives you, even though the instances are all virtualized and marketed by Amazon as if they are all created equal. In our case, we found that the different underlying hardware that the virtual instance sits on has a significant impact on application performance, at least with respect to MySQL database performance. Instances that were created on machines with AMD’s Opteron 270 processors (2ghz 1mb L2 cache) showed significantly poorer MySQL performance compared to instances created on machines with Intel’s Xeon e5430 processors (2.66ghz 6mb L2 cache).
Now after reading this a lot of you may say “DUH”. Of course you can’t expect this be to be equal, but when reading Amazon’s explanation of a Compute Unit I do understand where this comes from.
Source
EC2 Compute Unit (ECU) – One EC2 Compute Unit (ECU) provides the equivalent CPU capacity of a 1.0-1.2 GHz 2007 Opteron or 2007 Xeon processor.
Cloud Computing, as Mike D. has explained many times already, is about the end-user not caring about what lays underneath as long as it meets there business requirements(non technical). Or in other words, and I quote “I don’t care”.
However as you can clearly see in the quote above, and please read the full article, the end-user does care when it comes down to performance. Performance needs to be guaranteed but more surprisingly equal in all cases. In the case mentioned above a single server had better(!) performance then guaranteed by Amazon and still the customer was dissatisfied with it as it clearly skewed expectations.
What can we do to prevent this and should we try to prevent this or create a better explanation of what “Compute Units” are. I actually don’t think there’s a single correct answer to the question or even a solution at this point in time as we are still growing and maturing. I will leave it at that for now and let the topic sink in, if you do have an answer please speak up.
While I was writing this article I was pointed by @MattPovey(EMC) to another article titled “Has Amazon EC2 become over subscribed?” Which is an excellent read and also deals about performance and the perception of just that. I think the key take away is that the user, when one of the few virtual instances using a physical server, sees a decline in performance over time. Although Amazon might still meet the SLA it is the users perception that performance decreased and are not equal to what has been offered.
Anonymous says
Just wondering how (or if) Amazon enforces these computing units, since the Open Source Xen Hypervisor does not have this capability. Maybe an in-house development ?
John Troyer says
I like Chuck Hollis’s take on it: “Alan blames his myriad problems and challenges on Amazon’s service being oversubscribed. … I would blame his headaches on Amazon’s service being under-controlled. … Enterprises won’t hand over serious workloads to cloud service providers unless they can have at least the same transparency and control that they have in their traditional data center environments.” http://chucksblog.emc.com/chucks_blog/2010/01/not-all-clouds-are-private-clouds.html
Scott Bethke says
So the way you work around this is with private clouds (dedicated resources defined by the customer), or different service levels for compute units. Customers should have the option of Best performance, Acceptable performance, or Best Effort. I’m willing to bet that for the customers that need higher performance compute units, they would be willing to pay a premium for the higher service level. In the non-virtual world we deal with different levels of compute units (AMD vs Intel or simply E5300 vs E5400 CPU’s) so why limit your cloud customers to some vague idea of a compute unit defined as an average expected performance level. Of course best effort is easy but then you end up with best effort customers. The higher end customers will end up going with the service providers who understand how to deliver better performance.
Martijn baecke says
Good point about computing units. But I think the message an end user has is not “I don’t care” but should be “I don’t want to care”.
Ofcourse end users care about performance, security and availability. But what they don’t want to be confronted with is technical issues. Cloud services should step up to the expectations a end user has of the service. It should be easy, simple to use and I don’t want to care about the service is delivered to me.
vStu says
I was going to post about this kind of thing soon funnily enough, I have a solution in mind 🙂