In the first half of 2011, Microsoft made a series of changes at the top of the team running Windows Azure, its cloud.
“A large group of new people came into the Azure team,” general manager Bill Hilf said at a Microsoft cloud event in London last week. “Satya Nadella came over, Scott [Guthrie] came over, I came over at the same time.”
Nadella is now president of server and tools, while corporate vice president Guthrie, co-inventor of ASP.NET, moved from his job running .NET technology.
The executive shuffle paved the way for an epiphany over the state of Windows Azure and ushered in a period of big changes for Redmond's cloud, Guthrie told The Reg in London during his trip last week for a couple of Windows Azure events.
“We did an app building exercise about a year ago, my second or third week in the job, where we took all the 65 top leaders in the organisation and we went to a hotel and spent all day building on Azure," said Guthrie.
"We split up everyone into teams, bought a credit card for each team, and we said: ‘You need to sign up for a new account on Azure and build an app today.’"
Guthrie: fundamental changes
“It was an eye-opening experience. About a third of the people weren’t able to actually sign up successfully, which was kind of embarrassing. We had billing problems, the SMS channel didn’t always work, the documentation was hard, it was hard to install stuff.
“We used that [experience] to catalyze and said: 'OK, how do we turn this into an awesome experience?' We came up with a plan in about four to five weeks and then executed.”
The changes were fundamental. Azure now offers Amazon-like Infrastructure as a Service (IaaS). Previously, Azure virtual machines (VMs) were always stateless. Applications could write to the local drive or registry, but those changes could revert at any time.
The new Azure supports durable VMs alongside the old model. It also has a new admin portal based mostly on HTML rather than Silverlight; new command line tools; a new hosted website offering which starts from free; new virtual networking that lets you connect Azure to your on-premise network; new SDKs for .NET, Node.js, PHP, Java and Python; and performance features including a distributed cache and solid-state (SSD) storage.
What was required to enable stateful VMs?
“A lot of the work comes down to storage,” said Guthrie. “Making a VM work is relatively easy. Making it work reliably is hard. We’ve spent a lot of time on the storage system, architecting it so you could run VM disks and VM images off our storage system, which gives us much more scale, much more reliability, much more consistent performance.
“There was a lot of work at the networking layer. VMs want to be able to use UDP in addition to TCP. It was a pretty massive effort that consumed a lot of the last year. The result is an environment where you can literally stand up a VM and install anything you want in it.”
Azure supports Linux as well as Windows and multiple platforms including Java, PHP, Python and more. Why the proliferation?
“In a cloud environment, especially for enterprise customers, you don’t typically category shop," says Guthrie. "You’re not going to buy your load balancer from cloud vendor A, and VMs from cloud vendor B. Instead you are going to go to a vendor shop and pick a cloud platform, and run all your infrastructure in it. We can now be the vendor that someone bets on for the cloud.
“Office 365 and Azure run in the same data centres, so traffic between them is fast and secure. We can run any workload that an enterprise has: whether it is big data, whether it is Java app server, whether it is .NET, email, SharePoint – we got it.”
Azure supports resiliency – through availability sets that run on separate hardware in Microsoft’s data centres – and scaling, through a load-balancing service to which you can add VMs. Elasticity is not yet fully automatic, however.
“You could use our dashboard or you could use our command-line console app to spin-up or spin-down instances," says Guthrie. "We also have something called WASABI [Windows Autoscaling Application Block], which is a pre-built set of scripts that does that automatically. We support that with a pre-packaged project. Or you can just write your own... Long term you’ll see us add – directly in the portal – the ability to set up step functions based on load.”
El Reg asked Guthrie how Azure storage uses SSDs.
“It’s for journaling. It’s not so much storing your bits; it’s making sure that read and write operations are really smooth and fast. The biggest benefit is consistency. Writing an app to handle multi-second variance is hard. We try to have our standard deviation be low.”
Amazon price beater
Is Microsoft aiming to be price-competitive with Amazon? Guthrie prevaricated a little. “Our retail hourly prices I think are the same as Amazon’s. We are looking to be cost effective. More than price though, it’s really value of service. I don’t typically run into people saying cost is the biggest barrier to cloud, and those people include both Amazon and Azure customers. It’s more that it all fits together, there’s one REST API to manage it, you can use System Center, you can use a web portal, you can use any language. We’d like to be the Mercedes of the cloud business, as opposed to the cheapest.”
What are the implications for Microsoft’s partners as the company takes on more of its own cloud hosting?
“There is plenty of opportunity in the market for both us.” Guthrie insists. “We love the cloud, we love the server business. We make most of our money in the server business. The approach that we’re taking with Azure is that we want the two to work together.”
It's a good line, but it is hard to see how Microsoft can avoid cannibalising its own business. Then again, from Microsoft’s point of view, better to cannibalise that business than see it go to Amazon. ®