Jeremy Howard sees Silicon Valley as an echo chamber. He recently moved to Northern California from Australia, looking to improve the fortunes of his startup, an ingenious operation known as Kaggle, and he soon found that most Silicon Valley software developers behaved like other Silicon Valley software developers.
“In this echo chamber which is the [San Francisco] Bay Area, unless you follow what everyone else does, then there’s an assumption that you don’t know what you’re doing,” Howard says.
What is Windows Azure?
Silicon Valley types think that Jeremy Howard doesn’t know what he’s doing because he runs Kaggle on Windows Azure, Microsoft’s new-age cloud service that lets you build and operate massive applications without setting up your own hardware. Kaggle once ran on Amazon EC2 — the most popular cloud in the Valley and across the rest of the world — but a year ago, the company switched to Azure because it dovetails so nicely with Microsoft’s .NET development platform and its accompanying C# programming language, tools often treated with scorn by the Bay Area hackerati.
In the Valley, Howard says, most developers build their applications with Ruby on Rails, Python, or “if they’re a bit boring,” Java, and they look at him funny when he says that Kaggle uses Azure. “People say, ‘Oh, I’ll have to teach you about Java sometime, so then you’ll know the bright side.’ But I can code in somewhere between 16 and 18 languages, and I can assure you there is nothing like C#.”
In this, the age of cloud computing, Amazon’s service is so popular, it now runs about 1 percent of the entire internet, according to research from independent outfit DeepField Networks. Another study from research outfit 451Group indicates that a similar service from the Texas-based Rackspace has gained a significant foothold as well, and other cloud services, such as the Saleforce-owned Heroku, have at least gained a significant mindshare among the net’s leading developers. But despite some strong reviews from those who have actually used it, Microsoft Azure — more than two years after its debut — is often on the edge of the conversation.
Among the world’s developers, Microsoft has a perception problem. Judging from interviews with myriad coders over the past several months, Azure isn’t just off the Silicon Valley radar. It’s misunderstood. It’s misunderstood not only by the younger generation of coders who grew up on open source software and such languages as Ruby and Python. It’s misunderstood by many developers who have a long history with Microsoft development tools. Last year, in researching a story on Google’s cloud service, App Engine, we spoke to several longtime .NET developers who had chosen App Engine over Azure, and in most cases, they made the choice simply because, well, they didn’t think of Microsoft as a “cloud company.”
But Microsoft is determined to change these perceptions — so determined that it’s embracing open source software and other technologies that it actively shunned in the past. Azure now runs such big-name open source platforms as Node.js and Hadoop, and though the world doesn’t seem to realize it, Microsoft’s cloud service has long handled development tools other than .NET and C#, including Java, Ruby, PHP, and Python.
In March, Movideo — an Australian outfit that runs a massive Java-based online video service — announced that it would move its service to Azure, and that the service will remain a Java application. This surprises even Jeremy Howard. Though he’s bullish on Azure as a way of running a .NET application like Kaggle, he doesn’t think of Microsoft’s cloud as a place to run something like Java.
Yes, Microsoft built Azure at least in part to serve an existing army of coders who use its developers tools — and to keep them using these tools. Azure tightly integrates with the company’s Visual Studio development kit. But at the same time, Microsoft is branching out, hoping to attract a new breed of developer. Azure also dovetails with Eclipse, the open source development kit for Java.
JAVA ON MICROSOFT? WHAT?
When Movideo CEO Tony McGinn was first approached by Microsoft about moving his service to Azure, he too was skeptical. And so was his operations manager. And so was his development manager. “We thought, ‘Is this really something we want to do?” he says.
But the company soon moved a small test version of its service to Azure and gradually expanded this test and now it’s going whole hog, moving the entire service off of a cloud provider called GoGrid and onto a Microsoft service that few even associate with Java.
McGinn acknowledges that moving the application to Azure takes a bit of work, and he says the transition is probably more difficult than it would have been if the company were using .NET. But the Movideo believes that once the application is transferred, it will have much less to worry about. Like Google App Engine, Microsoft Azure is what’s known as a “platform cloud.” Basically, this means that once you move your application to the service, you needn’t worry about about managing the infrastructure running beneath the application.
This contrasts with an “infrastructure cloud” such as Amazon EC2 or GoGrid, where you’re still overseeing the virtual servers and other virtual infrastructure running beneath your application. “Azure lets us focus on our product rather than focusing on how we need to scale the application, as is generally required with infrastructure as a service,” McGinn says. With a platform cloud, he adds, you can spend more time working on future tools, “rather than keeping your head down on running things today.”
In using Microsoft’s SQL Azure database service, he says, Movideo can automatically scale its database storage to an ever-growing number of virtual machines — and automatically back it up. “We can focus on the data models rather than on scale out of the database itself,” he says.
The knock against this setup is that you end up “locked in” to Microsoft’s service — i.e. it becomes difficult to move your application to another service. But McGinn points out that you do have the option of using another database on Azure, including the open source database MongoDB. And even with SQL Azure, he doesn’t see lock-in as problem. In packaging its application for use on Azure, he says, Movevideo did have to do things a little different than it would have on other services, but in the end, these differences are relatively small.
Jeremy Howard says much the same thing about Azure. “You can certainly run, say, .NET on AWS, but there’s more to think about,” he says. “There’s just quite a bit more in terms of implementation and getting things into production and interfacing with databases than on Azure. It’s just a bit more manual.”
But he adds that as an infrastructure cloud, Amazon provides a bit more “flexibility,” meaning you can run more tools the way you want to run them. But Microsoft Azure is really a cross between a platform cloud and an infrastructure cloud. Though it does hide much of the underlying infrastructure from the developer, there are cases where you can use raw virtual machines, and you do have the option of running your own database.
According to Raymie Stata, until recently the chief technology officer of Yahoo, Azure also differs from Amazon in that it’s willing to customize Azure for particular companies. He’s seen this himself, he says, though he declines to provide names. Clearly, Microsoft did more than a little hand-holding with Movideo’s move to Azure, and this only makes sense. Microsoft is playing catchup.
Jeremy Howard was genuinely surprised to hear that the Java-centric Movideo made the move to Azure. And no doubt, it surprises many others as well. Microsoft is changing. But it still has an awfully long way to go.
Original Content by Wired