You could be forgiven for thinking corporate data centers are soon destined to be a thing of the past: "cloud computing" is a hot buzz phrase at the moment, and all the techno-chatter seems to be about writing Web 2.0 applications and sending them off to run somewhere out there in the cloud.
For much of 2008, most of this cloud talk was just that talk. That, however, is changing.
There are companies notably Amazon offering a cloud infrastructure on which other can build cloud-based applications, and some innovative businesses are running applications on this infrastructure. What's more, they are enjoying the benefits cloud computing advocates promise.
Talking at the Future of Web Apps conference in London last fall, Jeff Barr, Amazon.com's Lead Web Services Evangelist, outlined what companies can expect when they move applications and compute resources to the cloud. "You get infrastructure on demand, a much reduced requirement for capital, and concerns about things like hardware costs and load balancing just fade way," he said. "You also need less staff with IT skills, and you don't need to invest in rapidly depreciating hardware."
Valuable benefits, there's no doubt about it. But it's not all a bed roses: there are pitfalls too for anyone thinking of operating in the cloud. Barr warns about a loss of control that companies necessarily experience when they rely on another company to manage IT resources, and an increased dependency on that third party. To put it bluntly, if the company operating the cloud infrastructure runs into problems or goes out of business, there's a good chance it will take you down with it.
Then there is the problem of lock-in. Depending on how your cloud applications are architected and the kind of infrastructure they are built on, it may not be easy to move your applications or your data to another cloud provider if it becomes beneficial to do so perhaps because it offers better technology or lower costs, or because your applications must scale beyond the limits of your current provider.
One company that has managed to benefit from cloud computing while avoiding these pitfalls is Animoto, a New York based Web 2.0 company that allows users to upload photos to its site where they are combined with music and rendered into videos. The company operated a beta service for 1,000 users with four of its own servers before the full launch of its service a year ago.
"We knew that launching the full service using our own servers would mean throwing a huge amount of money and servers at our problem which is rendering video," said Stevie Clifton, Animoto's CTO. To avoid this, the company chose to move everything rendering servers, database servers and uploaders onto compute resources provided by Amazon's Elastic Compute Cloud (EC2) service.
This enables Animoto to pay for server instances by the hour, launching new ones with just a few minutes' notice at busy times and terminating them when they are no longer required. "If we were using a traditional hoster we couldn't be anything like as flexible," said Clifton. "Most hosters take between 24 and 48 hours to turn around a request for a new server, and they can only add a limited number. This is on a different scale entirely."
To illustrate this, Clifton mentioned a three day period when a particular piece of marketing was spectacularly successful, leading to demand for Animoto's service to explode. "Normally we have between 30 and 40 servers running in the cloud, increasing to 65 or 70 in the evenings. Suddenly we were seeing a very heavy load on the servers it all went crazy," he explained. To solve the problem, Clifton expanded Animoto's compute resources to 3,500 servers for a short period of time, until the surge in interest in Animoto's service abated.
While this incident was out of the ordinary, it does show how operating in the cloud can provide extreme scalability. Animoto employs a service dashboard and uses simple rules to automate the launching of new servers when the time taken to create a new Animoto movie from start to finish exceeds a certain value, or when more than a given number of items are in the queue waiting to be rendered, for example.
Without using this type of cloud infrastructure approach, scaling from 50 to 3,500 servers for a brief period would simply not have been possible. However, Clifton concedes that there are potential drawbacks, too. "Ultimately, if there is a problem then there is absolutely nothing I can do myself I am totally reliant on Amazon to fix the problem," he said. "On the other hand, this is also the case with a traditional hosting service."He also said that because Animoto uses Amazon's Simple Storage Service (S3) and benefits from free data transfers between EC2 and S3 it would be difficult to move the application to another cloud provider, for the moment at least. Although there is no pressing need to do so, this could change in the future, he said, adding:
I think that as the technology matures it will become easier to deploy to another provider. We wouldn't necessarily be looking just at price if a service specialized in very graphic intensive processing then that would be attractive to us. In the future, we may also look to move 10 percent of our service to another cloud provider for redundancy purposes. So if Amazon had problems then at least we would still be able to keep the service going.
All of the above begs the question: "what is the cloud?" Some readers will probably take the view that offering an application hosted by a third party (EC2 in this case) doesn't constitute cloud computing. But whatever your definition, Animoto isn't too bothered as long as it continues to enjoy the benefits of what it considers cloud computing, including low costs and a huge degree of scalability.
This article was first published on ServerWatch.com.