The new Windows Azure – Web Sites

A new cool feature MS added to the Windows Azure Preview release is the option to create a web sites in a seconds.
I attended a great session on Web Sites in Windows Azure presented by Bill Staples at TechEd North America 2012 (the video will probably be available at channel9 soon) and in the demo a site was created in less than 6 seconds.
After the site is created in azure you will need to deploy the site content.

Let’s talk about the several nice option for deploying your site to azure:  

  1. FTP – simple file transfer directly to your hosting machine in azure (wwwroot dir), you can use the very popular ftp app FileZilla.
  2. Git – an open source distributed source control. Your site in azure can expose a git
    for remote connection so this can be done very easily through the portal.
  3. TFS – Microsoft team foundation server source control, again the portal enable an online service for pushing directly to your site in azure.
  4. Web Deploy

Free stuff coming:.

Right now you able to create 10 sites in azure for free.
The small down to it is that your sites will be sharing the sever resources with other sites in azure. (the seconds option is reserve meaning your site will be running on a single vm dedicated to you and of course you can create multiple vm instances but again this is not free as expected).

Moving from a web site to a service:
On the new azure visual studio tooling you can add to your web site project a cloud project that can have roles in it, in order to expand your web site functionally from just a simple site that serve web pages to a full service that have dedicated back-end machine responsible for some sort of processing.

Web site applications catalog:
Last think I would talk about is the option to create a site from the large variety of application offered such as WordPress (create your own blob hosted in azure), Drupal (CMS – content management system blog personal. company site), Joomla (another very popular CMS) etc…

New Azure Release – Distributed Cache

You probably heard that MS releasing the new Spring (Preview) release for Windows Azure.
Here is quick summary of what its all about:

  1. Windows Azure Virtual Machines – Persistence VM,  any modification to the VM and any data is persistence.
  2. Windows Azure Virtual Network – create VPN and extend on premise application, control the network configuration etc..
  3. Windows Azure Web Sites – build elastic web sites using many of the open source application like WordPress, Drubal etc..
  4. New Azure portal and sdk’s
More information can be found on Scott Guthrie’s great post.
One of the topic that I would like to focus in this post is Distributed Cache.
Distributed Cache enables you to set up an in memory, low latency distributed cache used solely for you application supported by the full AppFabric Cache Server API (support regions containers, notification on cache operations, high availability and local cache).
Just as reminder the former cache services for windows azure (Shared cache) was using a dedicated milt-tenant servers which the user didn’t managed and simply needed to register the cache using the azure portal.
Co located:
Every role can allocate a percentage of his memory to be used by the distributed cache.
With this approach each role instance can access data stored from other roles and the even greater think it free!!!.
This way you can exploit your vm memory resource which in other case could have been unused memory.
Cache Worker Roles
The seconds approach for the distributed cache using the worker role for caching purposes only.
For example you could have 1 web role instance that uses distributed cache constructed from 2 worker role instances memory.
In this approach you expand the the boundaries of you cache by just throwing another instance.
Moreover the cache itself could flexibly increased and decrease at run-time.

Data Center Location – Azure Portal Update

If you look carefully you probably noticed that the option of creating a data center with the Anywhere option has been removed (Anywhere US, Anywhere Europe, Anywhere Asia).

Image

This option was pretty much redundant and was more targeted for fresh users at azure.

Why redundant ?

Choosing the Anywhere option leave the azure app-fabric the decisions where to install your hosted service based on available data centers in that region.
Behind the scene the chosen data-center location does not register at the RDFE server (router and traffic manager above the fabric controller) configuration as it done when you choose the actual data center location thus causing this information not to be exposed for externals APIs.
If you think about it, should you care where your service is located ?
Yes you do!!!!
The data center location should be as close as possible to the major amount of users geographical location.
You could find yourself dealing with latency problem because of not choosing the right data center.
Moreover if you have a full blown Saas solution that uses on or more of the azure service  (storage, caching, service bus etc..) it highly important to understand what is the physical/geographical impact of each of the azure services Paas Lego parts.

Taking the decision for choosing the data center location can be taken a bit further.
It a good practice to define an affinity groups in your subscription account
(Just as a short reminder affinity group is an alias to a data center location)
Image

Once you define an affinity group you could rest assured that your hosted service data center location is in sync with the rest of the azure services you are using in your application.
So instead of choosing a data center when you create a hosted service or a storage account just choose the affinity group name.

Image