Windows Azure Platform gets easier for PHP developers to write modern cloud applications

OSIDaysThis week, I’m attending the Open Source India conference, in Chennai, India where I had the chance to participate in the opening keynote. During my talk, I gave a quick overview of the Interoperability Elements of a Cloud Platform, and I illustrated some elements through a series of demos. I used this opportunity to unveil a new set of developer tools and Software Development Kits (SDKs) for PHP developers who want to build modern cloud applications targeting Windows Azure Platform:

  • Windows Azure Companion – September 2010 Community Technology Preview(CTP)– is a new tool that aims to provide a seamless experience when installing and configuring PHP platform-elements (PHP runtime, extensions) and Web applications running on Windows Azure. This first CTP focuses on PHP, but it may be extended to be used for deploying any open source component or application that runs on Windows Azure. Read below for more details.
  • Windows Azure Tools for Eclipse for PHP - September 2010 Update–is a plug-in for PHP developers using the Eclipse development environment, which provides tools to create, test and deploy Web applications targeting Windows Azure.
  • Windows Azure Command-line Tools for PHP – September 2010 Update– is a command-line tool, which offers PHP developers a simple way to package PHP based applications in order to deploy to Windows Azure.
  • Windows Azure SDK for PHP– Version 2.0 – enables PHP developers to easily extend their applications by leveraging Windows Azure services (like blobs, tables and queues) in their Web applications whether they run on Windows Azure or on another cloud platform.

VijayOSIDaysSmall

These pragmatic examples are good illustrations demonstrating Windows Azure interoperability . Keep in mind that Microsoft’s investment and participation in these projects is part of our ongoing commitment to openness, which spans the way we build products, collaborate with customers, and work with others in the industry.

A comprehensive set of tools and building blocks to pick and choose from

We’ve come a long way since we released the first Windows Azure SDK for PHP in May 2009, by adding complementary solutions with the Eclipse plug-in and the command line tools.

The Windows Azure SDK for PHP gives PHP developers a speed dial to easily extend their applications by leveraging Windows Azure services (like blobs, tables and queues), whether they run on Windows Azure or on another cloud platform. Maarten Balliauw, from RealDolmen, today released the version 2.0 of the SDK. Check out the new features on the project site: http://phpazure.codeplex.com/.
An example of how this SDK can be used is the Windows Azure Storage for WordPress, which allows developers running their own instance of WordPress to take advantage of the Windows Azure Storage services, including the Content Delivery Network (CDN) feature. It provides a consistent storage mechanism for WordPress Media in a scale-out architecture where the individual Web servers don't share a disk.

Today we are also announcing updates on the Windows Azure Tools for Eclipse for PHP and the Windows Azure Command-line Tools for PHP.

Developed by Soyatec, the Windows Azure Tools for Eclipse plug-in offers PHP developers a series of wizards and utilities that allows them to write, debug, configure, and deploy PHP applications to Windows Azure. For example, the plug-in includes a Window Azure storage explorer that allows developers to browse data contained into the Windows Azure tables, blobs, or queues. The September 2010 Update includes many new features like enabling Windows Azure Drives, providing the PHP runtime of your choice, deploying directly to Windows Azure (without going through the Azure Portal), or the Integration of SQL CRUD for PHP, just to name a few. We will publish detailed information shortly, and in the meantime, check out the project site: http://www.windowsazure4e.org/.

We know that PHP developers use various developments environments – or none J, so that’s why we built the Windows Azure Command-line Tools, which let you easily package and deploy PHP applications to Windows Azure using a simple command-line tool. The September 2010 Update includes more deployment options, like new support for the Windows Azure Web & Worker roles.

So you might think that from the PHP developer point of view, you’re covered to write and deploy cloud applications for Windows Azure.” The answer is both yes, and no!
Yes, because these tools cover most scenarios where developers are building and deploying one application at time. But what if you want to deploy open source PHP SaaS applications on the same Windows Azure service? Or what if you are more of a Web applications administrator, and just want to deploy pre-built applications and simply configure them?

This is where the Windows Azure Companion comes into the picture.

A seamless experience when deploying PHP apps to Windows Azure

---------------------------------------------------------------------------------------------------------------------

IMPORTANT NOTE - July 13, 2011

The Windows Azure Companion was an experimental tool to provide a simple experience installing and configuring platform-elements (PHP runtime, extensions) and web applications on Windows Azure. Based the feedback and results Microsoft has decided to stop any further development of the Windows Azure Companion and instead we recommend using the new tools available at http://azurephp.interoperabilitybridges.com/downloads to deploy applications to Windows Azure

-----------------------------------------------------------------------------------------------------------------------

The Windows Azure Companion – September 2010 CTP– is a new tool that aims to provide a seamless experience when installing and configuring PHP platform-elements (PHP runtime, extensions) and Web applications running on Windows Azure. This early version focuses on PHP, but it may be extended for deploying any open source component or application that runs on Windows Azure. Read below for more details.

It is designed for developers and Web application administrators who want to more efficiently “manage” the deployment, configuration and execution of their PHP platform-elements and applications.

The Windows Azure Companion can be seen as an installation engine that is running on your Windows Azure service. It is fully customizable through a feed which describes what components to install. Getting started is an easy three step process:

  1. Download the Windows Azure Companion package & set your custom feed
  2. Deploy Windows Azure Companion package to your Windows Azure account
  3. Using the Windows Azure Companion and your custom feed, deploy the PHP runtime, frameworks, and applications that you want

WAcompanionArchitecture

So, how did we build the Windows Azure Companion?The Windows Azure Companion itself is a Web application built in ASP.NET/C#. Why C#? Why not PHP? The answer is simple: the application is doing some low-level work with the Windows Azure infrastructure. In particular, it spins the Windows Azure Hosted Web Core Worker Role in which the PHP engine and applications are started and then executed. Doing these low level tasks in PHP would be much more difficult, so we chose C# instead. The source and the installable package (.cspkg & config files) are available on the MSDN Code Gallery: http://code.msdn.microsoft.com/azurecompanion. And from a PHP developer perspective, all you need is the installable package, and you don’t have to worry about the rest unless you are interested!

All you need is in the feed

The Windows Azure Companion Web application uses an ATOM feed as the data-source to display the platform-elements and Web applications that are available for installation. The feed provides detailed information about the platform element or application, such as production version, download location, and associated dependencies. The feed must be hosted on an Internet accessible location that is available to the Windows Azure Companion Web application. The feed conforms to the standard ATOM schema with one or more product entries as shown below:

 <?xml version="1.0" encoding="utf-8"?>
 <feed xmlns="http://www.w3.org/2005/Atom">
 <version>1.0.1</version>
 <title>Windows Azure platform Companion Applications Feed</title>
 <link href="http://a_server_on_the_internet.com/feed.xml" />
 <updated>2010-08-09T12:00:00Z</updated>
 <author>
 <name>Interoperability @ Microsoft</name>
 <uri>http://www.interoperabilitybridges.com/</uri>
 </author>
 <id>http://a_server_on_the_internet.com/feed.xml </id>
 <entry>
 <productId>OData_SDK_for_PHP</productId>
 <productCategory>SDKs</productCategory>
 <installCategory>Frameworks and SDKs</installCategory>
 <updated>2010-08-09T12:00:00Z</updated>
 <!-- UI elements shown in Windows Azure platform Companion -->
 <title>OData SDK for PHP</title>
 <tabName>Platform</tabName>
 <summary>OData SDK for PHP</summary>
 <licenseURL>http://odataphp.codeplex.com/license</licenseURL>
 <!-- Installation Information -->
 <installerFileChoices>
 <installerFile url="http://download.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=odataphp&amp;DownloadId=111099&amp;FileTime=129145681693270000&amp;Build=17027" version="2.0">
 <installationProperties>
 <installationProperty name="downloadFileName" value="OData_PHP_SDK.zip" />
 <installationProperty name="applicationPath" value="framework" />
 </installationProperties>
 </installerFile>
 </installerFileChoices>
 <!-- Product dependencies -->
 <dependencies>PHP_Runtime</dependencies>
 </entry>
 </feed>

If you want to see a sample feed in action and the process for building it, I invite you to check Maarten Balliauw’s blog: Introducing Windows Azure Companion Cloud for the masses. He has assembled a custom feed with interesting options to play with. And of course, the goal is to let you design the feed that contains the options and applications you need.

We are on a journey

Like I said earlier, we’ve come a long way in the past 18 months, understanding how to best enable various technologies on Windows Azure. We’re on a journey and there’s a lot more to accomplish. But I have to say that I’m very excited by the work we’re doing, and equally eager to hear your feedback.

Vijay Rajagopalan, Principal Architect