Lokad, founded in 2008 with an emphasis on data mining and grid computing, has just 11 employees, so managing a large data center would distract from its core mission. At first, the company rented servers from a hosting provider, but "most of the time those servers were doing nothing." At the same time, the hosters didn't provide enough scalability, so "there was never enough processing power" when demand for Lokad's system was high, Vermorel says. Lokad had just half a dozen servers in the U.S. and Europe, and setting up a new server required a big fee.
This hosting model was already a big improvement over owning and managing machines directly, Vermorel says, but what Lokad really needed was the flexibility offered by cloud services. Lokad's system requires heavy allocation and de-allocation of computing resources. If Lokad needs a few thousand servers to run computations for an hour, Azure can provide that. Microsoft and Lokad have developed a tight partnership, with Microsoft naming Lokad its Windows Azure Platform Partner of the Year in 2010.
Vermorel, who is teaching a course on cloud computing at a university, notes that Amazon EC2 has some advantages over Microsoft's Windows Azure. If you have lots of legacy code, and perhaps multiple operating systems including Windows, Unix and Linux, Amazon is the better option for porting applications to the cloud, he says. Amazon is also well suited for hybrid environments involving some in-house resources and some cloud-based resources, he says.
Amazon EC2 is "the most versatile cloud solution," but "probably the least productive," he says.
Azure, even Microsoft notes, is not very well suited for moving existing applications to the cloud. Although Azure has begun offering virtual machine hosting, in general it provides less control over the underlying computing resources.
Azure abstracts away a lot of the complexities, but required companies like Lokad to start from scratch. But that's all part of the natural transition to cloud computing, Vermorel suggests. Applications have to be completely re-engineered to take advantage of the unique benefits offered by cloud computing, including the ability to scale and quickly ramp up performance.
"It won't work out of the box," he says, noting that you also have to write reliability and availability features into the application and optimize it for security in a world that is much different than the classic client-server setup.