Tuesday, April 30, 2013

Sitecore Azure – Getting up and running

I am a fan of Windows Azure and Sitecore so I figured it was time to see what Sitecore for Azure was all about. The post is just about first impressions and lessons learned while getting started.

There are a few must haves if you are going to work with Sitecore Azure. First you have to get a license file. This is a manual process where you have to email Sitecore with your Sitecore license info and your Azure subscription info (assuming your provisioning your Azure environments yourself). This takes about 24 hours to get the environment file back. Secondly make sure you have the version of the Azure SDK they note in the documentation. In my case it was version 1.7 (documentation gives you a link as well). I figured this was a soft requirement so I just downloaded the latest Azure SDK (1.7 was 2 version behind) however, this did not work and caused deployments to error out (it also gives you an “environment file not found error” in the Sitecore Azure screen).

Once you have all that and you can go into Sitecore – click Sitecore and then click Sitecore Azure you can really start working with it. I first wanted to play with having a local CM (content management) server and a cloud based CD (content delivery) server. So I selected an Azure location and clicked “add delivery farm.” This packaged the current base Sitecore site up and deployed it to Azure.

What is setup for you:

- Azure web role (stagging only. No production role created or started)

- Azure SQL database (core and web). Both setup as Business edition 150GB (I downgraded to Web 1GB for the lower price point and things seem to be working fine still). A UID and PWD is generated for you and the connectionstrings.config file is updated.

- Azure Blob, Table and Queue storage. The following blobs and tables are created for you (no queues are created)


Blob Container Blob Contains Description
CacheClusterConfigs ConfigBlog XML File XML file with ConfigEntries nodes which contain CDATA values
  ConfigSchemaVersionBlob Text File Just a version number
  InitCompleteBlob XML File Empty ConfigInit node
  InitStartedBlog XML File Empty ConfigInit node
Sitecore-auto-deploy     Currently empty
WAD*     Standard Azure WAD blobs


Table Description
WAD* Standard Azure debug and logging tables
$Metrics* Standard Azure metrics tables


- Sitecore publishing target to your Azure web database

What is NOT setup for you: (I was pretty disappointed to see these files are missed and left to the user to flush out)

- GAC level assemblies needed that are not deployed by default. These are assemblies in the GAC that during setup and deployment are not GAC level assemblies Azure hosts (or are different versions) so must be copied to the bin so they are deployed.

- System.Web.WebPages.Razor

- Microsoft.Web.Infrastructure

- System.web.webpages.deployment

- System.Web.Helpers (1.0)

- System.Web.MVC (3.0)

- System.Web.WebPages (1.0)

Once you have copied over the assemblies that are not setup for you, you can now deploy to your Azure environment and hit the site without an error. You will be missing some images because the “/sitecore” directory is not copied over and this is where the default images sit.

As of today Sitecore says this is for Sitecore 6.5 and Azure 2.0. I however did all this with Sitecore 6.6 rev. 130214 and Azure 2.0 rev. 120731 and things seemed to work fine (minus what I noted above, and I doubt that is because 6.6 instead of 6.5).


Shutting Azure down

After this simple test of setting up a content delivery server in Azure I thought I would see what the shutdown process is like. In the Sitecore Azure management window you can click on your node and say suspend. This is pretty easy and does what you would expect and suspends your webrole. Now that the role is suspended lets delete the delivery instance.  In the Sitecore Azure management window the instance looks like it is deleted, but if I look at my Azure account the Cloud Service, databases and storage accounts are still there. Do get rid of these you need to manually delete via the Azure web UI. Not a big deal but disappointing it does not clean itself up better. It also does not clean up any of the environments in the “/sitecore/system/settings/azure/environments” node in Sitecore. Disappointed to see it does not clean itself up better.