Tuesday, 25 November 2008

DDD7: Welcome to the cloud (Windows Azure)

Big thanks to everyone who turned up to my session at DDD7.  I really enjoyed doing the session, and hope you all found it useful.

The slides and demos are now available to download on my skydrive.

The session was also recorded, I will let you know the link when it is made available.

For those wondering in the end I did do a demo of a Silverlight application running in storage services (i.e no webrole / website).  I think I will record that as a screencast soon.

Friday, 21 November 2008

Silverlight 3 – 3D and GPU Support

I guess I am a little slow off the mark on this one but the new GPU Hardware Accelerated graphics and the 3D support just sounds great.  I can’t wait to see the Spectrum Emulator run under that :)

I really want to play with it now, the downside is I suspect we won’t see any builds until Mix09

See ScottGu’s Post about it.

Thursday, 20 November 2008

Azure Tables, Entities and Partition Diagrams

It's always nice to explain things with diagrams, no matter how bad the diagrams are :)

A picture of a Table

The following diagram summarizes how a table of NxtGenUG (a UK user group) Coordinators might look in a Table in Windows Azure Storage Services.

This diagram shows that Chris Hay and Allister Frost are coordinators for the Cambridge region of NxtGenUG, and that Dave McMahon and Geff Lombardi are coordinators for the Birmingham region of NxtGenUG.

I have scribbled with my crayons how this relates to tables / partitions and entities in Windows Azure Tables.

image

The key thing to note about this table is that regions are partitions (birmingham, cambridge). The row keys are unique within a partition (but not outside of the partition, Chris and Dave have the same row key). Combinations of Partition Key and Row Key are unique.

Scaled Partitions

The following diagram shows how this table might be scaled in Windows Azure using Table partitioning.

The key thing to note is that entities within a partition always remain together (i.e. reside physically on the same server).

However partitions may not necessarily reside together, hence why querying across partitions is slower than querying exclusively within a partition

image

Silverlight and Tables

So this is how the tables look in the back end of Azure. This is a great structure and I can see this is something that Silverlight Applications could heavily utilize.

A lot of Silverlight applications don't necessarily need the full blown power of SQL Servers, and really want to save simple data in the backend, and be able to retrieve.

I can see this table type structure really being utilized within Silverlight. The downside is that Silverlight can't access it directly (you need to go via a ASMX / WCF Service). As I have said before I'm not sure you want to be able to give direct access, however perhaps some sort of delegated authentication scheme could work?

I think this will require more thought???

Azure Presentation

So I’ve just done my first version of the “Introduction to Windows Azure” presentation (the same one I am doing at DDD, called “Welcome to the Cloud”). This was an internal presentation to a local company in Cambridge.

The feedback was superb (one chap said, it was a better presentation than I had seen at TechEd, which was very nice).

From my point of view, there is a couple of things that I want to change for Saturday (DDD7) however nothing particularly major.

One thing that disappoints me about Saturdays is that there is no Silverlight whatsoever in the day, I am now considering changing one of my demos last minute to have a some Silverlight :) , I'm not sure I can cope with a full day without Silverlight

Anyways, I look forward to seeing folks on Saturday (Silverlight or no Silverlight)

Wednesday, 19 November 2008

First presentation of "Welcome to the Cloud" tomorrow

If you are going to DDD7 and you plan to attend my talk entitled "Welcome to the Cloud", which is a talk on Windows Azure, you will be pleased to hear that you won't be the Guinea pigs for this talk.

Very luckily I get to do a run through tomorrow for a local Cambridge company called Sagentia.

This should allow me iron out any glitches hopefully in time for Saturday :)

This has been a pretty tough presentation to put together, learning a new technology + presenting on it in 2.5 weeks (evenings + weekends to prepare only).  I wish i was one of those lucky folks who got to see it before PDC but I didn't, so I really have had 2.5 weeks to prepare this (i.e. when i got back from LA).

It's nice to be finally be presenting it for the first time :)

Silverlight: and Windows Azure

In my last article I was discussing Silverlight and Amazon's new CloudFront service.

I wanted now to discuss what the options with Azure are?

Hosting your Silverlight application in Azure

You can obviously host your Silverlight Application by hosting your website (which includes your Silverlight app) in Windows Azure, but I thought I'd explore avoidin the website, similar to what i was suggesting doing with Amazons Cloud Front.

The good news is that you can actually host your html file, your silverlight .xap file (set the mime type correctly), you will even be able to interact with web / wcf services via clientaccesspolicy / crossdomain files. You can host your Silverlight application completely in Windows Azure today (subject to the terms of service).

There are some caveats however at the moment:

  • Your silverlight application won't be able to access private blob storage (can't sign the http request)
  • Your silverlight application won't be able to access table or queues
  • Haven't figured how to control cache yet (not saying it's not possible, I just haven't spent enough time to figure if it is possible)

To be honest I'm not sure I want my silverlight applications to access these services directly. Certainly not at the moment (wouldn't want my shared key in the wild). May'be with a good authentication method this would be attractive.

The big difference between CloudFront and Azure for this type of thing is:

  • Content Expiry / Caching
  • Terms of Service / Pricing
  • Low Latency due to multiple datacenters and good routing

As I said, I think when Azure is out this will be a non issue.

Silverlight: Amazon CloudFront

I’ve been looking at Amazon CloudFront today, and it seems to me that Amazon is aggressively going for the CDN market.

This really is a CDN (Content Delivery Network) solution (and it’s cheap). All it is a method of serving up assets (images, documents, html, even Silverlight) with low latency by using a delivery network (so if your user is in hong kong, the asset will be served from the hong kong server).

The good news is that it is ridiculously cheap. 17 cents per GB data transfer, and 1 cent per 10,000 requests.

Silverlight

It also seems to me (although I haven’t tried it yet), that if you wanted to host your Silverlight application within Amazon CloudFront you could do so. You could have an HTML page (hosted in CloudFront), assets (hosted in cloudfront), silverlight XAP file (hosted in CloudFront), and then you could even allow calls to a back end web service (hosted in azure, or your normal boring old web server) via cross domain policies.

UPDATE: This is confirmed as working, be careful with setting your Content Types, see Tim Heur's comments in the comment section of this post. Thanks Tim.

Azure

I think once Microsoft have setup their many data centers, I would expect a similar type of offering from Azure also. To be honest I don’t think Azure is too far away from this. All Microsoft need to do is provide multiple datacenters, allow us to control the cache for Blob Storage Services, and use the closest data center to server up public url’s. To offer this a separate offering from Azure’s point of view would be wrong (i think).

I think that the competition between Amazon and Microsoft in the cloud space is going to be really great, and will drive down the cost of hosting / scaling.