Microsoft Azure users will now be able to deploy their own virtual machine images, including Linux. This is a big revolution as far as the Windows-centered Azure system is concerned.
The change, which was originally reported to be in the pipeline in January, is because of a set of updates to the Azure cloud platform, including a new virtual machine role.
The list of compatible operating systems that are supported under the new role include OpenSUSE, SUSE Linux Enterprise Server, Ubuntu and CentOS, alongside Windows Server 2008 R2 and Windows Server 2012 Release Candidate.
While it was already possible to run Linux on Azure using the VM role, if the VM was rebooted it lost any persisted data. This made it unfeasible to run apps that rely on persistence such as those interacting with SharePoint or SQL Server.
In a blog post about the new services, Corporate VP of Server and Cloud Bill Laing said that the combination of infrastructure and platform services will give greater flexibility in the way you build or bring your applications to the cloud. Microsoft is also releasing new language libraries for .NET, Java, PHP, and Node.js.
Windows Azure Virtual Machines will let you move your virtual hard disks (VHDs) back and forth between on-premises and the cloud. The Windows Azure Virtual Network lets you provision and manage virtual private networks (VPNs) in Azure, and extend local networks into the cloud.
The blog post also announced Windows Azure Web Sites that Laing says will allow deployment of open source applications like WordPress, Joomla!, DotNetNuke, Umbraco, and Drupal to the cloud, and provide support for MySQL and Azure SQL databases. From a development viewpoint, there’s updated support for Java, PHP, and .NET, and the addition of Python as a supported language on Windows Azure. The SDK also now provides 100% command line support for both Windows and Mac.
To allow users to work with the new expanded Azure there is a new Admin Portal and command line tools - the SDKs have also been updated.
In addition to the new VMs you can also deploy complete websites using ASP.NET, Node.js and PHP. This too is a breakthrough for Azure, allowing non-experts to create cloud sites without being tied to Microsoft technologies. You can deploy up to 10 web-sites into a free, shared/multi-tenant hosting environment (where a site you deploy will be one of multiple sites running on a shared set of server resources).
Microsoft has had problems with cloud computing and how to get involved since Azure started. It is clearly important for the company to get a slice of the cloud market, which is currently dominated by Amazon, but Microsoft's cloud efforts are hampered by the need to promote Windows technology. Hence Azure was originally a way to get ASP.NET sites hosted in the cloud. Amazon, on the other hand, has always provides a much wider range of software. Essentially Amazon just provides the hardware and some cloud services and you can run a VM on Amazon's hardware using any software you care to.
Given that most of the web is currently running on Linux and Open Source technologies like PHP, the need to stay with Windows and ASP.NET didn't do much for the success of Azure. Now we have, at last, some moves to make Azure less Windows-centric and you can run more or less what you like. This is a good move for Azure, but it still carries an overhead of complexity in terms of its past attempts to be a distributed ASP.NET host. Amazon's AWS is simple in concept - a bunch of hardware that will run any VM image you upload - but possibly more complex in practice due to the need to interface with a range of cloud-based services.
Azure was originally more complex in conception with the intent of being easier to use in practice. Now we have a move towards the Amazon approach which brings raw VMs into the picture . Will it all work out to be any easier to use?