A New Milestone For Openness On Windows Azure

Today Bill Laing, Corporate VP for Server and Cloud, announced a very important set of Windows Azure updates. With these new updates, Windows Azure is more than ever an open and easy platform to build and run applications in the cloud, and the place to be for developers who want to have choice and flexibility.

I am proud to say that Microsoft Open Technologies, Inc. has been working closely with the Windows Azure team and it has been a great journey together, exploring openness and taking interoperability to a new level. There is too much news in this release to cover in a single blog post, and I strongly suggest everyone attend the Meet Windows Azure event tomorrow, when Scott Guthrie and many others will provide a lot of additional information. At the same time, I would like to spend the next few paragraphs on some of the many facets of openness in Windows Azure, to further demonstrate how Windows Azure is living in interesting and exciting times.

Services and Partnerships

For one, I have to point out how all-encompassing the Windows Azure platform is becoming. We will talk in a minute about the support for IaaS, but I would like to draw your attention to how the Windows Azure platform has now announced a set of partnerships that will provide very compelling data services such as MySQL, CouchDB, and Apache Solr.

Those services can be enjoyed by PaaS and IaaS developers and come from the leading industry experts in the field: Microsoft is partnering with leading companies such as Cleardb, Cloudant and Lucid Imagination to provide true data-as-a-service and enable developers and customers to build applications at scale without the worry of provisioning and maintaining their databases. At the same time we and our partners addressed the needs of those who prefer to run software independently in their own PaaS and/or IaaS instances, providing easy installation packages of Windows Azure-optimized versions of Apache CouchDB and Apache Solr. Last but not least, we worked with 10gen to improve the installation experience of MongoDB on Windows Azure that was originally announced in December, and we are looking forward to building a great experience for Windows Azure MongoDB users. 

More importantly, both Microsoft and our partners are committed to always maintain full compatibility with the underlying Open Source applications so that our customers can always rest assured their data will work everywhere. With these technologies joining the existing pool of Windows Azure SQL Database and Apache Hadoop, Windows Azure is leading by leaps and bounds when it comes to data.

OSS on Windows Azure

If Windows Azure databases are now a few clicks away, applications are far from being out in the cold. The announcement of Windows Azure Web Sites - a hosting framework for Web apps that will work across both Windows Azure and private-cloud datacenters - unveils amazing opportunities to run popular Open Source applications in Windows Azure: be it WordPress or Drupal, Joomla or Umbraco, DotNetNuke or PHPBB, or one of the many apps in the Web Sites gallery, it has never been easier to deploy applications on the Windows Azure platform. And I can’t wait for developers to try the new releases of the Windows Azure open source SDKs (now including Python in addition to .NET, Java, PHP and Node.js) as well as the integration with Git.

We are also releasing a major update to the Windows Azure Plugin for Eclipse with Java (by Microsoft Open Technologies that includes a number of user feedback-driven improvements. Among them is a significantly revamped deployment experience contributed by GigaSpaces Technologies Ltd, an established leader in helping enterprises move their Java applications to the cloud, who has recently joined in the development work behind the plugin. Their impressive “publish to cloud” wizard makes it much easier for Windows Azure developers working with Java to deploy their projects to the Windows Azure cloud directly from Eclipse. Read the more detailed blog post from Martin Sawicki that covers the Eclipse plugin in more detail.

Last but not least, you probably have noticed the upcoming support for IaaS, Virtual Machines and Linux. I believe this move demonstrates how Windows Azure is built around what customers are asking for and with the idea of being the most inclusive platform ever. Customers are demanding high degrees of flexibility and want to be able to run every possible scenario in a seamless fashion: there are very interesting examples of hybrid private/public clouds out there, not to mention a number of creative contaminations of IaaS, PaaS and data services. We are most definitely moving away from monolithic architectures – customers and developers today want and deserve flexibility.

Linux on Windows Azure

Enabling use of Linux on Windows Azure is a key piece of the puzzle, and needs to be as easy as possible. As with data services, it’s all about strong partnerships with industry leaders: this is why you are seeing Windows Azure partnering with major Linux publishers to provide an amazing experience, and I’m sure this will be a very exciting and ongoing story. On top of that I have to note how partners like BitRock are doing very interesting work to provide more choice: two initial Linux images are available for Bitnami, and we look forward to extending the catalog much further.

Allow me to make a final example of openness and talk about the Windows Azure Command Line Tools for Mac and Linux (the ones Windows Azure users will run on local machines to deploy and manage their Windows and Linux virtual machines): not only they are Open Source, but they are available right now for Mac and Linux clients. And this is just the beginning – stay tuned for more exciting news.

Openness and Interoperability

When a journey reaches an important milestone it’s good to look back and think about the road so far: in my case I went as far as two years ago, when we shared our view on Interoperability Elements of a Cloud Platform. Back then we talked to customers and developers and came out with an overview of an open and interoperable cloud, based on four distinct elements: data portability, standards, ease of migration & deployment and developer choice. We have been laser focused on the quest for an interoperable and flexible cloud platform that would enable heterogeneous workloads, and it’s really rewarding to see how today’s announcement maps nicely to the vision that we outlined back then. More precisely:

  • A lot of efforts have been spent on data portability with great results. Allow me to remind you how on Windows Azure your data is either a JSON/XML call away or in any case available through open interfaces (think of JDBC/ODBC support for SQL Database, as an example). Working on open interfaces really pays off when I think of how our partners have been able to build data solutions (MySQL, Hadoop, Solr, CouchDB, MongoDB) that can run either as a service or as independent workloads. Our customer own their data, and this is near and dear to our hearts.
  • When it comes to standards Windows Azure has one of the most complete API layers around, exposed as REST, XML, OData, Atompub, JSON and others. We are working with standard bodies such as IETF, OASIS and DMTF to ensure that important topics such as identity and management in the cloud are exposed as standard-based APIs, and we have been proactive proponents of important standard efforts such as AMQP and OData among others.
  • Ease of migration & deployment is a key factor when building a cloud platform that preserves existing investments and enables co-existence between on-premise software and cloud services. I see a lot of progress in this area, as an example when I think of the work we have been doing to provide our Java customers and developers with a much improved Eclipse experience, while at the same time providing to everyone the flexibility of FTP and Git to deploy and manage applications. Windows Azure Web Sites is also a great example of how easy deployment can be in the cloud, putting your favorite applications (Wordpress, Drupal, Joomla, PHPBB and many others) just one click away. While at it, you may want to check out our step-by-step instructions for running Magento.
  • And finally, developer choice, defined as the possibility to use a variety of development tools, runtime and languages. Here we have five SDKs layered on top of a standard APIs, covering .NET, Java, PHP, Python and Node.js. We support the widest possible variety of workloads: be it PaaS or IaaS, be it Windows or Linux, be it public, private or hybrid. We are working with Open Source communities and with leading vendors to provide the best of breed in applications and data services. No matter what your workload is, Windows Azure will be a great home for it.

I have broken every promise I made to myself to keep this post short, yet I barely managed to scratch the surface of this announcement. I have in front of me the plan for the upcoming weeks and I know it will be busy times for this and many other blogs in Microsoft as there is so much to share. It will all start tomorrow at the Meet Windows Azure event: be there!