Una de las ventajas más importantes de la plataforma Windows Azure es que no sólo nos permite ejecutar nuestras aplicaciones web en .NET en la nube sino que además podemos desplegar cualquier aplicación web en cualquier lenguaje
En este post voy a centrarme en todos aquellos CMS por excelencia implementados en PHP: Drupal, Joomla y WordPress. Si bien podemos adaptarlos de forma manual utilizando el Web role de FastCGI, me gustaría mostraros una forma mucho más sencilla y con un entorno de administración muy útil gracias a Windows Azure Companion
¿Qué es Windows Azure Companion?
WAC se trata en realidad de una solución cloud debidamente preparada para la instalación y ejecución de aplicaciones PHP.
Como podemos ver en la imagen, el modo de proceder es bastante simple:
- Descargamos el paquete y el archivo de configuración de Windows Azure Companion.
- Establecemos los valores de configuración.
- Desplegamos el paquete.
- Elegimos las aplicaciones que queremos instalar.
Descarga de los paquetes de Windows Azure Companion
Actualmente, con la última release del mes de diciembre, tenemos varios tipos de descargas:
Tanto el primero como el segundo se tratan de los paquetes de despliegue con la única diferencia de que el segundo de ellos tiene configurados los endpoints necesarios para HTTPS. Por otro lado, ambos están pensados para ser ejecutados en una máquina virtual small.
Si necesitáramos cambiar algo más específico o simplemente modificar el tamaño de la máquina virtual por uno mayor, disponemos de un tercer paquete que contiene el código fuente.
En este post vamos a descargar el primero de ellos.
Configuración
Para poder hacer uso de esta aplicación, es necesario tanto un Hosted Service como una Storage Account, además de una o varias bases de datos, dependiendo del número de CMS que queramos instalar.
Abrimos el archivo ServiceConfiguration.cscfg el cual muestra el siguiente aspecto:
<?xml version="1.0" encoding="utf-8"?>
<!--
**********************************************************************************************
This file was generated by a tool from the project file: ServiceConfiguration.cscfg
Changes to this file may cause incorrect behavior and will be lost if the file is regenerated.
**********************************************************************************************
-->
<ServiceConfiguration serviceName="WindowsAzureCompanion" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="1" osVersion="*">
<Role name="AdminWebSite">
<!-- Do not increase the instance count. Windows Azure Companion does not support more than 1 instances -->
<Instances count="1" />
<ConfigurationSettings>
<!-- Application Details. Title and Welcome text -->
<Setting name="ApplicationTitle" value="Windows Azure Companion" />
<Setting name="ApplicationDescription" value="<p>The <span class="textlink"><a href="http://www.microsoft.com/windowsazure/windowsazure">Windows Azure platform</a></span> is a cloud platform that allows applications to 
 be hosted and run at Microsoft datacenters. It provides a cloud operating system called Windows Azure that serves as the 
 runtime for the applications and provides a set of services that allow development, management and hosting of applications.</p>
 
 <p>With its standards-based and interoperable approach, the Windows Azure platform supports multiple Internet protocols including 
 HTTP, XML, SOAP and REST. As an open platform, the Windows Azure platform allows developers to use multiples languages 
 (.NET, Java, and PHP & other dynamic languages ) to build applications which run on Windows Azure and/or consume any of the 
 Windows Azure platform offerings.</p>
 
 <p>The Windows Azure Companion aims to provide a seamless experience for deploying platform-level components as well as applications 
 on to Windows Azure. The first community preview of the Windows Azure Companion has been tested with PHP runtimes, frameworks, 
 and applications. However, the system may be extended to be used for deploying any component or application that has been tested 
 to run on Windows Azure.</p>" />
<!-- Windows Azure Storage Account Details. -->
<Setting name="WindowsAzureStorageAccountName" value="ACCOUNT NAME" />
<Setting name="WindowsAzureStorageAccountKey" value="PRIMARY ACCESS KEY" />
<!-- Admin user name, password and e-mail. Please user strong username and password -->
<Setting name="AdminUserName" value="USERNAME" />
<Setting name="AdminPassword" value="PASSWORD" />
<!-- Atom Feed for Product items to be installed. This URL should be internet addressable -->
<Setting name="ProductListXmlFeed" value="http://wazstorage.blob.core.windows.net/azurecompanion/default/WindowsAzureCompanionFeed.xml" />
<!-- Settings for Windows Azure Drive used for durability -->
<Setting name="PHPApplicationsBackupContainerName" value="companionv2" />
<Setting name="InstallationStatusConfigFileBlob" value="status.xml" />
<Setting name="ProgressInformationFileBlob" value="progress.xml" />
<Setting name="XDrivePageBlobName" value="backup.vhd" />
<Setting name="XDriveSizeInMB" value="2000" />
<!-- Max value is defined as 500 in ServiceDefinition.csdef file (XDriveLocalCache Local Resource) -->
<!-- Windows Azure Drive size is defined in ServiceDefinition.csdef. Look for ApplicationsAndRuntimeResource -->
<Setting name="XDriveCacheSizeInMB" value="500" />
<!-- Diagnostics and Performance Counter Capture Frequency in minutes -->
<Setting name="DiagnosticsAndPerformanceCounterCaptureFrequencyInMinutes" value="1" />
</ConfigurationSettings>
</Role>
</ServiceConfiguration>
Los valores obligatorios que debemos modificar son:
- Windows Azure Storage Account Name: Podemos localizar este nombre en las propiedades de la storage account que vayamos a utilizar.
-
Windows Azure Storage Account Key: Se refiere a la clave primaria de la cuenta de storage, también en las propiedades en el portal.
- AdminUserName y AdminPassword para el acceso a la parte de administración.
- ProductListXMLFeed: Se trata de un XML donde están registrados todos los repositorios que tenemos disponibles para instalarlos a través de la plataforma. Por defecto he dejado indicado el propio del autor pero podemos añadir uno propio.
Despliegue
Para el despliegue, basta con acceder a través del portal de Windows Azure y crear un nuevo deployment en uno de los dos entornos del Hosted Service.
Una vez iniciado el servicio ¡Ya podemos comenzar a instalar CMS !
Instalación de aplicaciones
Gracias a la nueva característica FullIIS anunciada en el PDC 2010, esta aplicación está configurada poder generar diferentes sitios dentro del mismo role.
Para poder instalar los CMS, debemos acceder a nuestra URL a través del puerto 8080, el cual ha sido establecido para las labores de administración. Por ejemplo:
Nos logamos con las credenciales establecidas en el archivo ServiceConfiguration.cscfg para poder acceder a los apartados Platform y Applications.
Espero que sea de utilidad
¡Saludos!