Few things are more annoying to customers than promising something you cant deliver. The bad news is that in many industries, thats how things work: overbooking on airlines, for instance.
It might also become like that for cloud providers, who may be forced to sell more capacity than they can actually provide as a way to stay competitive with well, everyone else doing the same thing. Reuven Cohen of Enomaly has speculated that Amazon EC2 might be doing this right now. With any luck theyre not doing it in lieu of better testing and saner quota allotments.
Testing should always be standard practice. Robust, creative, think-out-of-the-box testing doubly so. Consider the way MySpace used 800 EC2 instances to test itself and see if they could meet anticipated demand for a new streaming music service. Their example involved using the cloud to test their native infrastructure, but theres no reason one couldnt use one cloud to generate test demand for another, and determine what your real needs are. And not just once, but again and again.
Just as over-utilization is both bad planning and bad business, so is under-utilization. In fact, having a good deal of idle capacity youre paying to support and not generating revenue from may well be worse than the opposite scenario.
This sort of things easier to deal with if youre the one buying the service, but what if youre the one selling it? Thats another reason why metrics and robust load testing are your best friends when creating cloud services. Also consider the possibility youre not selling enough kinds of services: is there room in your business plan for more granular, better-tiered service that might draw in a wider array of customers?
One word: IPv6. If youre deploying systems, using infrastructure or writing applications that arent IPv6-aware now, youre building a time bomb under your chair.
IPv4s days are more numbered than ever, and tricks like NAT or freeing up previously-unallocated blocks arent going to buy enough time to get us through the decade. Cloud computing, with its world of hosts that can appear by the thousands at once, will all but guarantee we need IPv6s address pool and technical flexibility.
Think forward on every level, and encourage everyone building on top of your infrastructures to do the same thing.
Latency has always been an issue on the Internet; just ask your local World of Warcraft raiding guild. Its just as much of an issue in the cloud.
Performance within the cloud doesnt mean much if it takes forever for the results of that performance to show up on the client. The latency that a cloud can introduce doesnt have to be deadly, and can be beaten back with both an intelligently planned infrastructure and smartly-written applications that understand where and how theyre running.
Also, cloud-based apps and the capacity of cloud computing itself are only going to be ramped up, not down, in the future. That means an arms race against increases in latency is in the offing as well. Just as the desktop PCs biggest bottlenecks are more often storage and memory, not CPU, the true source of cloud latency must be targeted and improved.
The cloud isnt an endpoint in tech evolution, any more than the PC or the commodity server were final destinations. Somethings going to come after the cloud, and may well eclipse it or render it redundant. The point isnt to speculate about what might come next, but rather to remain vigilant to change in the abstract. As the sages say, the only certainty is uncertainty, and the only constant thing is the next big thing.