Day 4 - Back to Basics

Technical content of this issue - 3 out of 5

In this issue Biff finally starts to figure out these new technologies.

PDC Reset

My conversation with the woman on the bus last night made me realize that there is a coherent story here which I still don't get and I am at risk of blowing the entire PDC. At this point I am going to skip some live sessions and go back to view some of the sessions that I should have caught the first time, focusing less on the fine details and more on the overall concept of what is going on. This means shorter, but hopefully more coherent session writeups as I finally began to understand the overall picture of what they are telling us. I also did some Hands-on sessions and grilled the folks in the Microsoft Pavillion to help fill in the gaps (one of the Softies actually asked if I was a journalist! I tell ya, I'm getting some momentum!). The rest of the newsletter remains the same - for instance, the mail bag is back in full force today.

During the course of this week I've noticed something about my writing style - I tend to rely heavily on the dash. There are times I have to stop myself from using multiple dashes in a single sentence - it's like a compulsion. I don't think I was ever even taught the grammatical rules for using the dash - are there any?

One logistical note - belayed proofreading found that, among several other careless errors, the links to the topics discussed in the Microsoft Research session yesterday were left off. This has been corrected in the online copy of Day 3.

A Lap Around the Azure Service Platform

This session described some of the services offered by raw Azure, as opposed to the services built on top of Azure. These include

  • LiveID - this is their native authentication mechanism, but he did not address it in the session. One tidbit that I picked up elsewhere is the Microsoft is committing to making LiveID support OpenID, supposedly a de facto open standard for authentication on the web.
  • Access Control Service - Somehow separate from the LiveID service, this allows for federated identity lists. For instance, a company's site may have users that logon with their local AD account; a LiveID account; some other account with the Microsoft Services Connector; etc. This service provides a single authentication interface that masks these complexities from the application.
  • Service Bus - Standard functionality. A service can publish events but can't force anyone to listen. Anyone who wants to listen can. The publisher can limit who can listen for security purposes.
  • Workflow - Hosting for the standard MS workflow technology. Azure provides a browser based console to manage and monitor the actual workflow instances.
  • Data Services - Do not confuse these with SQL Data Services, an service that is offered built on top of Azure.  This is purely part of Azure. I questioned several people on why there are two data services and the answers received pretty much boiled down to Azure data services is for files, blobs and the non-relational kind of things that an OS would store, whereas SQL Data Services provides the rich data functionality such as querying, reporting, etc. Hearing this delineation causes me to recollect back to 2003 and WinFS, a OS file storage system based on SQL Server. The line back then was that users wanted a rich file system based on SQL Server that allowed querying of file and folders. I guess this change of heart happened somewhere around when WinFS was dropped from Vista.

Once I started seeing how all this works, I started wondering about how you move from the cloud simulator on the dev machine to production in the cloud. How do you QC this stuff? The answer appears to be that you actually rent two cloud designations and use one for QC. One option is that once the QC installation is verified you can swap the two environments and turn the QC into the production - but it wasn't clear what happened with database instances in this case.  Of course, later in this issue we learn that thinking there is a conventional database is problematic in the cloud (ooh - more foreshadowing!)

There was an impression given many times that this is an open platform. While it is true that interacting with the higher level services like SQL Data Services is REST based and can be done with any tool, the only code that can get uploaded to Azure right now is managed code (.Net). There are great hopes, and plans to work with the Open Source communities to support other technologies in the future, but that's vapor at the moment. I heard it stated that you could develop with Eclipse several times from the stage, which definitely gave the impression of more openness than exists. The only way to develop for Azure with Eclipse right now is to use Eclipse to write .Net - does anyone out there know anyone doing that?

A Lap Around SQL Services/SQL Server: Database to Data Platform - The Road from Server to Devices to the Cloud

No, that is not the name for a single session, even here at the PDC. I watched 2 sessions on the SQL Services today and decided to write them up together since they were complementary. I'm just going to focus on the fundamentals, because they eluded me for several days and I want make sure I get them across now.

SQL Data Services is not a big SQL Server database. It is built with SQL Server technology, but is something completely different. To achieve all the goals of the cloud (scalability, redundance, synchronization, etc.) they went a whole new way which may not even be relational.

The top level concept is an Authority. An Authority is essentially your company's presence in the cloud data. It is mapped to a DNS entry and represents a unit of billing (meaning they bill YOU for based on this). It contains a collection of the next item, Containers.

Containers can be thought of as a database. It is the scope of queries and updates (eg - if you want to run a query, you do it off of a container - sort of like MyContainer.Query(criteria), but not really). A container contains collections of entities.

An entity is just that - a collection of attributes defining a thing. These are stored as a property bag of name/value pairs. This is the actual unit of storage.

This I had heard all week and kept waiting to hear how these were oriented into tables, rows, etc. Today I finally realized that they aren't! There are no tables, no columns, no schema of any kind. An entity can have any number of name/value pairs associated with it and they can be of any type. The data is essentially entirely denormalized. No schema means no data constraints, no foreign key constraints, etc. Querying is done by entity type, such as give me all the entities of type employee and give me the following attributes of each entity. This means data modeling is done by modeling entities - no more physical modeling. I'm still wrestling with this. How do you define one-to-many or many-to-many relationships if not in the schema? I need more time to absorb this - I hope to try a hands on lab tomorrow.

After dwelling on this for a while, I went to the pavillion to follow up. I asked how an existing app that treats its data interaction as conventional CRUD interactions with a tight schema would move to the Cloud. The short answer is it would be very hard - if your data logic wasn't clearly limited to the data tier it would be near impossible without a full rewrite.

OK, if you're still reading (and if you're stopping, at least skip to the end and read the mail - it's good today), let me spill the last nuggets of info from today. Once you buy into the Azure model of entities as data, you get 5 services out of SQL Data Services:

  • Data Sync
  • Reference Data
  • Reporting
  • Data Mining
  • ETL
Back to DW from MD

Careful readers will remember that I postponed answering DW's substantive question in yesterday's mailbag until I become more informed. Between my conversations with Microsoft representatives and my own observations I think I am ready to give it a try. First, how does this compare/compete with Google Apps? I couldn't find anyone who would relate Azure to Google Apps and I think that reluctance is appropriate. Google Apps is a set of office productivity applications rather than a hosting platform. A better analogy would be Microsoft Office Services Online (Day 3 morning session), where Microsoft has put their office productivity apps online. I also pressed them about Amazon Web Services and they wouldn't take the bait there either, claiming that Amazon just hosts VM's that you upload but offers no services. Not sure I'm ready to enjoy that particular koolaid.

DW continued to ask about this eating into their bread and butter desktop software business. Unclear on that one, I spoke to one Softie who asserted that this is just an extension and that the best apps will be rich interfaces on the (presumably Windows) desktop connecting to services in the cloud. Office Online Services might spur new sales of Office as companies want to take full advantage of the integration across the web. I think the server revenue is safe, because any company that moves to Azure will no longer have to buy server licenses but will have to pay the potentially more lucrative Azure hosting fees.

Letters! We Get Letters!

Full mailbag this morning, let's get started!

FH from MD wonders - "Odd... day 1 and 3 got thru ok, but 2 was caught by the spam filter... day's 2 subject had some extra stuff ("Announcing Windows Azure")... is "Azure" also a performance enhancer?"

Yes - that's exactly right. Microsoft is claiming not only that Azure enhances performance, but that it also provides additional reliabililty, allowing your app to stay up longer. But these are all huge infrastructure benefits and don't explain why Azure would be considered a spam flag. -Ed.

PO'C from VA writes - Your newsletter makes me feel like I'm really there! Just to complete the effect, I've been using chafing dishes for all my meals and eating standing up next to a tray full of dirty dishes.

That's an excellent start, but it's tough to imagine the mass of humanity in your own home. I suggest beginning your meal by standing about 20 feet from the actual food. Then move forward about 6 inches a minute until you are within reach. -Ed.

LF from MD gloats (apparently on his BlackBerry) - "azure is a synonym for poetic justice? msft applying all those patches... it just feels sooo right!"

Yes, there will be alot of infrastructure folks whose golf game will improve drastically. -Ed.

Time to get your mail in is running out, send your mail to editor@biffspdcnewsletter.com.

Tomorrow

Final Sessions, one last chance to put the pieces together.

Biff
Cheif Proofreeder, Biff's PDC Newsletter