And when it comes to PaaS, Microsoft stands a little taller than AWS, even though AWS hosts several independent PaaS clients, such as Heroku. Microsoft entered the cloud market in late 2009 concentrating on PaaS, as befits an operating system company known for supplying strong tools to its community of Windows developers. It only added general availability of IaaS on April 16.
Mark Russinovich, a Microsoft technical fellow, took time out from the CloudBeat conference in San Francisco this week to explain where Microsoft is today in its concept of PaaS, and why he sees the platform continuing to develop.
The Windows Azure cloud was conceived in 2009-2010 as "a tight container," a place where developers could produce software under restrictions that would make it run in its target x86 environment. The languages and tools that could be used were a few of the best known Microsoft technologies: .Net languages, the IIS Web server and soon a cloud version of SQL Server, dubbed SQL Azure. The resulting software produced on the platform had "a limited surface" for attackers and a limited number of things that could go wrong between interdependent elements, a boon to successful deployment. But developers frequently chafed at the restrictions on languages, application servers and even operating systems, recalls the young, tall and imposing Russinovich.
[ Want to learn why one observer thinks Microsoft PaaS will win out? See Microsoft Is The Apple Of PaaS. ]
"We loosened the tight container over time," he said, and now Azure runs anything that runs on Windows Server. One thing that was verboten initially was Linux. Now Linux can be run in a Hyper-V virtual machine and used in a development project.
"We loosened the constraints based on both internal and external user feedback," he noted. Microsoft's own developers didn't see the logic of being constrained in languages used or what they could do.
Some parts of Azure, such as its website service, still offer a constrained container in which some technologies and techniques are allowed, others are not. But part of the purpose of hosting websites is to keep them up and running, make them easily scalable and process millions of requests per day per site. The service provides automatic load balancing and Windows Azure Cache Service for high data throughput. The technologies can be tuned to work together for reliability and low latency response times, Russinovich noted.
If Azure was going to be used for general purpose development, however, it didn't need so many limits. Microsoft opened the door a crack to admit the PHP open source programming language, one of the most widely used scripting languages on the Web. It added Java, popular with enterprise developers, to the stable as well. Now developers working on Azure are free to use other languages -- Russinovich mentioned Ruby, Python and Erlang -- or any other language that has a compiler that runs on Windows Server.
"We'll continue to have a Microsoft point of view on .Net languages and tools," he conceded. The platform will be extended first to enhance their capabilities. "But," Russinovich added, "we're in this new world where the cloud platform itself matters, not simply the operating system or tools.
For that reason, Microsoft has added support for building mobile applications for Apple's iOS and Google's Android, even though Microsoft is frequently portrayed as locked in a bitter competition with those companies.
Microsoft's Azure Service Bus, used in many applications, supports passing iOS and Android messages the same way it supports Windows Phone or Windows Mobile. "When developers pick a platform, support for the target device is important. We don't want developers avoiding Azure because it has a weak story on Android. It's a new world and we can't ignore those platforms."
Microsoft has built many features attractive to developers into its platform. There are active monitoring agents that can detect when developers submit bits to a project's repository, then it orchestrates the compilation and build with those bits to see if they work with the larger system. "We do orchestrated updates. You don't need to go offline" but can continue working on code as the build takes place.
The platform includes a simulator in which applications may be tested to make sure they can interact with the Web tier, database tier and application tier.
"When I joined the Azure team, I viewed Azure as a closed, Microsoft-only cloud," recalled Russinovich. Now you can import your favorite Linux tools into a Hyper-V virtual machine and develop software for Linux on Azure. "If you look objectively as what we support, at the end of the day we're probably the most open PaaS platform," he said.
There are proponents of Engine Yard, Heroku, VMware's Cloud Foundry (a PaaS system based on open source code) and Red Hat's OpenShift who would say they're more open than Microsoft. But who is the most open may matter less than who fields the platform on which the most successful code is being produced, followed by predictable deployment and reliable production runs. And Microsoft will have advantages in those realms for some time to come.
Learn more about PaaS by attending the Interop conference track on Cloud Computing and Virtualization in New York from Sept. 30 to Oct. 4.