The artcile New Features in 2.5 showcases several new features in Joomla 2.5. In addition to supporting MS SQL Databases covering SQLServer 2008 and SQLAZure, Joomla 2.5 supports Azure Storage CDN and Azure deployment. Windows Azure is the Cloud platform from Microsoft. To learn more, please visit Windows Azure. Sign up here for a Windows Azure Free Trial account. This article covers a use case to deploy new Joomla site on Windows Azure. I will follow up with another use case where we will cover migration of Joomla 2.5 site (Windows Server and SQLServer Database) to Windows Azure. Migration will require customizations to Joomla Scaffolder framework.
The Azure storage CDN is not part of the Joomla 2.5 core, but is available as a Joomla extension. The CDN can be downloaded from Azure Storage Extension. If deploying on a Windows Server, Joomla users/developers can leverage Azure Storage for image/video delivery to the site very similar to Amazon S3 or Rackspace Cloud files. However the real use case for Joomla with CDN extension is the deployment on Windows Azure Cloud platform.
We have made it easy to deploy Joomla on Windows Azure by providing a Joomla Scaffolder framework. The Joomla Scaffolder framework does everything for you such as
1. Download the Joomla2.5 beta from Official Joomla2.5 Beta release .
2. Download Azure CDN and package CDN
3. Generate Service configuration settings (cscfg) for Windows Azure
4. Generate Package file (cspkg) file for Windows Azure.
Let me outline instructions needed to build the Joomla Package ready to be deployed on Windows Azure.
Assumptions:
1. You need Windows Azure account. You can sign up here.
2. Make sure the certificates are uploaded and fire wall rules added.
3. Database and user credentials are configured for SQLAzure from Azure portal.
4. Configure Storage account for Windows Azure.
5. Download Azure Storage Explorer.
6. Add storage account and create following containers.
a. images (for Media Manager sync)
b. config (To upload cscfg and cspkg file for deployment)
Steps to build the Azurified Package
1. Download Joomla Scaffolder on your Windows machine.
2. Extract the downloaded zip file.
3. Open build.bat file in your favorite editor.
4. Edit line 18
call scaffolder run -out="%PWD%\build\Joomla" -s="%PWD%\build\Joomla.phar" -db jbase -user "demosql@xxx4XXXjiw" -password "Sam@123" -host "XXX.database.windows.net" -sample_data 1 -admin_user "admin" -admin_password "admin2222"
Modify -user, -password, -host as per your windows Azure account credentials shown within Microsoft Azure portal
The last three parameters
- sample_data -- 1 to install sample data
-admin_user - admin username for the site
-admin_password - admin password
5. Save the file build.bat.
6. Run the build.bat from comand line
Takes around 5-7 minutes to perform the following tasks
- Download the Joomla2.5 beta from Official Joomla2.5 Beta release .
- Download Azure CDN and package CDN
- Generate Service configuration settings (cscfg) for Windows Azure
- Generate Package file (cspkg) file for Windows Azure.
7. Upload the cscfg and cspkg file to the config container within your storage account.
8. Login to your windows Azure portal and create a new Hosted service (Staging or production, though "staging is preferred) (Video 1).
9. Provide the deployment name, browse and provide paths to the cscfg and cspkg files from storage explorer (Video 1).
10. Then your deployed service will go through 3 states
- Initializing
- Busy
- Ready
Go back to the Azure portal and notice the status of the deployment. If deployment is in "Ready" state, then click on the link below DNS Name with Azure properties tab.
On click of the link, 3 things happen
1. Joomla.sql is installed
2. If sample_Data is set to "1" in build.bat sample_data is installed
3. admin username and password is created within Joomla database.
Note:
a. You can also upload cscfg/cspkg from your local machine, but it is time consuming, hence alternatively, upload the cscfg file and cspkg to storage will help reduce time to deploy Joomla on Azure.
b. You might get an alert that number of instance is 1 and need to be increased to more than 1. Ignore this alert by clicking on "Yes". You can modify instance count from Azure portal after the deployment.
c. Allow approximately 5 minutes for the deployment service to be in ready state.
That is it - your joomla is deployed on Windows Azure. (Video 1)
Login to the backend (Video 2) and configure Azure storage api credentials.
Click on Media manager. Now all images are rendered from Azure storage CDN and not from the images folder. If you upload images in article manager/category manager or from front end, all images are uploaded to Azure CDN and not to images folder under Windows Azure.
Development roadmap
1. Improve integration of Joomla Global configuration to support Windows Azure Service Configuration.
2. Bug fixes in Joomla 2.5 beta release to make Joomla 2.5 GA release production ready for Multidb and Windows Azure.
3. Joomla 2.5 should be integrated with Microsoft Web Matrix/Platfrom Installer very soon.
4. The Joomla CDN Extension for Azure will be available through Joomla Extension Directory.
5. Consolidate CDN capabilitieis with in community projects to support CDN natively in Joomla. Please note there are several CDN initiatives and is hard to adopt one implementation. Having CDN support as an extension is not a bad idea either.
6. Better control of Azure deployment (instance count, global configuration changes) from within Joomla Backend.
Known Issues/Limitations
1. Global configuration seems to not populate some values. In Windows Azure - global configuration is loaded from Azure service configuration (cscfg file).
2. On Save in global config - values need to be saved to "Service Configuration (cscfg)". Currently Work in progress.
Resource for Windows Azure
2. Azure Storage Extension
4. Windows Azure Free Trial account
5. Azure CDN
6. Official Joomla2.5 Beta release .
Note: If you want to change the destination of the Joomla 2.5 or Azure CDN, then edit Config.class.php file in Joomla Scaffolder to provide the correct download links to both Joomla and Azure CDN.
Resource for Joomla to run on Windows
1.Web Platform Installer configures SQLServer Compact edition for you.
or
3. If SQLServer 2008 (Standard or Enterprise edition) you also need SQL Native client to be installed on the web server.
Note - you can use XAMPP, WAMP or IIS with Fast CGI with PHP 5.3 or later.
An example of Joomla extension supporting Multidb and Azure deployment is Joomla Ad Agency - Click here for more information
Feel free to refer to some Videos on Youtube for installation of Joomla on multidb.
Please do help us test and improve Windows Azure support. Please do contact me if you have any suggestions, questions/concerns or comments. We will be sure and glad to improve your experience of Joomla deployments on Windows Azure and multidb.
Joomla needs more involvement from individuals and companies implementing Joomla solutions or services. Please get involved today in some capacity.