Get Started with the Windows Azure Companion

Author: Vijay Rajagopalan

Date: Sunday, September 19, 2010, 12:00:00 AM


Table of Contents

    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. Preliminary feedback on this tool has informed the creation of a new set of tools to deploy applications to Windows Azure - available at




    The 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.

    The Windows Azure Companion: a comprehensive set of tools and building blocks

    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, sponsored by Microsoft and developed by Maarten Balliauw, from RealDolmen, gives PHP developers a 'speed dial' with which 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.

    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 scalable architecture where the individual Web servers don't share a disk.

    Developed by Soyatec, the Windows Azure Tools for Eclipse/PHP plug-in offers PHP developers a series of wizards and utilities that allow 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 in 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) and 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:

    We know that PHP developers use various integrated development environments - or none , so that's why we built the Windows Azure Command-line Tools for PHP, which allows you to 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 a single 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, who just wants 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

    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.

    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.


    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 code and the installable package (.cspkg & config files) are available on the MSDN Code Gallery: 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 the 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:

    1: <;?xml version="1.0" encoding="utf-8"?>
    2:     <;feed xmlns="">
    3:     <;version>1.0.1</version>
    4:     <;title>Windows Azure platform Companion Applications Feed</title>
    5:     <;link href="" />
    6:     <;updated>2010-08-09T12:00:00Z</updated>
    7:     <;author>
    8:         <;name>Interoperability @ Microsoft</name>
    9:         <;uri>/</uri>
    10:     <;/author>
    11:     <;id> </id>
    12:     <;entry>
    13:         <;productId>OData_SDK_for_PHP</productId>
    14:         <;productCategory>SDKs</productCategory>
    15:         <;installCategory>Frameworks and SDKs</installCategory>
    16:         <;updated>2010-08-09T12:00:00Z</updated>
    17:         <;!-- UI elements shown in Windows Azure platform Companion -->
    18:         <;title>OData SDK for PHP</title>
    19:         <;tabName>Platform</tabName>
    20:         <;summary>OData SDK for PHP</summary>
    21:         <;licenseURL></licenseURL>
    22:         <;!-- Installation Information -->
    23:         <;installerFileChoices>
    24:             <;installerFile version="2.0" url=";DownloadId=111099&amp;FileTime=129145681693270000&amp;Build=17027">
    25:                 <;installationProperties>
    26:                     <;installationProperty name="downloadFileName" value="" />
    27:                     <;installationProperty name="applicationPath" value="framework" />
    28:                 <;/installationProperties>
    29:             <;/installerFile>
    30:         <;/installerFileChoices>
    31:         <;!-- Product dependencies -->
    32:         <;dependencies>PHP_Runtime</dependencies>
    33:     <;/entry>
    34: <;/feed>

    If you want to see a sample feed in action and the process for building it, we 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.

    What's next

    [This content was initially posted 09/21/2010 at]

blog comments powered by Disqus

Related Content

No related content was found